Esempio n. 1
0
        private void Anular(object p)
        {
            Business.Data.Laboratorio.Protocolo oRegistro = new Business.Data.Laboratorio.Protocolo();
            oRegistro = (Business.Data.Laboratorio.Protocolo)oRegistro.Get(typeof(Business.Data.Laboratorio.Protocolo), int.Parse(p.ToString()));

            Configuracion oCon = new Configuracion(); oCon = (Configuracion)oCon.Get(typeof(Configuracion), 1);

            oCon = (Configuracion)oCon.Get(typeof(Configuracion), "IdConfiguracion", 1);

            if (oRegistro.Estado == 2)
            {
                if (oCon.EliminarProtocoloTerminado)
                {
                    oRegistro.Baja = true;
                    oRegistro.Save();
                    oRegistro.GrabarAuditoriaProtocolo("Elimina Protocolo", int.Parse(Session["idUsuario"].ToString()));
                    //CargarGrilla();
                }
                else
                {
                    string popupScript = "<script language='JavaScript'> alert('No es posible eliminar un protocolo terminado.')</script>";
                    Page.RegisterClientScriptBlock("PopupScript", popupScript);
                }
            }
            else
            {
                oRegistro.Baja = true;
                oRegistro.Save();
                oRegistro.GrabarAuditoriaProtocolo("Elimina Protocolo", int.Parse(Session["idUsuario"].ToString()));
                //CargarGrilla();
            }
            CargarGrilla();
        }
Esempio n. 2
0
        private void MuestraDatos(Business.Data.Laboratorio.Protocolo oRegistro)
        {
            ///Agregar a la tabla las determinaciones para mostrarlas en el gridview
            //dtDeterminaciones = (System.Data.DataTable)(Session["Tabla1"]);
            DetalleProtocolo oDetalle  = new DetalleProtocolo();
            ISession         m_session = NHibernateHttpModule.CurrentSession;

            ///Agregar a la tabla las diagnosticos para mostrarlas en el gridview
            //   dtDiagnosticos = (System.Data.DataTable)(Session["Tabla2"]);
            ProtocoloDiagnostico oDiagnostico = new ProtocoloDiagnostico();
            ICriteria            crit2        = m_session.CreateCriteria(typeof(ProtocoloDiagnostico));

            crit2.Add(Expression.Eq("IdProtocolo", oRegistro));

            IList diagnosticos = crit2.List();

            foreach (ProtocoloDiagnostico oDiag in diagnosticos)
            {
                Cie10 oCie10 = new Cie10();
                oCie10 = (Cie10)oCie10.Get(typeof(Cie10), oDiag.IdDiagnostico);

                ListItem oDia = new ListItem();
                oDia.Text  = oCie10.Codigo + " - " + oCie10.Nombre;
                oDia.Value = oCie10.Id.ToString();
                lstDiagnosticosFinal.Items.Add(oDia);
            }
        }
Esempio n. 3
0
        private void Imprimir(object p, string p_2)
        {
            Business.Data.Laboratorio.Protocolo oProt = new Business.Data.Laboratorio.Protocolo();
            oProt = (Business.Data.Laboratorio.Protocolo)oProt.Get(typeof(Business.Data.Laboratorio.Protocolo), int.Parse(p.ToString()));

            oProt.GrabarAuditoriaProtocolo("Genera PDF Comprobante", int.Parse(Session["idUsuario"].ToString()));

            Configuracion oCon = new Configuracion(); oCon = (Configuracion)oCon.Get(typeof(Configuracion), 1);

            oCon = (Configuracion)oCon.Get(typeof(Configuracion), "IdConfiguracion", 1);

            ParameterDiscreteValue encabezado1 = new ParameterDiscreteValue();

            encabezado1.Value = oCon.EncabezadoLinea1;

            ParameterDiscreteValue encabezado2 = new ParameterDiscreteValue();

            encabezado2.Value = oCon.EncabezadoLinea2;

            ParameterDiscreteValue encabezado3 = new ParameterDiscreteValue();

            encabezado3.Value = oCon.EncabezadoLinea3;


            ParameterDiscreteValue tipoNumeracion = new ParameterDiscreteValue();

            tipoNumeracion.Value = oCon.TipoNumeracionProtocolo;



            oCr.Report.FileName = "../Informes/Protocolo.rpt";
            oCr.ReportDocument.SetDataSource(oProt.GetDataSet("Protocolo", "", oProt.IdTipoServicio.IdTipoServicio));

            oCr.ReportDocument.ParameterFields[0].CurrentValues.Add(encabezado1);
            oCr.ReportDocument.ParameterFields[1].CurrentValues.Add(encabezado2);
            oCr.ReportDocument.ParameterFields[2].CurrentValues.Add(encabezado3);
            oCr.ReportDocument.ParameterFields[3].CurrentValues.Add(tipoNumeracion);

            oCr.DataBind();
            if (p_2 == "I")
            {
                oCr.ReportDocument.PrintToPrinter(1, false, 0, 0);
            }
            else
            {
                MemoryStream oStream; // using System.IO
                oStream = (MemoryStream)oCr.ReportDocument.ExportToStream(ExportFormatType.PortableDocFormat);
                Response.Clear();
                Response.Buffer      = true;
                Response.ContentType = "application/pdf";
                Response.AddHeader("Content-Disposition", "attachment;filename=Protocolo.pdf");

                Response.BinaryWrite(oStream.ToArray());
                Response.End();
            }
        }
