コード例 #1
0
        static void Main(string[] args)
        {
            UserCollection users = new SubSonic.Select()
                                   .From(Tables.User)
                                   .Where(User.Columns.IsDeleted).IsEqualTo(1)
                                   .AndExpression(User.Columns.Email).Like("%\\_OLD%")
                                   .Or(User.Columns.Login).Like("%\\_OLD%")
                                   .CloseExpression()
                                   .ExecuteAsCollection <UserCollection>();

            foreach (User user in users)
            {
                string cleanEmail = GetClean(user.Email);
                string finalEmail = $"{cleanEmail}_{user.Id}_DELETED"; // [email protected]_176721_DELETED

                string cleanLogin = GetClean(user.Login);
                string finalLogin = $"{cleanLogin}_{user.Id}_DELETED"; // homan_176721_DELETED

                user.Email = finalEmail;
                user.Login = finalLogin;

                // user.Save(); - will uncomment this and run this Save() call if this script passes code review.
            }

            Console.Read();
        }
コード例 #2
0
        private void CargarCombos()
        {
            SubSonic.Select ef = new SubSonic.Select();
            ef.From(SysEfector.Schema);
            //ef.Where(SysEfector.Columns.IdZona).IsEqualTo(9);
            ef.OrderAsc("nombre");
            ddlEfector.DataSource = ef.ExecuteTypedList <SysEfector>();
            ddlEfector.DataBind();
            ddlEfector.Items.Insert(0, new ListItem("TODOS", "0"));

            SubSonic.Select e = new SubSonic.Select();
            e.From(SysEstado.Schema);
            List <SysEstado> estados = e.ExecuteTypedList <SysEstado>();

            ddlEstado.DataSource = estados;
            ddlEstado.DataBind();
            ddlEstado.Items.Insert(0, new ListItem("TODOS", "0"));

            SubSonic.Select s = new SubSonic.Select();
            s.From(SysSexo.Schema);
            List <SysSexo> sexos = s.ExecuteTypedList <SysSexo>();

            ddlSexo.DataSource = sexos;
            ddlSexo.DataBind();
            ddlSexo.Items.Insert(0, new ListItem("TODOS", "0"));
        }
コード例 #3
0
ファイル: cie10.aspx.cs プロジェクト: saludnqn/prosane
        protected void Page_Load(object sender, EventArgs e)
        {
            if (IsPostBack)
            {
                return;
            }
            string consulta = String.IsNullOrEmpty(Request.QueryString["term"]) ? "" : Request.QueryString["term"];


            string tipoBusqueda = Request["tipoBusqueda"].ToString();
            string stringFormat = "{0}%";

            if (tipoBusqueda == "1")///que comience con
            {
                stringFormat = "{0}%";
            }
            else /// que contenga
            {
                stringFormat = "%{0}%";
            }


            SysCIE10Collection oCie10s = new SubSonic.Select()
                                         .From(Schemas.SysCIE10)
                                         .Where(SysCIE10.Columns.Sinonimo).Like(String.Format(stringFormat, consulta.Replace('*', '%')))
                                         .Or(SysCIE10.Columns.Causa).Like(String.Format(stringFormat, consulta.Replace('*', '%')))
                                         .Or(SysCIE10.Columns.Codigo).Like(String.Format(stringFormat, consulta.Replace('*', '%')))
                                         //.Or(SysCIE10.Columns.DescripCap).Like(String.Format(stringFormat, consulta.Replace('*', '%')))
                                         //.And(SysCIE10.Columns.Cepsap).IsNotNull()
                                         .OrderAsc(SysCIE10.Columns.Sinonimo)

                                         .ExecuteAsCollection <SysCIE10Collection>();


            List <cie10helper> codigos = new List <cie10helper>();

            foreach (SysCIE10 oCie10 in oCie10s)
            {
                cie10helper cie = new cie10helper();
                cie.id       = oCie10.Id;
                cie.nombre   = oCie10.Sinonimo;
                cie.causa    = oCie10.Causa;
                cie.codigo   = oCie10.Codigo + " " + oCie10.Nombre;
                cie.capitulo = oCie10.DescripCap;

                codigos.Add(cie);
            }
            if (codigos.Count == 0)
            {
                codigos.Add(new cie10helper()
                {
                    id = -666, nombre = "No hay resultados", codigo = "", capitulo = ""
                });
            }
            Response.Clear();
            Response.Write(JSON.Instance.ToJSON(codigos));
            Response.Flush();
            Response.End();
        }
