Exemple #1
0
        public ActionResult Save(tblPaciente paciente)
        {
            if (paciente.idPaciente == 0)
            {
                db.Database.ExecuteSqlCommand("INSERT INTO tblPaciente VALUES " +
                                              "(@idSeguro, @nombre, @cedula, @fechanacimiento, @correo, @telefono, @direccion)",
                                              new SqlParameter("idSeguro", paciente.idSeguro),
                                              new SqlParameter("nombre", paciente.nombrePaciente),
                                              new SqlParameter("cedula", paciente.cedulaPaciente),
                                              new SqlParameter("fechanacimiento", paciente.fechaNacimientoPaciente),
                                              new SqlParameter("correo", paciente.correoPaciente),
                                              new SqlParameter("telefono", paciente.telefonoPaciente),
                                              new SqlParameter("direccion", paciente.direccionPaciente)
                                              );
            }
            else
            {
                var elpaciente = db.tblPacientes.SqlQuery("SELECT * FROM tblPaciente WHERE idPaciente = '" + paciente.idPaciente + "'").SingleOrDefault();
                elpaciente.nombrePaciente          = paciente.nombrePaciente;
                elpaciente.cedulaPaciente          = paciente.cedulaPaciente;
                elpaciente.fechaNacimientoPaciente = paciente.fechaNacimientoPaciente;
                elpaciente.correoPaciente          = paciente.correoPaciente;
                elpaciente.telefonoPaciente        = paciente.telefonoPaciente;
                elpaciente.direccionPaciente       = paciente.direccionPaciente;
                elpaciente.idSeguro = paciente.idSeguro;
            }
            db.SaveChanges();


            return(RedirectToAction("Index", "Paciente"));
        }
        /// <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));
        }
        /// <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>
        /// 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>
        ///
        /// </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"));
        }
        /// <summary>
        /// Accion para obtener y mostrar la información del paciente e historia clinica
        /// </summary>
        /// <param name="idPaciente">id único del paciente</param>
        /// <returns>Vista InformaciónPaciente con los datos personales y de historia clínica</returns>
        public ActionResult InformacionPaciente(int idPaciente)
        {
            llenarDropDown();
            //Creción de objetos con los datos para visualizacion
            ContactoEmergenciaCLS          contactoEmergenciaCLS          = new ContactoEmergenciaCLS();
            AntecedenteGinecoObstetricoCLS antecedenteGinecoObstetricoCLS = new AntecedenteGinecoObstetricoCLS();
            AntecedenteReprodMasculinoCLS  antecedenteReprodMasculinoCLS  = new AntecedenteReprodMasculinoCLS();
            HistoriaClinicaCLS             historiaClinicaCLS             = new HistoriaClinicaCLS();
            PacienteCLS         pacienteCLS         = new PacienteCLS();
            RegistroPacienteCLS registroPacienteCLS = new RegistroPacienteCLS();

            using (var bd = new BDD_ConsultorioDermatologicoEntities())
            {
                //Busqueda de coincidencias con el id de entrada.
                tblPaciente tblPaciente = bd.tblPaciente.Where(p => p.idPaciente.Equals(idPaciente)).First();

                pacienteCLS.idPaciente             = tblPaciente.idPaciente;
                pacienteCLS.nombres                = tblPaciente.nombres;
                pacienteCLS.apellidos              = tblPaciente.apellidos;
                pacienteCLS.cedula                 = tblPaciente.cedula;
                pacienteCLS.fechaNacimiento        = (DateTime)tblPaciente.fechaNacimiento;
                pacienteCLS.idOrientacionSexual    = tblPaciente.idOrientacionSexual;
                pacienteCLS.idIdentidadGenero      = (int)tblPaciente.idIdentidadGenero;
                pacienteCLS.ciudadNacimiento       = tblPaciente.ciudadNacimiento;
                pacienteCLS.ciudadResidencia       = tblPaciente.ciudadResidencia;
                pacienteCLS.ocupacion              = tblPaciente.ocupacion;
                pacienteCLS.profesion              = tblPaciente.profesion;
                pacienteCLS.idTipoDiscapacidad     = tblPaciente.idTipoDiscapacidad;
                pacienteCLS.porcentajeDiscapacidad = (int)tblPaciente.porcentajeDiscapacidad;
                pacienteCLS.idEstadoCivil          = tblPaciente.idEstadoCivil;
                pacienteCLS.idLateralidad          = tblPaciente.idLateralidad;
                pacienteCLS.idNivelEducacion       = tblPaciente.idNivelEducacion;
                pacienteCLS.direccion              = tblPaciente.direccion;
                pacienteCLS.telefonoPersonal       = tblPaciente.telefonoPersonal;
                pacienteCLS.telefonoResidencial    = tblPaciente.telefonoResidencial;
                pacienteCLS.correoElectronico      = tblPaciente.correoElectronico;
                pacienteCLS.idReligion             = (int)tblPaciente.idReligion;
                pacienteCLS.idContactoEmergencia   = (int)tblPaciente.idContactoEmergencia;

                tblContactoEmergencia tblContactoEmergencia = bd.tblContactoEmergencia.Where(p => p.idContactoEmergencia.Equals(pacienteCLS.idContactoEmergencia)).First();

                contactoEmergenciaCLS.nombreContactoEmergencia   = tblContactoEmergencia.nombreContactoEmergencia;
                contactoEmergenciaCLS.telefonoContactoEmergencia = tblContactoEmergencia.telefonoContactoEmergencia;

                tblHistoriaClinica tblHistoriaClinica = bd.tblHistoriaClinica.Where(p => p.idPaciente == tblPaciente.idPaciente).First();

                historiaClinicaCLS.idSeguroMedico                = (int)tblHistoriaClinica.idSeguroMedico;
                historiaClinicaCLS.idTipoSangre                  = (int)tblHistoriaClinica.idTipoSangre;
                historiaClinicaCLS.antecedenteFamiliarClinico    = tblHistoriaClinica.antecedenteFamiliarClinico;
                historiaClinicaCLS.antecedenteFamiliarQuirurgico = tblHistoriaClinica.antecedenteFamiliarQuirurgico;
                historiaClinicaCLS.antecedentePersonalClinico    = tblHistoriaClinica.antecedentePersonalClinico;
                historiaClinicaCLS.antecedentePersonalQuirurgico = tblHistoriaClinica.antecedentePersonalQuirurgico;
                historiaClinicaCLS.antecedentePersonalAlergico   = tblHistoriaClinica.antecedentePersonalAlergico;
                historiaClinicaCLS.antecedentePersonalVacunas    = tblHistoriaClinica.antecedentePersonalVacunas;
                historiaClinicaCLS.idAntecedenteGinecoObstetrico = tblHistoriaClinica.idAntecedenteGinecoObstetrico;
                historiaClinicaCLS.idAntecedenteReprodMasculino  = tblHistoriaClinica.idAntecedenteReprodMasculino;
                historiaClinicaCLS.tabaco             = tblHistoriaClinica.tabaco;
                historiaClinicaCLS.alcohol            = tblHistoriaClinica.alcohol;
                historiaClinicaCLS.otrasDrogas        = tblHistoriaClinica.otrasDrogas;
                historiaClinicaCLS.actividadFisica    = tblHistoriaClinica.actividadFisica;
                historiaClinicaCLS.medicacionHabitual = tblHistoriaClinica.medicacionHabitual;

                if (historiaClinicaCLS.idAntecedenteGinecoObstetrico != null)
                {
                    tblAntecedenteGinecoObstetrico tblAntecedenteGinecoObstetrico = bd.tblAntecedenteGinecoObstetrico.Where(p => p.idAntecedenteGinecoObstetrico.Equals((int)historiaClinicaCLS.idAntecedenteGinecoObstetrico)).First();
                    //Existencia de antecente gineco obsterico
                    antecedenteGinecoObstetricoCLS.menarquia    = tblAntecedenteGinecoObstetrico.menarquia;
                    antecedenteGinecoObstetricoCLS.gestas       = tblAntecedenteGinecoObstetrico.gestas;
                    antecedenteGinecoObstetricoCLS.partos       = tblAntecedenteGinecoObstetrico.partos;
                    antecedenteGinecoObstetricoCLS.cesarea      = tblAntecedenteGinecoObstetrico.cesarea;
                    antecedenteGinecoObstetricoCLS.abortos      = tblAntecedenteGinecoObstetrico.abortos;
                    antecedenteGinecoObstetricoCLS.hijosMuertos = tblAntecedenteGinecoObstetrico.hijosMuertos;
                    antecedenteGinecoObstetricoCLS.hijosVivos   = tblAntecedenteGinecoObstetrico.hijosVivos;
                }
                if (historiaClinicaCLS.idAntecedenteReprodMasculino != null)
                {
                    tblAntecedenteReprodMasculino tblAntecedenteReprodMasculino = bd.tblAntecedenteReprodMasculino.Where(p => p.idAntecedenteReprodMasculino.Equals((int)historiaClinicaCLS.idAntecedenteReprodMasculino)).First();
                    //Existencia de antecente reprod masculino
                    antecedenteReprodMasculinoCLS.ets          = tblAntecedenteReprodMasculino.ets;
                    antecedenteReprodMasculinoCLS.parejaSexual = tblAntecedenteReprodMasculino.parejaSexual;
                }

                registroPacienteCLS.paciente                    = pacienteCLS;
                registroPacienteCLS.contactoEmergencia          = contactoEmergenciaCLS;
                registroPacienteCLS.historiaClinica             = historiaClinicaCLS;
                registroPacienteCLS.antecedenteReprodMasculino  = antecedenteReprodMasculinoCLS;
                registroPacienteCLS.antecedenteGinecoObstetrico = antecedenteGinecoObstetricoCLS;
            }
            return(View(registroPacienteCLS));
        }
        /// <summary>
        /// Accion para obtener y mostrar la información de la visita del paciente
        /// </summary>
        /// <param name="idEvolucion">id de la evolución del paciente</param>
        /// <returns>Vista con la iformación de la hoja de envolución</returns>
        public ActionResult EvolucionPaciente(int idEvolucion)
        {
            using (var bd = new BDD_ConsultorioDermatologicoEntities())
            {
                EvolucionCLS evolucionCLS = new EvolucionCLS();

                tblEvolucion tblEvolucion = bd.tblEvolucion.Where(p => p.idEvolucion == idEvolucion).First();
                ViewBag.idEvolucion = tblEvolucion.idEvolucion;
                //viewbags
                tblHistoriaClinica tblHistoriaClinica = bd.tblHistoriaClinica.Where(p => p.idHistoriaClinica == tblEvolucion.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;

                evolucionCLS.idHistoriaClinica = tblHistoriaClinica.idHistoriaClinica;
                evolucionCLS.nombreMapa        = tblEvolucion.nombreMapa;
                evolucionCLS.extension         = Path.GetExtension(tblEvolucion.nombreMapa);
                evolucionCLS.mapaCorporal      = tblEvolucion.mapaCorporal;

                evolucionCLS.diagnostico     = tblEvolucion.diagnostico;
                evolucionCLS.motivoConsulta  = tblEvolucion.motivoConsulta;
                evolucionCLS.examenFisico    = tblEvolucion.examenFisico;
                evolucionCLS.prescripcion    = tblEvolucion.prescripcion;
                evolucionCLS.recomendaciones = tblEvolucion.recomendaciones;
                evolucionCLS.fechaVisita     = (DateTime)tblEvolucion.fechaVisita;
                if (tblHistoriaClinica.idAntecedenteGinecoObstetrico != null)
                {
                    evolucionCLS.ciclo = tblEvolucion.ciclo;
                    evolucionCLS.fechaUltimaMenstruacion     = (DateTime)tblEvolucion.fechaUltimaMenstruacion;
                    evolucionCLS.metodoPlanificacionFamiliar = tblEvolucion.metodoPlanificacionFamiliar;
                    evolucionCLS.vidaSexualActiva            = tblEvolucion.vidaSexualActiva;
                }


                List <tblFotos> listaFotosBD = bd.tblFotos.Where(p => p.idEvolucion == idEvolucion).ToList();
                List <FotoCLS>  listaFotos   = new List <FotoCLS>();

                foreach (var item in listaFotosBD)
                {
                    FotoCLS fotoCLS = new FotoCLS();
                    fotoCLS.idFoto     = item.idFoto;
                    fotoCLS.nombreFoto = item.nombreFoto;
                    fotoCLS.extension  = Path.GetExtension(item.nombreFoto);
                    fotoCLS.foto       = Convert.ToBase64String(item.foto);
                    listaFotos.Add(fotoCLS);
                }

                listaFotos.Add(null);
                listaFotos.Add(null);
                listaFotos.Add(null);
                listaFotos.Add(null);
                listaFotos.Add(null);
                listaFotos.Add(null);

                RegistroEvolucionCLS registroEvolucionCLS = new RegistroEvolucionCLS();
                registroEvolucionCLS.evolucion = evolucionCLS;
                registroEvolucionCLS.foto1     = listaFotos[0];
                registroEvolucionCLS.foto2     = listaFotos[1];
                registroEvolucionCLS.foto3     = listaFotos[2];
                registroEvolucionCLS.foto4     = listaFotos[3];
                registroEvolucionCLS.foto5     = listaFotos[4];
                registroEvolucionCLS.foto6     = listaFotos[5];

                return(View(registroEvolucionCLS));
            }
        }
        public ActionResult Agregar(RegistroPacienteCLS registroPacienteCLS)
        {
            int    nRegistrosEncontrados = 0;
            string cedula = registroPacienteCLS.paciente.cedula;

            using (var bd = new BDD_ConsultorioDermatologicoEntities())
            {
                nRegistrosEncontrados = bd.tblPaciente.Where(p => p.cedula.Equals(cedula)).Count();//Verificación de que no exista cédula repetida
            }

            if (!ModelState.IsValid || nRegistrosEncontrados >= 1)
            {
                if (nRegistrosEncontrados >= 1)
                {
                    registroPacienteCLS.mensajeError = "ESTE USUARIO YA SE ENCUENTRA REGISTRADO";
                }
                llenarDropDown();
                //retorno de la vista en caso de errores al llenar un campo
                return(View(registroPacienteCLS));
            }
            else
            {
                using (var bd = new BDD_ConsultorioDermatologicoEntities())
                {
                    int?idContactoEmergencia = null;
                    //Creación de un contacto de emergencia para añadirse al paciente
                    tblContactoEmergencia tblContactoEmergencia = new tblContactoEmergencia();
                    tblContactoEmergencia.nombreContactoEmergencia   = registroPacienteCLS.contactoEmergencia.nombreContactoEmergencia;
                    tblContactoEmergencia.telefonoContactoEmergencia = registroPacienteCLS.contactoEmergencia.telefonoContactoEmergencia;

                    bd.tblContactoEmergencia.Add(tblContactoEmergencia); //Guardado del Contacto de emergencia
                    int?idPaciente = null;                               //Obtencion del id del Contacto de Emergencia para paciente
                    idContactoEmergencia = tblContactoEmergencia.idContactoEmergencia;

                    //Creación de un paciente
                    tblPaciente tblPaciente = new tblPaciente();
                    tblPaciente.nombres                = registroPacienteCLS.paciente.nombres;
                    tblPaciente.apellidos              = registroPacienteCLS.paciente.apellidos;
                    tblPaciente.cedula                 = registroPacienteCLS.paciente.cedula;
                    tblPaciente.fechaNacimiento        = registroPacienteCLS.paciente.fechaNacimiento;
                    tblPaciente.idOrientacionSexual    = registroPacienteCLS.paciente.idOrientacionSexual;
                    tblPaciente.idIdentidadGenero      = registroPacienteCLS.paciente.idIdentidadGenero;
                    tblPaciente.ciudadNacimiento       = registroPacienteCLS.paciente.ciudadNacimiento;
                    tblPaciente.ciudadResidencia       = registroPacienteCLS.paciente.ciudadResidencia;
                    tblPaciente.ocupacion              = registroPacienteCLS.paciente.ocupacion;
                    tblPaciente.profesion              = registroPacienteCLS.paciente.profesion;
                    tblPaciente.idTipoDiscapacidad     = registroPacienteCLS.paciente.idTipoDiscapacidad;
                    tblPaciente.porcentajeDiscapacidad = registroPacienteCLS.paciente.porcentajeDiscapacidad;
                    tblPaciente.idEstadoCivil          = registroPacienteCLS.paciente.idEstadoCivil;
                    tblPaciente.idLateralidad          = registroPacienteCLS.paciente.idLateralidad;
                    tblPaciente.idNivelEducacion       = registroPacienteCLS.paciente.idNivelEducacion;
                    tblPaciente.direccion              = registroPacienteCLS.paciente.direccion;
                    tblPaciente.telefonoPersonal       = registroPacienteCLS.paciente.telefonoPersonal;
                    tblPaciente.telefonoResidencial    = registroPacienteCLS.paciente.telefonoResidencial;
                    tblPaciente.correoElectronico      = registroPacienteCLS.paciente.correoElectronico;
                    tblPaciente.idReligion             = registroPacienteCLS.paciente.idReligion;
                    if (idContactoEmergencia != null)
                    {
                        tblPaciente.idContactoEmergencia = idContactoEmergencia;
                    }
                    tblPaciente.habilitado = 1;

                    bd.tblPaciente.Add(tblPaciente);     //Guardado del paciente en la bddd
                    idPaciente = tblPaciente.idPaciente; //id para la historia clinica

                    int?idAntecedenteReprodMasculino  = null;
                    int?idAntecedenteGinecoObstetrico = null;
                    if (!(registroPacienteCLS.antecedenteReprodMasculino.parejaSexual == null &&
                          registroPacienteCLS.antecedenteReprodMasculino.ets == null))
                    {
                        //Creación de antecedentes reproductivo masculino de ser necesario
                        tblAntecedenteReprodMasculino tblAntecedenteReprodMasculino = new tblAntecedenteReprodMasculino();
                        tblAntecedenteReprodMasculino.ets          = registroPacienteCLS.antecedenteReprodMasculino.ets;
                        tblAntecedenteReprodMasculino.parejaSexual = registroPacienteCLS.antecedenteReprodMasculino.parejaSexual;

                        bd.tblAntecedenteReprodMasculino.Add(tblAntecedenteReprodMasculino);                       //Guardado del antecedente en la bdd
                        idAntecedenteReprodMasculino = tblAntecedenteReprodMasculino.idAntecedenteReprodMasculino; //id para la historia clinica
                    }

                    if (!(registroPacienteCLS.antecedenteGinecoObstetrico.menarquia == null &&
                          registroPacienteCLS.antecedenteGinecoObstetrico.gestas == null &&
                          registroPacienteCLS.antecedenteGinecoObstetrico.partos == null &&
                          registroPacienteCLS.antecedenteGinecoObstetrico.cesarea == null &&
                          registroPacienteCLS.antecedenteGinecoObstetrico.abortos == null &&
                          registroPacienteCLS.antecedenteGinecoObstetrico.hijosVivos == null &&
                          registroPacienteCLS.antecedenteGinecoObstetrico.hijosMuertos == null))
                    {
                        //Creación de antecedentes gineco obstetricos de ser necesario
                        tblAntecedenteGinecoObstetrico tblAntecedenteGinecoObstetrico = new tblAntecedenteGinecoObstetrico();
                        tblAntecedenteGinecoObstetrico.menarquia    = registroPacienteCLS.antecedenteGinecoObstetrico.menarquia;
                        tblAntecedenteGinecoObstetrico.gestas       = registroPacienteCLS.antecedenteGinecoObstetrico.gestas;
                        tblAntecedenteGinecoObstetrico.partos       = registroPacienteCLS.antecedenteGinecoObstetrico.partos;
                        tblAntecedenteGinecoObstetrico.cesarea      = registroPacienteCLS.antecedenteGinecoObstetrico.cesarea;
                        tblAntecedenteGinecoObstetrico.abortos      = registroPacienteCLS.antecedenteGinecoObstetrico.abortos;
                        tblAntecedenteGinecoObstetrico.hijosMuertos = registroPacienteCLS.antecedenteGinecoObstetrico.hijosMuertos;
                        tblAntecedenteGinecoObstetrico.hijosVivos   = registroPacienteCLS.antecedenteGinecoObstetrico.hijosVivos;

                        bd.tblAntecedenteGinecoObstetrico.Add(tblAntecedenteGinecoObstetrico);                        //Guardado del antecedente en la bdd
                        idAntecedenteGinecoObstetrico = tblAntecedenteGinecoObstetrico.idAntecedenteGinecoObstetrico; //id para la historia clinica
                    }

                    //Creación y guardado de la historia clinica
                    tblHistoriaClinica tblHistoriaClinica = new tblHistoriaClinica();
                    tblHistoriaClinica.idPaciente                    = idPaciente;
                    tblHistoriaClinica.idSeguroMedico                = registroPacienteCLS.historiaClinica.idSeguroMedico;
                    tblHistoriaClinica.idTipoSangre                  = registroPacienteCLS.historiaClinica.idTipoSangre;
                    tblHistoriaClinica.antecedenteFamiliarClinico    = registroPacienteCLS.historiaClinica.antecedenteFamiliarClinico;
                    tblHistoriaClinica.antecedenteFamiliarQuirurgico = registroPacienteCLS.historiaClinica.antecedenteFamiliarQuirurgico;
                    tblHistoriaClinica.antecedentePersonalClinico    = registroPacienteCLS.historiaClinica.antecedentePersonalClinico;
                    tblHistoriaClinica.antecedentePersonalQuirurgico = registroPacienteCLS.historiaClinica.antecedentePersonalQuirurgico;
                    tblHistoriaClinica.antecedentePersonalAlergico   = registroPacienteCLS.historiaClinica.antecedentePersonalAlergico;
                    tblHistoriaClinica.antecedentePersonalVacunas    = registroPacienteCLS.historiaClinica.antecedentePersonalVacunas;
                    tblHistoriaClinica.idAntecedenteGinecoObstetrico = idAntecedenteGinecoObstetrico;
                    tblHistoriaClinica.idAntecedenteReprodMasculino  = idAntecedenteReprodMasculino;
                    tblHistoriaClinica.tabaco             = registroPacienteCLS.historiaClinica.tabaco;
                    tblHistoriaClinica.alcohol            = registroPacienteCLS.historiaClinica.alcohol;
                    tblHistoriaClinica.otrasDrogas        = registroPacienteCLS.historiaClinica.otrasDrogas;
                    tblHistoriaClinica.actividadFisica    = registroPacienteCLS.historiaClinica.actividadFisica;
                    tblHistoriaClinica.medicacionHabitual = registroPacienteCLS.historiaClinica.medicacionHabitual;
                    tblHistoriaClinica.habilitado         = 1;

                    bd.tblHistoriaClinica.Add(tblHistoriaClinica);

                    bd.SaveChanges();//Guardar los cambios realizados en la bdd

                    return(RedirectToAction("InformacionPaciente", "HistoriaClinica", new { idPaciente = tblHistoriaClinica.idPaciente }));
                }
            }
        }
        public ActionResult Editar(RegistroPacienteCLS registroPacienteCLS)
        {
            if (!ModelState.IsValid)
            {
                llenarDropDown();
                //retorno de la vista en caso de errores al llenar un campo
                return(View(registroPacienteCLS));
            }
            else
            {
                using (var bd = new BDD_ConsultorioDermatologicoEntities())
                {
                    //Creación de un paciente
                    tblPaciente tblPaciente = bd.tblPaciente.Where(p => p.cedula.Equals(registroPacienteCLS.paciente.cedula)).First();

                    tblPaciente.nombres   = registroPacienteCLS.paciente.nombres;
                    tblPaciente.apellidos = registroPacienteCLS.paciente.apellidos;
                    //tblPaciente.cedula = registroPacienteCLS.paciente.cedula;
                    tblPaciente.fechaNacimiento        = registroPacienteCLS.paciente.fechaNacimiento;
                    tblPaciente.idOrientacionSexual    = registroPacienteCLS.paciente.idOrientacionSexual;
                    tblPaciente.idIdentidadGenero      = registroPacienteCLS.paciente.idIdentidadGenero;
                    tblPaciente.ciudadNacimiento       = registroPacienteCLS.paciente.ciudadNacimiento;
                    tblPaciente.ciudadResidencia       = registroPacienteCLS.paciente.ciudadResidencia;
                    tblPaciente.ocupacion              = registroPacienteCLS.paciente.ocupacion;
                    tblPaciente.profesion              = registroPacienteCLS.paciente.profesion;
                    tblPaciente.idTipoDiscapacidad     = registroPacienteCLS.paciente.idTipoDiscapacidad;
                    tblPaciente.porcentajeDiscapacidad = registroPacienteCLS.paciente.porcentajeDiscapacidad;
                    tblPaciente.idEstadoCivil          = registroPacienteCLS.paciente.idEstadoCivil;
                    tblPaciente.idLateralidad          = registroPacienteCLS.paciente.idLateralidad;
                    tblPaciente.idNivelEducacion       = registroPacienteCLS.paciente.idNivelEducacion;
                    tblPaciente.direccion              = registroPacienteCLS.paciente.direccion;
                    tblPaciente.telefonoPersonal       = registroPacienteCLS.paciente.telefonoPersonal;
                    tblPaciente.telefonoResidencial    = registroPacienteCLS.paciente.telefonoResidencial;
                    tblPaciente.correoElectronico      = registroPacienteCLS.paciente.correoElectronico;
                    tblPaciente.idReligion             = registroPacienteCLS.paciente.idReligion;

                    tblContactoEmergencia tblContactoEmergencia = bd.tblContactoEmergencia.Where(p => p.idContactoEmergencia.Equals((int)tblPaciente.idContactoEmergencia)).First();
                    tblContactoEmergencia.nombreContactoEmergencia   = registroPacienteCLS.contactoEmergencia.nombreContactoEmergencia;
                    tblContactoEmergencia.telefonoContactoEmergencia = registroPacienteCLS.contactoEmergencia.telefonoContactoEmergencia;

                    //Creación y guardado de la historia clinica
                    tblHistoriaClinica tblHistoriaClinica = bd.tblHistoriaClinica.Where(p => p.idPaciente == tblPaciente.idPaciente).First();
                    //tblHistoriaClinica.idPaciente = idPaciente;
                    tblHistoriaClinica.idSeguroMedico                = registroPacienteCLS.historiaClinica.idSeguroMedico;
                    tblHistoriaClinica.idTipoSangre                  = registroPacienteCLS.historiaClinica.idTipoSangre;
                    tblHistoriaClinica.antecedenteFamiliarClinico    = registroPacienteCLS.historiaClinica.antecedenteFamiliarClinico;
                    tblHistoriaClinica.antecedenteFamiliarQuirurgico = registroPacienteCLS.historiaClinica.antecedenteFamiliarQuirurgico;
                    tblHistoriaClinica.antecedentePersonalClinico    = registroPacienteCLS.historiaClinica.antecedentePersonalClinico;
                    tblHistoriaClinica.antecedentePersonalQuirurgico = registroPacienteCLS.historiaClinica.antecedentePersonalQuirurgico;
                    tblHistoriaClinica.antecedentePersonalAlergico   = registroPacienteCLS.historiaClinica.antecedentePersonalAlergico;
                    tblHistoriaClinica.antecedentePersonalVacunas    = registroPacienteCLS.historiaClinica.antecedentePersonalVacunas;
                    if (tblHistoriaClinica.idAntecedenteGinecoObstetrico != null)
                    {
                        //Creación de antecedentes gineco obstetricos de ser necesario
                        tblAntecedenteGinecoObstetrico tblAntecedenteGinecoObstetrico = bd.tblAntecedenteGinecoObstetrico.Where(p => p.idAntecedenteGinecoObstetrico.Equals((int)tblHistoriaClinica.idAntecedenteGinecoObstetrico)).First();
                        tblAntecedenteGinecoObstetrico.menarquia    = registroPacienteCLS.antecedenteGinecoObstetrico.menarquia;
                        tblAntecedenteGinecoObstetrico.gestas       = registroPacienteCLS.antecedenteGinecoObstetrico.gestas;
                        tblAntecedenteGinecoObstetrico.partos       = registroPacienteCLS.antecedenteGinecoObstetrico.partos;
                        tblAntecedenteGinecoObstetrico.cesarea      = registroPacienteCLS.antecedenteGinecoObstetrico.cesarea;
                        tblAntecedenteGinecoObstetrico.abortos      = registroPacienteCLS.antecedenteGinecoObstetrico.abortos;
                        tblAntecedenteGinecoObstetrico.hijosMuertos = registroPacienteCLS.antecedenteGinecoObstetrico.hijosMuertos;
                        tblAntecedenteGinecoObstetrico.hijosVivos   = registroPacienteCLS.antecedenteGinecoObstetrico.hijosVivos;
                    }
                    if (tblHistoriaClinica.idAntecedenteReprodMasculino != null)
                    {
                        tblAntecedenteReprodMasculino tblAntecedenteReprodMasculino = bd.tblAntecedenteReprodMasculino.Where(p => p.idAntecedenteReprodMasculino.Equals((int)tblHistoriaClinica.idAntecedenteReprodMasculino)).First();
                        tblAntecedenteReprodMasculino.ets          = registroPacienteCLS.antecedenteReprodMasculino.ets;
                        tblAntecedenteReprodMasculino.parejaSexual = registroPacienteCLS.antecedenteReprodMasculino.parejaSexual;
                    }
                    tblHistoriaClinica.tabaco             = registroPacienteCLS.historiaClinica.tabaco;
                    tblHistoriaClinica.alcohol            = registroPacienteCLS.historiaClinica.alcohol;
                    tblHistoriaClinica.otrasDrogas        = registroPacienteCLS.historiaClinica.otrasDrogas;
                    tblHistoriaClinica.actividadFisica    = registroPacienteCLS.historiaClinica.actividadFisica;
                    tblHistoriaClinica.medicacionHabitual = registroPacienteCLS.historiaClinica.medicacionHabitual;
                    tblHistoriaClinica.habilitado         = 1;

                    bd.SaveChanges();//Guardar los cambios realizados en la bdd
                    return(RedirectToAction("InformacionPaciente", "HistoriaClinica", new { idPaciente = tblHistoriaClinica.idPaciente }));
                }
            }
        }
        /// <summary>
        /// Accion que recibe los datos de la evolución
        /// </summary>
        /// <param name="registroEvolucionCLS">Modelo con los datos de la Evolución</param>
        /// <param name="foto1">Archivo enviado desde la vista</param>
        /// <param name="foto2">Archivo enviado desde la vista</param>
        /// <param name="foto3">Archivo enviado desde la vista</param>
        /// <param name="foto4">Archivo enviado desde la vista</param>
        /// <param name="foto5">Archivo enviado desde la vista</param>
        /// <param name="foto6">Archivo enviado desde la vista</param>
        /// <param name="idHistoriaClinica">id de la historia clínica</param>
        /// <param name="mapaCorporal">string con la información del canvas rayado</param>
        /// <param name="foto1NombreFoto">nombre del archivo seleccionado</param>
        /// <param name="foto2NombreFoto">nombre del archivo seleccionado</param>
        /// <param name="foto3NombreFoto">nombre del archivo seleccionado</param>
        /// <param name="foto4NombreFoto">nombre del archivo seleccionado</param>
        /// <param name="foto5NombreFoto">nombre del archivo seleccionado</param>
        /// <param name="foto6NombreFoto">nombre del archivo seleccionado</param>
        /// <returns>Retorna el id de evolución recien creada y un mensaje de error o el numero de registros guardados</returns>
        public (string, int) Guardar(RegistroEvolucionCLS registroEvolucionCLS, HttpPostedFileBase foto1, HttpPostedFileBase foto2, HttpPostedFileBase foto3, HttpPostedFileBase foto4, HttpPostedFileBase foto5, HttpPostedFileBase foto6, int idHistoriaClinica, string mapaCorporal, string foto1NombreFoto, string foto2NombreFoto, string foto3NombreFoto, string foto4NombreFoto, string foto5NombreFoto, string foto6NombreFoto, bool reproductivo)
        {
            string mensaje     = "";
            int    idEvolucion = 0;

            try
            {
                //Se quita al propiedad Required de las fotos en el modelo por si no se cargan archivos
                ModelState.Remove("foto1");
                ModelState.Remove("foto2");
                ModelState.Remove("foto3");
                ModelState.Remove("foto4");
                ModelState.Remove("foto5");
                ModelState.Remove("foto6");
                //Validaciones sobre los campos de reproduccion femeninos si es que existen
                if (reproductivo)
                {
                    if (registroEvolucionCLS.evolucion.ciclo == null)
                    {
                        ModelState.AddModelError("evolucion.ciclo", "El campo ciclo menstrual es obligatorio.");
                    }
                    else
                    {
                        ModelState.Remove("evolucion.ciclo");
                    }
                    if (registroEvolucionCLS.evolucion.fechaUltimaMenstruacion == null)
                    {
                        ModelState.AddModelError("evolucion.fechaUltimaMenstruacion", "El campo fecha de la última menstruacion es obligatorio.");
                    }
                    else
                    {
                        ModelState.Remove("evolucion.fechaUltimaMenstruacion");
                    }
                    if (registroEvolucionCLS.evolucion.vidaSexualActiva == null)
                    {
                        ModelState.AddModelError("evolucion.vidaSexualActiva", "El campo vida sexual activa es obligatorio.");
                    }
                    else
                    {
                        ModelState.Remove("evolucion.vidaSexualActiva");
                    }
                    if (registroEvolucionCLS.evolucion.metodoPlanificacionFamiliar == null)
                    {
                        ModelState.AddModelError("evolucion.metodoPlanificacionFamiliar", "El campo método de planificación familiar es obligatorio.");
                    }
                    else
                    {
                        ModelState.Remove("evolucion.metodoPlanificacionFamiliar");
                    }
                }
                else
                {
                    ModelState.Remove("evolucion.ciclo");
                    ModelState.Remove("evolucion.fechaUltimaMenstruacion");
                    ModelState.Remove("evolucion.vidaSexualActiva");
                    ModelState.Remove("evolucion.metodoPlanificacionFamiliar");
                }

                if (!ModelState.IsValid)
                {
                    //Listado de errores en caso de existir campos incompletos
                    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
                {
                    using (var bd = new BDD_ConsultorioDermatologicoEntities())
                    {
                        //Obtención de datos y creación de viewbahs para la vista
                        tblHistoriaClinica tblHistoriaClinica = bd.tblHistoriaClinica.Where(p => p.idPaciente == idHistoriaClinica).First();
                        ViewBag.idHistoriaClinica = tblHistoriaClinica.idHistoriaClinica;

                        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 = new tblEvolucion();
                        tblEvolucion.idHistoriaClinica = idHistoriaClinica;

                        tblEvolucion.mapaCorporal = mapaCorporal;

                        tblEvolucion.nombreMapa                  = "MapaCorporal" + idHistoriaClinica + "-" + System.DateTime.Now.ToString("yyyy-MM-dd") + ".png";
                        tblEvolucion.diagnostico                 = registroEvolucionCLS.evolucion.diagnostico;
                        tblEvolucion.motivoConsulta              = registroEvolucionCLS.evolucion.motivoConsulta;
                        tblEvolucion.examenFisico                = registroEvolucionCLS.evolucion.examenFisico;
                        tblEvolucion.prescripcion                = registroEvolucionCLS.evolucion.prescripcion;
                        tblEvolucion.recomendaciones             = registroEvolucionCLS.evolucion.recomendaciones;
                        tblEvolucion.fechaVisita                 = System.DateTime.Now;
                        tblEvolucion.ciclo                       = registroEvolucionCLS.evolucion.ciclo;
                        tblEvolucion.fechaUltimaMenstruacion     = registroEvolucionCLS.evolucion.fechaUltimaMenstruacion;
                        tblEvolucion.vidaSexualActiva            = registroEvolucionCLS.evolucion.vidaSexualActiva;
                        tblEvolucion.metodoPlanificacionFamiliar = registroEvolucionCLS.evolucion.metodoPlanificacionFamiliar;
                        tblEvolucion.habilitado                  = 1;
                        bd.tblEvolucion.Add(tblEvolucion);

                        //Recepción de las fotos y transformación a un arreglo binario para las imagenes añadidas
                        byte[] fotoBD1 = null;
                        if (foto1 != null)
                        {
                            BinaryReader lector1 = new BinaryReader(foto1.InputStream);
                            fotoBD1 = lector1.ReadBytes((int)foto1.ContentLength);
                            tblFotos tblFoto1 = new tblFotos();
                            tblFoto1.idEvolucion = tblEvolucion.idEvolucion;
                            tblFoto1.foto        = fotoBD1;
                            tblFoto1.nombreFoto  = foto1NombreFoto;
                            bd.tblFotos.Add(tblFoto1);
                        }
                        byte[] fotoBD2 = null;
                        if (foto2 != null)
                        {
                            BinaryReader lector2 = new BinaryReader(foto2.InputStream);
                            fotoBD2 = lector2.ReadBytes((int)foto2.ContentLength);
                            tblFotos tblFoto2 = new tblFotos();
                            tblFoto2.idEvolucion = tblEvolucion.idEvolucion;
                            tblFoto2.foto        = fotoBD2;
                            tblFoto2.nombreFoto  = foto2NombreFoto;
                            bd.tblFotos.Add(tblFoto2);
                        }
                        byte[] fotoBD3 = null;
                        if (foto3 != null)
                        {
                            BinaryReader lector3 = new BinaryReader(foto3.InputStream);
                            fotoBD3 = lector3.ReadBytes((int)foto3.ContentLength);
                            tblFotos tblFoto3 = new tblFotos();
                            tblFoto3.idEvolucion = tblEvolucion.idEvolucion;
                            tblFoto3.foto        = fotoBD3;
                            tblFoto3.nombreFoto  = foto3NombreFoto;
                            bd.tblFotos.Add(tblFoto3);
                        }
                        byte[] fotoBD4 = null;
                        if (foto4 != null)
                        {
                            BinaryReader lector4 = new BinaryReader(foto4.InputStream);
                            fotoBD4 = lector4.ReadBytes((int)foto4.ContentLength);
                            tblFotos tblFoto4 = new tblFotos();
                            tblFoto4.idEvolucion = tblEvolucion.idEvolucion;
                            tblFoto4.foto        = fotoBD4;
                            tblFoto4.nombreFoto  = foto4NombreFoto;
                            bd.tblFotos.Add(tblFoto4);
                        }
                        byte[] fotoBD5 = null;
                        if (foto5 != null)
                        {
                            BinaryReader lector5 = new BinaryReader(foto5.InputStream);
                            fotoBD5 = lector5.ReadBytes((int)foto5.ContentLength);
                            tblFotos tblFoto5 = new tblFotos();
                            tblFoto5.idEvolucion = tblEvolucion.idEvolucion;
                            tblFoto5.foto        = fotoBD5;
                            tblFoto5.nombreFoto  = foto5NombreFoto;
                            bd.tblFotos.Add(tblFoto5);
                        }
                        byte[] fotoBD6 = null;
                        if (foto6 != null)
                        {
                            BinaryReader lector6 = new BinaryReader(foto6.InputStream);
                            fotoBD6 = lector6.ReadBytes((int)foto6.ContentLength);
                            tblFotos tblFoto6 = new tblFotos();
                            tblFoto6.idEvolucion = tblEvolucion.idEvolucion;
                            tblFoto6.foto        = fotoBD6;
                            tblFoto6.nombreFoto  = foto6NombreFoto;
                            bd.tblFotos.Add(tblFoto6);
                        }
                        //almacenamiento en la base de datos
                        mensaje = bd.SaveChanges().ToString();
                        if (mensaje == "0")
                        {
                            mensaje = "";
                        }
                        idEvolucion = tblEvolucion.idEvolucion; //id de la evolución creada si todo ha sido correcto, para la redirección a la vista de información
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                mensaje = "";
            }
            return(mensaje, idEvolucion);
        }