Esempio n. 4
0
        protected void btnGuardar_Click1(object sender, EventArgs e)
        {
            if (Page.IsValid)
            { ///Verifica si se trata de un alta o modificacion de protocolo
                Business.Data.Laboratorio.Protocolo oRegistro = new Business.Data.Laboratorio.Protocolo();
                oRegistro = (Business.Data.Laboratorio.Protocolo)oRegistro.Get(typeof(Business.Data.Laboratorio.Protocolo), int.Parse(Request["idProtocolo"].ToString()));

                GuardarDiagnosticos(oRegistro);
            }
        }
Esempio n. 5
0
        private void Guardar(Business.Data.Laboratorio.Protocolo oRegistro)
        {
            if (IsTokenValid())
            {
                TEST++;

                GuardarDetalle(oRegistro);
            }
            // oRegistro.GrabarAuditoriaProtocolo(Request["Operacion"].ToString(), int.Parse(Session["idUsuario"].ToString()));
        }
Esempio n. 6
0
        protected void btnGuardar_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            { ///Verifica si se trata de un alta o modificacion de protocolo
                Business.Data.Laboratorio.Protocolo oRegistro = new Business.Data.Laboratorio.Protocolo();
                oRegistro = (Business.Data.Laboratorio.Protocolo)oRegistro.Get(typeof(Business.Data.Laboratorio.Protocolo), int.Parse(Request["idProtocolo"].ToString()));


                Guardar(oRegistro);
                Response.Redirect("AnalisisEdit.aspx?idProtocolo=" + oRegistro.IdProtocolo.ToString(), false);
            }
        }
Esempio n. 7
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                SetToken();
                Business.Data.Laboratorio.Protocolo oRegistro = new Business.Data.Laboratorio.Protocolo();
                oRegistro = (Business.Data.Laboratorio.Protocolo)oRegistro.Get(typeof(Business.Data.Laboratorio.Protocolo), int.Parse(Request["idProtocolo"].ToString()));

                lblProtocolo.Text = oRegistro.GetNumero() + " " + oRegistro.IdPaciente.Apellido + " " + oRegistro.IdPaciente.Nombre;
                //    CargarListas(oRegistro);
                MuestraDatos(oRegistro);
            }
        }
Esempio n. 8
0
        private void MuestraDatos()
        {
            //Actualiza los datos de los objetos : alta o modificacion .
            Configuracion oC = new Configuracion(); oC = (Configuracion)oC.Get(typeof(Configuracion), "IdConfiguracion", 1);

            Business.Data.Laboratorio.Protocolo oRegistro = new Business.Data.Laboratorio.Protocolo();
            oRegistro = (Business.Data.Laboratorio.Protocolo)oRegistro.Get(typeof(Business.Data.Laboratorio.Protocolo), int.Parse(Request["idProtocolo"].ToString()));
            //  oRegistro.GrabarAuditoriaProtocolo("Consulta", int.Parse(Session["idUsuario"].ToString()));

            ddlMuestra.SelectedValue = oRegistro.IdMuestra.ToString();

            CargarItems(oRegistro);


            ///Agregar a la tabla las determinaciones para mostrarlas en el gridview
            //dtDeterminaciones = (System.Data.DataTable)(Session["Tabla1"]);
            DetalleProtocolo oDetalle  = new DetalleProtocolo();
            ISession         m_session = NHibernateHttpModule.CurrentSession;
            ICriteria        crit      = m_session.CreateCriteria(typeof(DetalleProtocolo));

            crit.Add(Expression.Eq("IdProtocolo", oRegistro));
            crit.AddOrder(Order.Asc("IdDetalleProtocolo"));

            IList  items  = crit.List();
            string pivot  = "";
            string sDatos = "";

            foreach (DetalleProtocolo oDet in items)
            {
                if (pivot != oDet.IdItem.Nombre)
                {
                    if (sDatos == "")
                    {
                        sDatos = oDet.IdItem.Codigo + "#" + oDet.TrajoMuestra + "#" + oDet.ConResultado;
                    }
                    else
                    {
                        sDatos += ";" + oDet.IdItem.Codigo + "#" + oDet.TrajoMuestra + "#" + oDet.ConResultado;
                    }
                    //sDatos += "#" + oDet.IdItem.Codigo + "#" + oDet.IdItem.Nombre + "#" + oDet.TrajoMuestra + "@";
                    pivot = oDet.IdItem.Nombre;
                }
            }

            TxtDatosCargados.Value = sDatos;

            //TxtDatos.Value = sDatos;
        }