コード例 #4
0
ファイル: User.cs プロジェクト: johnval990/ISOA
        public static List<AplicationRole> GetRolesListByUser(int IdUser)
        {
            SubSonic.SqlQuery currentSelect = new SubSonic.Select()
                        .From(AplicationRole.Schema)
                        .InnerJoin(UserByRole.IdAplicationRoleColumn, AplicationRole.IdAplicationRoleColumn)
                        .Where(UserByRole.IdUserColumn).IsEqualTo(IdUser)
                        .OrderAsc(AplicationRole.Columns.Description);

            return currentSelect.ExecuteTypedList<AplicationRole>();
        }
コード例 #5
0
ファイル: User.cs プロジェクト: johnval990/ISOA
        public static List<Area> GetAreasListByUser(int IdUser)
        {
            SubSonic.SqlQuery currentSelect = new SubSonic.Select()
                        .From(Area.Schema)
                        .InnerJoin(UserByArea.IdAreaColumn, Area.IdAreaColumn)
                        .Where(UserByArea.IdUserColumn).IsEqualTo(IdUser)
                        .OrderAsc(Area.Columns.Description);

            return currentSelect.ExecuteTypedList<Area>();
        }
コード例 #6
0
ファイル: Profesion.aspx.cs プロジェクト: saludnqn/ris
        private void cargaProfesion()
        {
            SubSonic.Select b = new SubSonic.Select();
            b.From(RisProfesion.Schema);

            var listaProfesion = b.ExecuteTypedList <RisProfesion>();

            gdvProfesion.DataSource = listaProfesion;
            gdvProfesion.DataBind();
        }
コード例 #7
0
        private void cargaEntidades()
        {
            SubSonic.Select b = new SubSonic.Select();
            b.From(RisEntidad.Schema);

            var listaEstudios = b.ExecuteTypedList <RisEntidad>();

            gdvEntidades.DataSource = listaEstudios;
            gdvEntidades.DataBind();
        }
コード例 #8
0
        private void cargaComiteEtica()
        {
            SubSonic.Select b = new SubSonic.Select();
            b.From(RisComiteEtica.Schema);

            var listaComiteEtica = b.ExecuteTypedList <RisComiteEtica>();

            gdvComiteEtica.DataSource = listaComiteEtica;
            gdvComiteEtica.DataBind();
        }
コード例 #9
0
        private void cargaAreasTematicas()
        {
            SubSonic.Select b = new SubSonic.Select();
            b.From(RisAreaTematica.Schema);

            var listaAreasTematicas = b.ExecuteTypedList <RisAreaTematica>();

            gdvAreaTematica.DataSource = listaAreasTematicas;
            gdvAreaTematica.DataBind();
        }
コード例 #10
0
 private void frmDepartmentTestReport_Load(object sender, EventArgs e)
 {
     try
     {
         dtDepartment = new SubSonic.Select().From(LDepartment.Schema.Name).ExecuteDataSet().Tables[0];
         dtDoctor     = new SubSonic.Select().From(LUser.Schema.Name).ExecuteDataSet().Tables[0];
         cboReportType.SelectedIndex = 0;
     }
     catch (Exception ex)
     {
         Utility.ShowMsg(ex.Message);
         this.Dispose();
     }
 }
コード例 #11
0
ファイル: Cie10.asmx.cs プロジェクト: saludnqn/prosane
        public List <cie10> buscarCie10(string cadena)
        {
            List <cie10> oCodigos = new List <cie10>();

            SysCIE10Collection oColeccion = new SubSonic.Select().Top("10").From(SysCIE10.Schema.TableName)
                                            .Where(SysCIE10.Columns.Nombre).Like(cadena).ExecuteAsCollection <SysCIE10Collection>();

            foreach (SysCIE10 oCie10 in oColeccion)
            {
                cie10 temp = new cie10();
                temp.id     = oCie10.Id;
                temp.codigo = oCie10.Codigo;
                temp.nombre = oCie10.Nombre;
                oCodigos.Add(temp);
            }
            return(oCodigos);
        }
