/// <summary>
        /// Inserta una Prescripcion
        /// </summary>
        /// <param name="prescripcion"></param>
        /// <returns></returns>
        public static int?InsertarPrescripcion(Datos.Entities.Prescripciones prescripcion)
        {
            try
            {
                db.Prescripciones.Add(prescripcion);
                int?result = db.SaveChanges();

                return(result);
            }
            catch (Exception ex)
            {
                return(null);

                throw;
            }
        }
        /// <summary>
        /// Llena el pdf
        /// guarda la informacion en la base de datos
        /// y descarga el documento generado
        /// </summary>
        /// <param name="consultaId"></param>
        public void  fillPDF(int consultaId)
        {
            try
            {
                var paciente = Datos.Repository.ConsultasRepository.ObtenerPacientePorConsultaId(consultaId);
                var consulta = Datos.Repository.ConsultasRepository.GetConsultasPorConsultaId(consultaId);

                var catalogoDocumento = Datos.Repository.CatalogoDocumentoRepository.GetCatalogoDocumento();

                if (catalogoDocumento != null)
                {
                    //Template
                    string pdfTemplate = @catalogoDocumento.Url_Documetno; //Ruta y nombre de la platilla del PDF

                    string newName = catalogoDocumento.NombreDocumento;    //Nombre del pdf Plantilla

                    //Retorna el numero de prescripciones previas de la consulta
                    int?numeroPrescripciones = Datos.Repository.PrescripcionesRepository.numeroPrescripcionesDeConsulta(consultaId);



                    newName = newName.Replace(newName, (numeroPrescripciones + 1) + "-" + newName).Replace("$FirstName", paciente.PrimerNombre + " ").Replace("$LastName", paciente.ApellidoPaterno + " Consulta# " + consultaId); //Nombre con el que se guardara el PDF Modificado

                    string newFile = @catalogoDocumento.Url_Destino + newName;                                                                                                                                                     //Ruta y Nombre Donde se guardara el PDF Modificado

                    PdfReader  pdfReader  = new PdfReader(pdfTemplate);
                    PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileStream(newFile, FileMode.Create));

                    AcroFields pdfFormFields = pdfStamper.AcroFields;


                    if (rbIngreso.Checked)
                    {
                        pdfFormFields.SetField("Tipo_Examen", "INGRESO");
                    }
                    if (rbPeriodico.Checked)
                    {
                        pdfFormFields.SetField("Tipo_Examen", "PERIODICO");
                    }
                    if (rbRetiro.Checked)
                    {
                        pdfFormFields.SetField("Tipo_Examen", "RETIRO");
                    }
                    if (rbOtro.Checked)
                    {
                        pdfFormFields.SetField("Tipo_Examen", "OTRO");
                    }


                    DateTime dateFechaConsulta = Convert.ToDateTime(consulta.Fecha_Consulta);
                    pdfFormFields.SetField("Dia_Consulta", dateFechaConsulta.Day.ToString());
                    pdfFormFields.SetField("Mes_Consulta", dateFechaConsulta.Month.ToString());
                    pdfFormFields.SetField("Ano_Consulta", dateFechaConsulta.Year.ToString());

                    pdfFormFields.SetField("NOMBRES Y APELLIDOS", paciente.PrimerNombre + " " + paciente.SegundoNombre + " " + paciente.ApellidoPaterno + " " + paciente.ApellidoMaterno);
                    pdfFormFields.SetField("CC", paciente.Numero_de_Documento.ToString());


                    DateTime dateFechaNacimiento = Convert.ToDateTime(paciente.DOB);
                    pdfFormFields.SetField("Dia_Nacimiento", dateFechaNacimiento.Day.ToString());
                    pdfFormFields.SetField("Mes_Nacimiento", dateFechaNacimiento.Month.ToString());
                    pdfFormFields.SetField("Ano_Nacimiento", dateFechaNacimiento.Year.ToString());


                    pdfFormFields.SetField("Genero", paciente.Genero);

                    pdfFormFields.SetField("Edad", txtEdad.Text);
                    pdfFormFields.SetField("Estado_Civil", ddlEstadoCivil.SelectedValue);
                    pdfFormFields.SetField("Telefono", paciente.Telefono.ToString());
                    pdfFormFields.SetField("EMPRESA", consulta.Empresa);
                    pdfFormFields.SetField("CARGO", consulta.Cargo);

                    if (!ddlEPS.SelectedValue.Equals("-1"))
                    {
                        pdfFormFields.SetField("EPS", ddlEPS.SelectedItem.Text);
                    }
                    pdfFormFields.SetField("RH", ddlRH.SelectedValue);
                    pdfFormFields.SetField("DIRECCION", paciente.Direccion);

                    if (rbAPTO.Checked)
                    {
                        pdfFormFields.SetField("CalificacionMedica", "APTO");
                    }
                    if (rbAPTO_CON_RESTRICCIONES.Checked)
                    {
                        pdfFormFields.SetField("CalificacionMedica", "APTO CON RESTRICCIONES");
                    }
                    if (rbRESTRICCION_TEMPORAL.Checked)
                    {
                        pdfFormFields.SetField("CalificacionMedica", "RESTRICCION TEMPORAL");
                    }
                    if (rbRESTRICCION_DEFINITIVA.Checked)
                    {
                        pdfFormFields.SetField("CalificacionMedica", "RESTRICCION DEFINITIVA");
                    }

                    if (rbConceptoRetiro.Checked)
                    {
                        pdfFormFields.SetField("Concepto_Retiro", "Yes");
                    }

                    if (chkAuditivo.Checked)
                    {
                        pdfFormFields.SetField("AUDITIVO", "Yes");
                    }
                    if (chkErgonomico.Checked)
                    {
                        pdfFormFields.SetField("ERGONOMICO", "Yes");
                    }
                    if (chkRespiratorio.Checked)
                    {
                        pdfFormFields.SetField("RESPIRATORIO", "Yes");
                    }
                    if (chkPsicolaboral.Checked)
                    {
                        pdfFormFields.SetField("PSICOLABORAL", "Yes");
                    }
                    if (chkVisual.Checked)
                    {
                        pdfFormFields.SetField("VISUAL", "Yes");
                    }
                    if (chkQuimico.Checked)
                    {
                        pdfFormFields.SetField("QUIMICO", "Yes");
                    }
                    if (chkBiologico.Checked)
                    {
                        pdfFormFields.SetField("BIOLOGICO", "Yes");
                    }

                    if (EPSSI.Checked)
                    {
                        pdfFormFields.SetField("Remitodo_EPS", "Yes");
                    }
                    else
                    {
                        pdfFormFields.SetField("Remitodo_EPS", "No");
                    }
                    if (ARLSI.Checked)
                    {
                        pdfFormFields.SetField("Remitodo_ARL", "Yes");
                    }
                    else
                    {
                        pdfFormFields.SetField("Remitodo_ARL", "No");
                    }

                    if (chkAutocuidado.Checked)
                    {
                        pdfFormFields.SetField("Autocuidado", "Yes");
                    }
                    if (chkRecomendaciones.Checked)
                    {
                        pdfFormFields.SetField("Seguir Recomendacion", "Yes");
                    }
                    if (chkEPP.Checked)
                    {
                        pdfFormFields.SetField("Uso_EPP", "Yes");
                    }
                    if (chkPausasActivas.Checked)
                    {
                        pdfFormFields.SetField("Pausas Activas", "Yes");
                    }
                    if (chkHigienePostural.Checked)
                    {
                        pdfFormFields.SetField("Higiene Postural", "Yes");
                    }
                    if (chkEstiloVidaSaludable.Checked)
                    {
                        pdfFormFields.SetField("Estilo Vida", "Yes");
                    }

                    if (chkAudiometria.Checked)
                    {
                        pdfFormFields.SetField("Audiometria", "Yes");
                    }
                    if (chkTSH.Checked)
                    {
                        pdfFormFields.SetField("TSH", "Yes");
                    }
                    if (chkOptometria.Checked)
                    {
                        pdfFormFields.SetField("Optometria", "Yes");
                    }
                    if (chkElectrocardiograma.Checked)
                    {
                        pdfFormFields.SetField("Electrocardiograma", "Yes");
                    }
                    if (chkVisiometria.Checked)
                    {
                        pdfFormFields.SetField("Visiometria", "Yes");
                    }
                    if (chkEspirometria.Checked)
                    {
                        pdfFormFields.SetField("Espirometria", "Yes");
                    }
                    if (chkHemograma.Checked)
                    {
                        pdfFormFields.SetField("Hemograma", "Yes");
                    }
                    if (chkGlicemia.Checked)
                    {
                        pdfFormFields.SetField("Glicemia", "Yes");
                    }

                    pdfFormFields.SetField("Observaciones", consulta.Observaciones);

                    // Cambia la propiedad para que no se pueda editar el PDF
                    pdfStamper.FormFlattening = false;

                    // Cierra el PDF
                    pdfStamper.Close();



                    Datos.Entities.Prescripciones prescripcion = new Datos.Entities.Prescripciones();

                    prescripcion.Consultas_Id     = consultaId;
                    prescripcion.Nombre_Documento = newName;
                    prescripcion.Url_Documento    = newFile;
                    prescripcion.fecha_Generado   = DateTime.Now.ToString("yyyy-MM-dd");

                    //Inserta los datos de la prescripcion generada
                    int?prescripcionId = Datos.Repository.PrescripcionesRepository.InsertarPrescripcion(prescripcion);


                    //Descargar el Documento
                    Response.ContentType     = "text/pdf";
                    Response.ContentEncoding = System.Text.Encoding.UTF8;
                    Response.AppendHeader("NombreCabecera", "MensajeCabecera");
                    Response.AddHeader("Content-Disposition", string.Format("attachment; filename = \"{0}\"", System.IO.Path.GetFileName(newFile)));

                    Response.WriteFile(newFile, false);

                    HttpContext.Current.ApplicationInstance.CompleteRequest();
                }
                else
                {
                    Response.Write("<script>alert('No se encuentra la ruta del archivo')</script>");
                }
            }
            catch (Exception ex)
            {
                throw;
            }
        }