Esempio n. 9
0
        private void GuardarDiagnosticos(Business.Data.Laboratorio.Protocolo oRegistro)
        {
            if (IsTokenValid())
            {
                TEST++;

                //   dtDiagnosticos = (System.Data.DataTable)(Session["Tabla2"]);
                ///Eliminar los detalles y volverlos a crear
                ISession  m_session = NHibernateHttpModule.CurrentSession;
                ICriteria crit      = m_session.CreateCriteria(typeof(ProtocoloDiagnostico));
                crit.Add(Expression.Eq("IdProtocolo", oRegistro));
                IList detalle = crit.List();
                if (detalle.Count > 0)
                {
                    foreach (ProtocoloDiagnostico oDetalle in detalle)
                    {
                        Cie10  oCie10   = new Cie10(oDetalle.IdDiagnostico);
                        string s_diag_1 = oCie10.Nombre;
                        oDetalle.Delete();
                        oRegistro.GrabarAuditoriaDetalleProtocolo("Elimina", int.Parse(Session["idUsuario"].ToString()), "Diagnóstico", s_diag_1);
                    }
                }


                ///Busca en la lista de diagnosticos buscados
                if (lstDiagnosticosFinal.Items.Count > 0)
                {
                    /////Crea nuevamente los detalles.
                    for (int i = 0; i < lstDiagnosticosFinal.Items.Count; i++)
                    {
                        ProtocoloDiagnostico oDetalle = new ProtocoloDiagnostico();
                        oDetalle.IdProtocolo   = oRegistro;
                        oDetalle.IdEfector     = oRegistro.IdEfector;
                        oDetalle.IdDiagnostico = int.Parse(lstDiagnosticosFinal.Items[i].Value);
                        string s_diag = lstDiagnosticosFinal.Items[i].Text;
                        oDetalle.Save();
                        oRegistro.GrabarAuditoriaDetalleProtocolo("Graba", int.Parse(Session["idUsuario"].ToString()), "Diagnóstico", s_diag);
                    }
                }
            }
        }
Esempio n. 10
0
        protected void gvLista_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            switch (e.CommandName)
            {
            case "Modificar":
            {
                Business.Data.Laboratorio.Protocolo oProtocolo = new Business.Data.Laboratorio.Protocolo();
                oProtocolo = (Business.Data.Laboratorio.Protocolo)oProtocolo.Get(typeof(Business.Data.Laboratorio.Protocolo), int.Parse(e.CommandArgument.ToString()));
                if (Request["idServicio"].ToString() == "4")
                {
                    Response.Redirect("ProtocoloEditPesquisa.aspx?idServicio=" + Request["idServicio"].ToString() + "&Desde=ProtocoloList&Operacion=Modifica&idProtocolo=" + oProtocolo.IdProtocolo);
                }
                else
                {
                    Response.Redirect("ProtocoloEdit2.aspx?idServicio=" + Request["idServicio"].ToString() + "&Desde=ProtocoloList&Operacion=Modifica&idProtocolo=" + oProtocolo.IdProtocolo);
                }
                break;
            }

            case "Imprimir":
            {
                Imprimir(e.CommandArgument, "I");
                PintarReferencias();
                break;
            }

            case "Pdf":
            {
                Imprimir(e.CommandArgument, "P");
                CargarGrilla();        // PintarReferencias();
                break;
            }

            case "Anular":
            {
                Anular(e.CommandArgument);
                // PintarReferencias();
                break;
            }
            }
        }