コード例 #12
0
        public void Select_PagedWithAggregate()
        {
            SubSonic.SqlQuery query = new SubSonic.Select(
                SubSonic.Aggregate.GroupBy(Product.Columns.CategoryID))
                                      .Paged(1, 3)
                                      .From(Product.Schema)
                                      .Where(Product.Columns.ProductID).IsGreaterThan(0);
            string exMsg = "";

            try {
                ProductCollection plist = query.ExecuteAsCollection <ProductCollection>();
            }
            catch (Exception ex) {
                exMsg = ex.Message;
            }
            Assert.IsTrue(!exMsg.Contains("syntax near the keyword 'WHERE'"), exMsg + "\r\n" + query.BuildSqlStatement());
        }
コード例 #13
0
        private void CargarPaciente(SysPaciente pac)
        {
            lblDoc.Text      = pac.NumeroDocumento.ToString();
            lblApellido.Text = pac.Apellido;
            lblNombres.Text  = pac.Nombre;
            lblFNac.Text     = pac.FechaNacimiento.ToShortDateString();
            lblSexo.Text     = pac.SysSexo.Nombre;
            lblContacto.Text = pac.InformacionContacto.ToString();
            SubSonic.Select q = new SubSonic.Select();
            q.From(SysRelHistoriaClinicaEfector.Schema);
            q.Where(SysRelHistoriaClinicaEfector.Columns.IdPaciente).IsEqualTo(pac.IdPaciente);
            q.And(SysRelHistoriaClinicaEfector.Columns.IdEfector).IsEqualTo(SSOHelper.CurrentIdentity.IdEfector);
            List <SysRelHistoriaClinicaEfector> lista = q.ExecuteTypedList <SysRelHistoriaClinicaEfector>();

            if (lista.Count > 0)
            {
                lblFecha.Text = lista[0].FechaRegistro.ToShortDateString();
                lbltHC.Text   = lista[0].HistoriaClinica.ToString();
            }
        }
コード例 #14
0
        // -----------------------------------------------------------------------------------------------------------

        private bool DatoValido(int idPaciente)
        {
            lblMensaje.Text = string.Empty;

            // Consulto en la tabla pacientes celíacos
            SubSonic.Select p = new SubSonic.Select();
            p.From(DalSic.SysPacienteCeliaco.Schema);
            p.Where(SysPacienteCeliaco.Columns.IdPaciente).IsEqualTo(idPaciente);

            DataTable dt = p.ExecuteDataSet().Tables[0];

            if (dt.Rows.Count > 0)
            {
                lblMensaje.Text = "El paciente se encuentra registrado como celíaco. <br/>";
                return(false);
            }
            else
            {
                return(true);
            }
        }
コード例 #15
0
ファイル: ObraSocial.aspx.cs プロジェクト: saludnqn/prosane
        protected void Page_Load(object sender, EventArgs e)
        {
            if (IsPostBack)
            {
                return;
            }
            string consulta = String.IsNullOrEmpty(Request.QueryString["term"]) ? "" : Request.QueryString["term"];

            SysObraSocialCollection oSociales = new SubSonic.Select().Top("10")
                                                .From(Schemas.SysObraSocial)
                                                .Where(SysObraSocial.Columns.Nombre)
                                                .Like(String.Format("%{0}%", consulta.Replace('*', '%')))
                                                .Or(SysObraSocial.Columns.Sigla).Like(String.Format("%{0}%", consulta.Replace('*', '%')))
                                                .Or(SysObraSocial.Columns.CodigoNacion).Like(String.Format("%{0}%", consulta.Replace('*', '%')))
                                                .ExecuteAsCollection <SysObraSocialCollection>();

            List <oshelper> lstOS = new List <oshelper>();

            foreach (SysObraSocial OS in oSociales)
            {
                oshelper osh = new oshelper();
                osh.id           = OS.IdObraSocial;
                osh.nombre       = OS.Nombre;
                osh.sigla        = OS.Sigla;
                osh.codigoNacion = OS.CodigoNacion;
                lstOS.Add(osh);
            }
            if (lstOS.Count == 0)
            {
                lstOS.Add(new oshelper()
                {
                    id = -666, nombre = "No hay resultados", sigla = "", codigoNacion = ""
                });
            }
            Response.Clear();
            Response.Write(JSON.Instance.ToJSON(lstOS));
            Response.Flush();
            Response.End();
        }