Esempio n. 11
0
        private void Imprimir(string p, string p_2)
        {
            Business.Data.Laboratorio.Protocolo oProt = new Business.Data.Laboratorio.Protocolo();
            oProt = (Business.Data.Laboratorio.Protocolo)oProt.Get(typeof(Business.Data.Laboratorio.Protocolo), int.Parse(p));

            oCr.Report.FileName = "../Informes/Protocolo.rpt";
            oCr.ReportDocument.SetDataSource(oProt.GetDataSet("Protocolo", "", oProt.IdTipoServicio.IdTipoServicio));
            oCr.DataBind();


            switch (p_2)
            {
            case "Pantalla":
            {
                CrystalReportViewer1.ReportSourceID = oCr.ID;
                CrystalReportViewer1.ReportSource   = oCr;
                Condiciones_del_visualizador();
            }
            break;

            case "I":
            { oCr.ReportDocument.PrintToPrinter(1, true, 1, 100); }
            break;

            case "PDF":
            {
                oCr.ReportDocument.ExportToHttpResponse(ExportFormatType.PortableDocFormat, Response, true, "Protocolo.pdf");
                //        MemoryStream oStream; // using System.IO
                //oStream = (MemoryStream)oCr.ReportDocument.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
                //Response.Clear();
                //Response.Buffer = true;
                //Response.ContentType = "application/pdf";
                //Response.AddHeader("Content-Disposition", "attachment;filename=Protocolo.pdf");

                //Response.BinaryWrite(oStream.ToArray());
                //Response.End();
            }
            break;
            }
        }
Esempio n. 12
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                if (Request["idProtocolo"] != null)
                {
                    Business.Data.Laboratorio.Protocolo oRegistro = new Business.Data.Laboratorio.Protocolo();
                    oRegistro = (Business.Data.Laboratorio.Protocolo)oRegistro.Get(typeof(Business.Data.Laboratorio.Protocolo), int.Parse(Request["idProtocolo"].ToString()));

                    SolicitudScreening oSolicitud = new SolicitudScreening();
                    oSolicitud = (Business.Data.Laboratorio.SolicitudScreening)oSolicitud.Get(typeof(Business.Data.Laboratorio.SolicitudScreening), "IdProtocolo", oRegistro);

                    if (oSolicitud != null)
                    {
                        MostrarSolicitudScreeening(oSolicitud);
                    }

                    //    CargarItems();
                    //    CargarScreening(int.Parse(Request["idSolicitudScreening"].ToString()));
                    //    CargarAlarmas(int.Parse(Request["idSolicitudScreening"].ToString()));
                }
            }
        }
Esempio n. 13
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                if (Session["s_permiso"] == null)
                {
                    Response.Redirect("FinSesion.aspx");
                }

                Business.Data.Laboratorio.Protocolo oP = new Business.Data.Laboratorio.Protocolo();
                Configuracion oCon = new Configuracion(); oCon = (Configuracion)oCon.Get(typeof(Configuracion), 1);

                switch (oCon.TipoNumeracionProtocolo)
                {
                case 0:      ///autonumerico
                    lblProximoProtocolo1.Text = oP.GenerarNumero().ToString(); break;

                case 1:      //numero diario
                    lblProximoProtocolo1.Text = oP.GenerarNumeroDiario(DateTime.Now.ToString("yyyyMMdd")).ToString(); break;

                case 2:     // numero por sector
                {
                    lblProximoProtocolo1.Visible  = false;
                    lnkUltimoNumeroSector.Visible = true;
                } break;

                case 3:     // numero por Tipo de Servicio
                {
                    lblProximoProtocolo1.Visible  = false;
                    lnkUltimoNumeroSector.Visible = true;
                } break;
                }
                lblProtocoloPendiente.Text = oP.GetPendientesImprimir().ToString();
                lblResultadoPendiente.Text = oP.GetResultadosPendientes().ToString();

                lblValidaPendiente.Text = oP.GetPendientesValidar().ToString();
                pnlRecepcion.Visible    = false;

                if (!oCon.Turno)
                {
                    pnlTurno.Visible          = false;
                    pnlTurnoRecepcion.Visible = false;
                }
                else
                {
                    if (VerificaPermisos("Pacientes con turno") == 0)
                    {
                        pnlTurnoRecepcion.Visible = false;
                    }
                    else
                    {
                        pnlTurnoRecepcion.Visible = oCon.PrincipalRecepcion;
                    }
                    if (VerificaPermisos("Asignacion de turnos") == 0)
                    {
                        pnlTurno.Visible = false;
                    }
                    else
                    {
                        pnlTurno.Visible = oCon.PrincipalTurno;
                    }
                }


                if (VerificaPermisos("Pacientes sin turno") == 0)
                {
                    pnlRecepcion.Visible = false;
                }
                else
                {
                    pnlRecepcion.Visible = oCon.PrincipalRecepcion;
                }

                //    else
                //    {
                //        if (VerificaPermisos("Pacientes con turno") == 0)
                //            pnlTurnoRecepcion.Visible = false;
                //        else
                //            pnlTurnoRecepcion.Visible = oCon.PrincipalRecepcion;

                //        if (VerificaPermisos("Pacientes sin turno") == 0)
                //            pnlProtocolo.Visible = false;
                //        else
                //            pnlProtocolo.Visible = oCon.PrincipalRecepcion;


                //    }



                //Si no tiene permisos directamente no se muestra
                //Si tiene permisos y si está habilitado el acceso directo se muestra
                if (VerificaPermisos("Hoja de Trabajo") == 0)
                {
                    pnlHojaTrabajo.Visible = false;
                }
                else
                {
                    pnlHojaTrabajo.Visible = oCon.PrincipalImpresionHT;
                }


                if (VerificaPermisos("Carga") == 0)
                {
                    pnlCargaResultado.Visible = false;
                }
                else
                {
                    pnlCargaResultado.Visible = oCon.PrincipalCargaResultados;
                }

                if (VerificaPermisos("Validacion") == 0)
                {
                    pnlValidacion.Visible = false;
                }
                else
                {
                    pnlValidacion.Visible = oCon.PrincipalValidacion;
                }

                if (VerificaPermisos("Impresión") == 0)
                {
                    pnlImpresion.Visible = false;
                }
                else
                {
                    pnlImpresion.Visible = oCon.PrincipalImpresionResultados;
                }


                ///Para que el usuario acceda al modulo urgencias deberá tener permisos a la carga de protocolo,
                ///carga de resultados y validacion.
                if ((VerificaPermisos("Pacientes sin turno") == 0) && (VerificaPermisos("Carga") == 0) && (VerificaPermisos("Validacion") == 0)) ///Urgencias
                {
                    pnlUrgencia.Visible = false;
                }
                else
                {
                    pnlUrgencia.Visible = oCon.PrincipalUrgencias;
                }

                ///Agregar tambien el acceso a evolucion por analisis e historial (solapa antecedentes de resultados)
                if (VerificaPermisos("Historial de Resultados") == 0)
                {
                    pnlResultados.Visible = false;
                }
                else
                {
                    pnlResultados.Visible = oCon.PrincipalResultados;
                }


                if (VerificaPermisos("Mensajes Internos") != 0)
                {
                    MostrarMensajes();
                }
                else
                {
                    mensajeria.Visible = false;
                }
                //if (VerificaPermisos("Historial Por Analisis") == 0) pnlResultadoAnalisis.Visible = false;
                //else pnlResultadoAnalisis.Visible = oCon.PrincipalResultados;

                if (VerificaPermisos("Peticion Electronica") != 0)
                {
                    MostrarPeticionesPendientes();
                }
                else
                {
                    dlstPeticiones.Visible = false;
                }
            }
        }