コード例 #16
0
ファイル: PacienteList.aspx.cs プロジェクト: saludnqn/prosane
        /// <summary>
        /// Sil el tipo de efector es un hospital se oculta la columna "Turno de 2do Nivel", ya que solo es posible sacar un turno de 2do nivel
        /// cuando es un Centro de Salud, Puesto Sanitario, etc.
        /// </summary>


        protected void btnBuscar_Click(object sender, EventArgs e)
        {
            SubSonic.Select s = new SubSonic.Select();
            s.From(SysPaciente.Schema);

            int nrodoc   = 0;
            int dniMadre = int.Parse(txtDniMadre.Text == "" ? "0" : txtDniMadre.Text);

            if ((txtDni.Text.Trim() == "") && (txtApellidoBusqueda.Text.Trim() == "") && (txtNombreBusqueda.Text.Trim() == "") && (txtNombreMadreBusqueda.Text.Trim() == "") && (txtApellidoMadreBusqueda.Text.Trim() == "") && (dniMadre.ToString().Trim() == ""))
            {
                lblMensajeBusqueda.Text = "Debe ingresar al menos un filtro de búsqueda";
            }
            else
            {
                /*if (dniMadre.ToString() == "") {
                 *  dniMadre = ;
                 * }*/

                //busqueda por documento
                if (txtDni.Text.Length > 0)
                {
                    nrodoc = Convert.ToInt32(txtDni.Text);

                    //llenado de la grilla
                    gvPacientes.DataSource = SPs.GetPacientesPorDocumento(nrodoc).GetDataSet();
                    gvPacientes.DataBind();

                    return;
                }

                //busqueda por fecha de nacimiento
                DateTime fnac;
                DateTime?fnac2 = null;

                gvPacientes.DataSource = SPs.GetPacientesPorNombres(fnac2, txtNombreBusqueda.Text.Trim(), txtApellidoBusqueda.Text.Trim(), dniMadre, txtNombreMadreBusqueda.Text.Trim(), txtApellidoMadreBusqueda.Text.Trim()).GetDataSet();
                gvPacientes.DataBind();
            }
        }
コード例 #17
0
        protected void btnBuscar_Click(object sender, EventArgs e)
        {
            SubSonic.Select s = new SubSonic.Select();
            s.From(SysPaciente.Schema);

            //busqueda por documento
            if (txtDni.Text.Length > 0)
            {
                int nrodoc = 0;
                nrodoc = Convert.ToInt32(txtDni.Text);

                gvPersonas.DataSource = DalPadron.SPs.ListarObraSocial(nrodoc).GetDataSet().Tables[0];
                gvPersonas.DataBind();

                gvPacientes.DataSource = SPs.GetPacientesPorDocumento(nrodoc).GetDataSet();
                gvPacientes.DataBind();

                return;
            }

            DateTime fnac;
            DateTime?fnac2 = null;

            if (DateTime.TryParse(txtFecNacBusqueda.Text, out fnac))
            {
                fnac2 = fnac;
            }
            //Busqueda por Nro Doc de la Madre
            int docM = 0;

            if (txtDniMadre.Text != "")
            {
                docM = Convert.ToInt32(txtDniMadre.Text);
            }

            gvPacientes.DataSource = SPs.GetPacientesPorNombres(fnac2, txtNombre.Text.Trim(), txtApellido.Text.Trim(), docM, txtNombreMadre.Text.Trim(), txtApellidoMadre.Text.Trim()).GetDataSet();
            gvPacientes.DataBind();
        }
コード例 #18
0
        private bool DatoValido(int idRel)
        {
            int idPac = Convert.ToInt32(hfidPac.Value);

            lblMensaje.Text = string.Empty;

            if (!string.IsNullOrEmpty(txtHC.Text))
            {
                int             nro = Convert.ToInt32(txtHC.Text);
                SubSonic.Select p   = new SubSonic.Select();
                p.From(SysRelHistoriaClinicaEfector.Schema);
                p.Where(SysRelHistoriaClinicaEfector.Columns.IdEfector).IsEqualTo(SSOHelper.CurrentIdentity.IdEfector);
                p.And(SysRelHistoriaClinicaEfector.Columns.HistoriaClinica).IsEqualTo(nro);
                p.And(SysRelHistoriaClinicaEfector.Columns.IdPaciente).IsNotEqualTo(idPac);
                p.And(SysRelHistoriaClinicaEfector.Columns.HistoriaClinica).IsNotEqualTo(0);
                DataTable dt = p.ExecuteDataSet().Tables[0];
                if (dt.Rows.Count > 0)
                {
                    lblMensaje.Text = "El Número de Historia Clínica ya existe en el Efector. <br/>";
                    return(false);
                }
            }
            else
            {
                lblMensaje.Text = "Debe ingresar un número válido de Historia Clínica.";
                return(false);
            }
            if (lblMensaje.Text == string.Empty)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
コード例 #19
0
 public void Acc_Exec_PagedWithAggregate()
 {
     SubSonic.SqlQuery query = new SubSonic.Select(
         SubSonic.Aggregate.GroupBy(Product.Columns.CategoryID))
         .Paged(1, 3)
         .From(Product.Schema)
         .Where(Product.Columns.ProductID).IsGreaterThan(0);
     string exMsg = "";
     try {
         ProductCollection plist = query.ExecuteAsCollection<ProductCollection>();
     }
     catch (Exception ex) {
         exMsg = ex.Message;
     }
     Assert.IsTrue(!exMsg.Contains("syntax near the keyword 'WHERE'"), exMsg + "\r\n" + query.BuildSqlStatement());
 }
コード例 #20
0
 private void frmDepartmentTestReport_Load(object sender, EventArgs e)
 {
     try
     {
         dtDepartment = new SubSonic.Select().From(LDepartment.Schema.Name).ExecuteDataSet().Tables[0];
         dtDoctor = new SubSonic.Select().From(LUser.Schema.Name).ExecuteDataSet().Tables[0];
         cboReportType.SelectedIndex = 0;
     }
     catch (Exception ex)
     {
         Utility.ShowMsg(ex.Message);
         this.Dispose();
     }
 }
コード例 #21
0
        // -----------------------------------------------------------------------------------------------------------

        private bool hayError()
        {
            bool hayError = false;

            lblMensaje.Text      = "";
            TablaErrores.Visible = false;

            // ------------------------------------------------------------------------
            // Verifico que el año no sea vacío
            // ------------------------------------------------------------------------

            if (txtAnio.Text == "")
            {
                lblMensaje.Text     += "El Año no puede ser vacío. <br/>";
                hayError             = true;
                TablaErrores.Visible = true;
            }

            // ------------------------------------------------------------------------
            // Verifico que no exista el nro. de Matrícula en otro registro en la base.
            // ------------------------------------------------------------------------
            if (txtMatricula.Text != "")
            {
                SubSonic.Select pMatricula = new SubSonic.Select();
                pMatricula.From(AutVehiculo.Schema);
                pMatricula.Where(AutVehiculo.Columns.Matricula).IsEqualTo(txtMatricula.Text);

                DataTable dtMatricula = pMatricula.ExecuteDataSet().Tables[0];

                if ((Request["idVehiculo"] == null) && (dtMatricula.Rows.Count > 0))
                {
                    lblMensaje.Text     += "El Número de Matrícula ya esta asignado a un vehículo. <br/>";
                    hayError             = true;
                    TablaErrores.Visible = true;
                }
            }

            // --------------------------------------------------------------
            // Verifico que no exista el Dominio en otro registro en la base.
            // --------------------------------------------------------------
            if (txtDominio.Text != "")
            {
                SubSonic.Select pDominio = new SubSonic.Select();
                pDominio.From(AutVehiculo.Schema);
                pDominio.Where(AutVehiculo.Columns.Dominio).IsEqualTo(txtDominio.Text);

                DataTable dtDominio = pDominio.ExecuteDataSet().Tables[0];

                if ((Request["idVehiculo"] == null) && (dtDominio.Rows.Count > 0))
                {
                    lblMensaje.Text     += "El Dominio ya esta asignado a un vehículo. <br/>";
                    hayError             = true;
                    TablaErrores.Visible = true;
                }
            }
            else
            {
                lblMensaje.Text     += "El Dominio no puede ser vacío. <br/>";
                hayError             = true;
                TablaErrores.Visible = true;
            }

            // ----------------------------------------------------------------
            // Fecha del odómetro
            // ----------------------------------------------------------------
            if (Request["idVehiculo"] == null) // Nuevo Vehículo
            {
                if (inputFechaLecturaOdometro.Value == "")
                {
                    lblMensaje.Text     += "El campo 'Fecha de la última lectura' del odómetro no puede ser vacío. <br/>";
                    hayError             = true;
                    TablaErrores.Visible = true;
                }
            }

            // ----------------------------------------------------------------
            // Verifico que el Nro. de Motor y el Nro. de Chasis no sean vacíos
            // ----------------------------------------------------------------
            if (txtNumeroMotor.Text == "")
            {
                lblMensaje.Text     += "El campo 'Nro. de Motor' no puede ser vacío. <br/>";
                hayError             = true;
                TablaErrores.Visible = true;
            }

            if (txtNumeroChasis.Text == "")
            {
                lblMensaje.Text     += "El campo 'Nro. de Chasis' no puede ser vacío. <br/>";
                hayError             = true;
                TablaErrores.Visible = true;
            }

            // Respondo ...
            return(hayError);
        }
コード例 #22
0
        public void HabilitarBotonesConsulta(SysPaciente p, int idturno)
        {
            HfidPaciente.Value = p.IdPaciente.ToString();
            HfDNI.Value        = p.NumeroDocumento.ToString();
            HfidEfector.Value  = SSOHelper.CurrentIdentity.IdEfector.ToString();
            HfidTurno.Value    = idturno.ToString();

            string strIdHospital = SSOHelper.Configuration["idHospital"] as string;

            if (strIdHospital != "0")
            {
                BtnLabo.Visible = false; BtnVerInter.Visible = false; BtnNvaInter.Visible = false; BtnEventos.Visible = false; BtnControl.Visible = false;
                ////////////////77
                BtnEventosHospital.Visible = true;
                BtnLaboHospital.Visible    = true;
                BtnPedidoPAP.Visible       = false;
            }
            else
            {
                //consultar si tiene algun laboratorio, habilitar para ingresar
                BtnLaboHospital.Visible = false;

                LabResultadoEncabezado conLab = new SubSonic.Select()
                                                .From(Schemas.LabResultadoEncabezado)
                                                .Where(LabResultadoEncabezado.Columns.NumeroDocumento).IsEqualTo(p.NumeroDocumento)
                                                .ExecuteSingle <LabResultadoEncabezado>();
                if (conLab != null)
                {
                    BtnLabo.Visible = true;
                }
                else
                {
                    BtnLabo.Visible = false;
                }

                //consultar si tiene alguna interconsulta, habilitar para ingresa
                //IcoInterconsultum conInterconsulta = new SubSonic.Select()
                //      .From(Schemas.IcoInterconsultum)
                //        .Where(IcoInterconsultum.Columns.IdPaciente).IsEqualTo(p.IdPaciente)
                //          .ExecuteSingle<IcoInterconsultum>();
                //if (conInterconsulta != null)
                //    BtnVerInter.Visible = true;
                //else
                //    BtnVerInter.Visible = false;

                DataTable dtInterconsultas = new DataTable();
                dtInterconsultas = SPs.IcoVerificarSiTieneInterconsultas(p.IdPaciente).GetDataSet().Tables[0];

                if (dtInterconsultas.Rows.Count != 0)
                {
                    BtnVerInter.Visible = true;
                }
                else
                {
                    BtnVerInter.Visible = false;
                }

                //Habilito las consultas a los demas modulos
                //Si es femenino podra ingresar al modulo del control perinatal
                if (p.IdSexo == 2) //Femenino
                {
                    BtnControl.Visible = true;
                    BtnMamas.Visible   = true;
                    ///pongo visible Pedido de PAP y HPV solo para nivel central
                    DateDifference oEdad = new DateDifference(p.FechaNacimiento, DateTime.Now);
                    if ((oEdad.Years > 30) && (oEdad.Years < 64))
                    {
                        BtnPedidoPAP.Visible = true;
                    }
                }

                else
                {
                    BtnControl.Visible = false;
                    BtnMamas.Visible   = false;
                }
            }

            if ((!BtnPedidoPAP.Visible) && (!BtnMamas.Visible))
            {
                pnlPrestaciones.Visible = false;
            }
            /// Pacientes para VGI
            DateDifference oEdadGeriatrico = new DateDifference(p.FechaNacimiento, DateTime.Now);

            if (oEdadGeriatrico.Years > 60) // definir la edad de pacientes geriatricos para VGI.
            {
                BtnNuevoVGI.Visible = true;
            }
            else
            {
                BtnNuevoVGI.Visible = false;
            }
            ////
        }