Esempio n. 14
0
        private void GuardarDetalle2(Business.Data.Laboratorio.Protocolo oRegistro)
        {
            ///Eliminar los detalles para volverlos a crear
            ISession  m_session = NHibernateHttpModule.CurrentSession;
            ICriteria crit      = m_session.CreateCriteria(typeof(DetalleProtocolo));

            crit.Add(Expression.Eq("IdProtocolo", oRegistro));
            IList detalle = crit.List();

            if (detalle.Count > 0)
            {
                foreach (DetalleProtocolo oDetalle in detalle)
                {
                    oDetalle.Delete();
                }
            }


            int dias_espera = 0;

            string[] tabla = TxtDatos.Value.Split('@');

            for (int i = 0; i < tabla.Length - 1; i++)
            {
                string[] fila = tabla[i].Split('#');


                string codigo = fila[1].ToString();
                if (codigo != "")
                {
                    DetalleProtocolo oDetalle = new DetalleProtocolo();
                    Item             oItem    = new Item();
                    oDetalle.IdProtocolo = oRegistro;
                    oDetalle.IdEfector   = oRegistro.IdEfector;

                    string trajomuestra = fila[3].ToString();

                    oDetalle.IdItem = (Item)oItem.Get(typeof(Item), "Codigo", codigo);

                    if (dias_espera < oDetalle.IdItem.Duracion)
                    {
                        dias_espera = oDetalle.IdItem.Duracion;
                    }

                    /*CheckBox a = ((CheckBox)(row.Cells[0].FindControl("CheckBox1")));
                     * if (a.Checked)
                     *  oDetalle.TrajoMuestra = "Si";
                     * else*/

                    if (trajomuestra == "true")
                    {
                        oDetalle.TrajoMuestra = "No";
                    }
                    else
                    {
                        oDetalle.TrajoMuestra = "Si";
                    }


                    oDetalle.FechaResultado         = DateTime.Parse("01/01/1900");
                    oDetalle.FechaValida            = DateTime.Parse("01/01/1900");
                    oDetalle.FechaControl           = DateTime.Parse("01/01/1900");
                    oDetalle.FechaImpresion         = DateTime.Parse("01/01/1900");
                    oDetalle.FechaEnvio             = DateTime.Parse("01/01/1900");
                    oDetalle.FechaObservacion       = DateTime.Parse("01/01/1900");
                    oDetalle.FechaValidaObservacion = DateTime.Parse("01/01/1900");
                    GuardarDetallePractica(oDetalle);
                }
            }


            Configuracion oCon = new Configuracion(); oCon = (Configuracion)oCon.Get(typeof(Configuracion), 1);

            //  DateTime fechaentrega;
            //if (oCon.TipoCalculoDiasRetiro == 0)

            if (oRegistro.IdOrigen.IdOrigen == 1)    /// Solo calcula con Calendario si es Externo
            {
                if (oCon.TipoCalculoDiasRetiro == 0) //Calcula con los días de espera del analisis
                {
                    oRegistro.FechaRetiro = oRegistro.CalcularCalendarioEntrega(oRegistro.Fecha.AddDays(dias_espera));
                }
                else   // calcula con los días predeterminados de espera
                {
                    oRegistro.FechaRetiro = oRegistro.CalcularCalendarioEntrega(oRegistro.Fecha.AddDays(oCon.DiasRetiro));
                }
            }
            else
            {
                oRegistro.FechaRetiro = oRegistro.Fecha.AddDays(dias_espera);
            }



            oRegistro.Save();
        }
Esempio n. 15
0
        //private void ActualizarSolicitudScreening(string p, Protocolo oProtocolo)
        //{
        //    SolicitudScreening oRegistro = new SolicitudScreening();
        //    oRegistro = (SolicitudScreening)oRegistro.Get(typeof(SolicitudScreening), int.Parse(p));
        //    oRegistro.IdProtocolo = oProtocolo.IdProtocolo;
        //    oRegistro.Save();
        //}



        private void GuardarDetalle(Business.Data.Laboratorio.Protocolo oRegistro)
        {
            int dias_espera = 0;

            string[] tabla     = TxtDatos.Value.Split('@');
            ISession m_session = NHibernateHttpModule.CurrentSession;

            string recordar_practicas = "";

            for (int i = 0; i < tabla.Length - 1; i++)
            {
                string[] fila = tabla[i].Split('#');


                string codigo = fila[1].ToString();


                if (recordar_practicas == "")
                {
                    recordar_practicas = codigo + "#Si#False";
                }
                else
                {
                    recordar_practicas += ";" + codigo + "#Si#False";
                }

                if (codigo != "")
                {
                    Item oItem = new Item();
                    oItem = (Item)oItem.Get(typeof(Item), "Codigo", codigo, "Baja", false);

                    string trajomuestra = fila[3].ToString();

                    ICriteria crit = m_session.CreateCriteria(typeof(DetalleProtocolo));
                    crit.Add(Expression.Eq("IdProtocolo", oRegistro));
                    crit.Add(Expression.Eq("IdItem", oItem));
                    IList listadetalle = crit.List();
                    if (listadetalle.Count == 0)
                    { //// si no está lo agrego --- si ya está no hago nada
                        DetalleProtocolo oDetalle = new DetalleProtocolo();
                        //Item oItem = new Item();
                        oDetalle.IdProtocolo = oRegistro;
                        oDetalle.IdEfector   = oRegistro.IdEfector;



                        oDetalle.IdItem = oItem; // (Item)oItem.Get(typeof(Item), "Codigo", codigo);

                        if (dias_espera < oDetalle.IdItem.Duracion)
                        {
                            dias_espera = oDetalle.IdItem.Duracion;
                        }

                        /*CheckBox a = ((CheckBox)(row.Cells[0].FindControl("CheckBox1")));
                         * if (a.Checked)
                         *  oDetalle.TrajoMuestra = "Si";
                         * else*/

                        if (trajomuestra == "true")
                        {
                            oDetalle.TrajoMuestra = "No";
                        }
                        else
                        {
                            oDetalle.TrajoMuestra = "Si";
                        }


                        oDetalle.FechaResultado         = DateTime.Parse("01/01/1900");
                        oDetalle.FechaValida            = DateTime.Parse("01/01/1900");
                        oDetalle.FechaControl           = DateTime.Parse("01/01/1900");
                        oDetalle.FechaImpresion         = DateTime.Parse("01/01/1900");
                        oDetalle.FechaEnvio             = DateTime.Parse("01/01/1900");
                        oDetalle.FechaObservacion       = DateTime.Parse("01/01/1900");
                        oDetalle.FechaValidaObservacion = DateTime.Parse("01/01/1900");


                        GuardarDetallePractica(oDetalle);
                    }
                    else  //si ya esta actualizo si trajo muestra o no
                    {
                        foreach (DetalleProtocolo oDetalle in listadetalle)
                        {
                            if (trajomuestra == "true")
                            {
                                oDetalle.TrajoMuestra = "No";
                            }
                            else
                            {
                                oDetalle.TrajoMuestra = "Si";
                            }

                            oDetalle.Save();
                        }
                    }
                }
            }



            // Modificacion de protocolo en proceso: Elimina los detalles que no se ingresaron por pantalla
            //  ISession m_session = NHibernateHttpModule.CurrentSession;
            ICriteria critBorrado = m_session.CreateCriteria(typeof(DetalleProtocolo));

            critBorrado.Add(Expression.Eq("IdProtocolo", oRegistro));
            IList detalleaBorrar = critBorrado.List();

            if (detalleaBorrar.Count > 0)
            {
                foreach (DetalleProtocolo oDetalle in detalleaBorrar)
                {
                    bool noesta = true;
                    //oDetalle.Delete();
                    //string[] tablaAux = TxtDatos.Value.Split('@');
                    for (int i = 0; i < tabla.Length - 1; i++)
                    {
                        string[] fila   = tabla[i].Split('#');
                        string   codigo = fila[1].ToString();
                        if (codigo != "")
                        {
                            if (codigo == oDetalle.IdItem.Codigo)
                            {
                                noesta = false;
                            }
                        }
                    }
                    if (noesta)
                    {
                        oDetalle.Delete();
                        oDetalle.GrabarAuditoriaDetalleProtocolo("Elimina", int.Parse(Session["idUsuario"].ToString()));
                    }
                }
            }


            Configuracion oCon = new Configuracion(); oCon = (Configuracion)oCon.Get(typeof(Configuracion), 1);

            //if (oCon.TipoCalculoDiasRetiro == 0)

            if (oRegistro.IdOrigen.IdOrigen == 1)    /// Solo calcula con Calendario si es Externo
            {
                if (oCon.TipoCalculoDiasRetiro == 0) //Calcula con los días de espera del analisis
                {
                    oRegistro.FechaRetiro = oRegistro.CalcularCalendarioEntrega(oRegistro.Fecha.AddDays(dias_espera));
                }
                else   // calcula con los días predeterminados de espera
                {
                    oRegistro.FechaRetiro = oRegistro.CalcularCalendarioEntrega(oRegistro.Fecha.AddDays(oCon.DiasRetiro));
                }
            }
            else
            {
                oRegistro.FechaRetiro = oRegistro.Fecha.AddDays(dias_espera);
            }


            if (oRegistro.IdTipoServicio.IdTipoServicio == 3)
            {
                oRegistro.IdMuestra = int.Parse(ddlMuestra.SelectedValue);
            }
            oRegistro.Save();
        }
        public void GuardarSolicitudScreeening(Business.Data.Laboratorio.Protocolo oRegistro, int i_idsolicitud, string s_operacion)
        {
            //SolicitudScreening oSolicitud = new SolicitudScreening();
            //if (i_idsolicitud>0)  oSolicitud = (SolicitudScreening)oSolicitud.Get(typeof(SolicitudScreening), i_idsolicitud);
            SolicitudScreening oSolicitud = new SolicitudScreening();

            if (s_operacion == "Modifica")
            {
                oSolicitud = (SolicitudScreening)oSolicitud.Get(typeof(SolicitudScreening), "IdProtocolo", oRegistro);
            }

            oSolicitud.HoraNacimiento   = txtHoraNacimiento.Value;
            oSolicitud.EdadGestacional  = int.Parse(txtEdadGestacional.Value);
            oSolicitud.Peso             = int.Parse(txtPeso.Value);
            oSolicitud.FechaExtraccion  = DateTime.Parse(txtFechaExtraccion.Value.Trim());
            oSolicitud.HoraExtraccion   = txtHoraExtraccion.Value.Trim();
            oSolicitud.MotivoRepeticion = ddlMotivoRepeticion.SelectedValue;
            oSolicitud.TipoAlimentacion = rdbTipoAlimentacion.SelectedItem.Text;
            if (rdbPrimeraMuestra.SelectedValue.Trim() == "0")
            {
                oSolicitud.PrimeraMuestra = false;
            }
            else
            {
                oSolicitud.PrimeraMuestra = true;
            }
            if (rdbIngestaLeche24Horas.SelectedValue.Trim() == "0")
            {
                oSolicitud.IngestaLeche24Horas = false;
            }
            else
            {
                oSolicitud.IngestaLeche24Horas = true;
            }
            if (rdbAntibiotico.SelectedValue.Trim() == "0")
            {
                oSolicitud.Antibiotico = false;
            }
            else
            {
                oSolicitud.Antibiotico = true;
            }
            if (rdbTransfusion.SelectedValue.Trim() == "0")
            {
                oSolicitud.Transfusion = false;
            }
            else
            {
                oSolicitud.Transfusion = true;
            }
            if (rdbCorticoide.SelectedValue.Trim() == "0")
            {
                oSolicitud.Corticoides = false;
            }
            else
            {
                oSolicitud.Corticoides = true;
            }
            if (rdbDopamina.SelectedValue.Trim() == "0")
            {
                oSolicitud.Dopamina = false;
            }
            else
            {
                oSolicitud.Dopamina = true;
            }
            if (rdbEnfermedadTiroideaMaterna.SelectedValue.Trim() == "0")
            {
                oSolicitud.EnfermedadTiroideaMaterna = false;
            }
            else
            {
                oSolicitud.EnfermedadTiroideaMaterna = true;
            }
            oSolicitud.AntecedentesMaternos = txtAntecedenteMaterno.Text.Trim();
            if (rdbCorticoideMaterno.SelectedValue.Trim() == "0")
            {
                oSolicitud.CorticoidesMaterno = false;
            }
            else
            {
                oSolicitud.CorticoidesMaterno = true;
            }
            if (oRegistro.NumeroOrigen != "")
            {
                oSolicitud.IdSolicitudScreeningOrigen = int.Parse(oRegistro.NumeroOrigen);
            }
            else
            {
                oSolicitud.IdSolicitudScreeningOrigen = 0;
            }
            oSolicitud.IdProtocolo = oRegistro;

            if (txtNumeroTarjeta.Text != "")
            {
                oSolicitud.NumeroTarjeta = int.Parse(txtNumeroTarjeta.Text);
            }
            else
            {
                oSolicitud.NumeroTarjeta = 0;
            }
            oSolicitud.MedicoSolicitante = lblMedicoSolicitante.Text;
            oSolicitud.ApellidoMaterno   = txtApellidoMaterno.Text;
            oSolicitud.ApellidoPaterno   = oRegistro.IdPaciente.Apellido;// lblApellidoPaterno.Text;
            oSolicitud.NombreParentesco  = txtNombreParentesco.Text;
            if (txtDniMaterno.Text != "")
            {
                oSolicitud.NumerodocumentoParentesco = int.Parse(txtDniMaterno.Text);
            }
            else
            {
                oSolicitud.NumerodocumentoParentesco = 0;
            }

            if (txtFechaNacimientoParentesco.Value != "")
            {
                oSolicitud.FechaNacimientoParentesco = DateTime.Parse(txtFechaNacimientoParentesco.Value);
            }
            else
            {
                oSolicitud.FechaNacimientoParentesco = DateTime.Parse("01/01/1900");
            }
            oSolicitud.IdLugarControl = int.Parse(ddlLugarControl.SelectedValue);

            if (hfFechaRegistro.Value != "")
            {
                oSolicitud.FechaCargaOrigen = DateTime.Parse(hfFechaRegistro.Value);
            }
            else
            {
                oSolicitud.FechaCargaOrigen = oRegistro.FechaRegistro;
            }

            if (hfFechaEnvio.Value != "")
            {
                oSolicitud.FechaEnvioOrigen = DateTime.Parse(hfFechaEnvio.Value);
            }
            else
            {
                oSolicitud.FechaEnvioOrigen = oRegistro.FechaRegistro;
            }

            oSolicitud.Save();

            oSolicitud.GuardarParentesco();

            GuardarAlarmas(oSolicitud);
        }