protected void imgActualizarExamen_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                panelMensaje.CssClass = "OcultarMensaje";

                ImageButton _link = sender as ImageButton;
                int Id = int.Parse(_link.CommandArgument);
                panelExamenListar.Visible = false;
                panelExamenAgregar.Visible = false;
                panelExamenActualizar.Visible = true;

                MostrarTipoPrestaciones();
                var examen = new TrxEXAMEN();
                var objExamen = examen.GetByIdWithReferences(Id);
                hdnExamenActuaizarId.Value = objExamen.ID.ToString();
                txtExamenActualizarNombre.Text = objExamen.NOMBRE;
                txtExamenActualizarCodigo.Text = objExamen.CODIGO;
                selExamenActualizarTipoPrestacion.SelectedValue = objExamen.TIPO_PRESTACION.ID.ToString();

                var examen_sinonimo = new TrxEXAMEN_SINONIMO();
                var objexamen_sinonimo = examen_sinonimo.GetByFilter(Id,"");
                gridActualizarSinonimoExamen.DataSource = objexamen_sinonimo;
                gridActualizarSinonimoExamen.DataBind();

            }
            catch (Exception ex)
            {
                ISException.RegisterExcepcion(ex);
                panelMensaje.CssClass = "MostrarMensaje";
                lblMensaje.Text = ex.Message;
                return;
            }
        }
        protected void btnExamenAgregarGuardar_Click(object sender, EventArgs e)
        {
            try
            {
                TrxEXAMEN _examen = new TrxEXAMEN();
                TrxEXAMEN_SINONIMO _sinonimoExamen = new TrxEXAMEN_SINONIMO();

                string NombreExamen = txtExamenAgregarNombre.Text;
                string CodigoExamen = txtExamenAgregarCodigo.Text;
                int TipoPrestacionExamen = int.Parse(selExamenAgregaTipoPrestacion.SelectedValue);

                /*Agrega examen*/
                var ingresoExamen = _examen.Add(TipoPrestacionExamen, CodigoExamen, NombreExamen);

                /*Guardar los sinonimos del examen desde la grilla*/
                foreach (GridViewRow grilla in gridAgregarSinonimoExamen.Rows)
                {
                    if (grilla.RowType == DataControlRowType.DataRow)
                    {
                        //TextBox txtNombreAgregaSinonimo = (TextBox)grilla.FindControl("txtNombreAgregaSinonimo");
                        Label lblNombreAgregaSinonimo = (Label)grilla.FindControl("lblNombreAgregaSinonimo");

                        _sinonimoExamen.Add(ingresoExamen, lblNombreAgregaSinonimo.Text);

                        txtExamenAgregarNombre.Text = string.Empty;
                        txtExamenAgregarCodigo.Text = string.Empty;
                        selExamenAgregaTipoPrestacion.SelectedIndex = 0;
                        txtExamenAgregarIngresaSinonimo.Text = string.Empty;
                    }
                }

            }
            catch (Exception ex)
            {
                ISException.RegisterExcepcion(ex);
                panelMensaje.CssClass = "MostrarMensaje";
                lblMensaje.Text = ex.Message;
                return;
            }
        }
        private void ViewGrilla()
        {
            try
            {
                Limpiar();
                MostrarRegiones();
                MostrarEspecies();
                MostrarTipoPrestaciones();
                switch (ddlTablas.SelectedValue)
                {
                    case "1":
                        panelComuna.Visible = true;
                        panelComunaListar.Visible = true;
                        panelComunaAgregar.Visible = false;
                        panelComunaActualizar.Visible = false;

                        var comuna = new TrxCOMUNA();
                        gridComunas.DataSource = comuna.GetAllWithReferences();
                        gridComunas.DataBind();
                        break;
                    case "2":
                        panelExamen.Visible = true;
                        panelExamenListar.Visible = true;
                        panelExamenAgregar.Visible = false;
                        panelExamenActualizar.Visible = false;

                        var examen = new TrxEXAMEN();
                        List<EXAMEN> _listaExamen = examen.GetAllWithReferences();
                        List<DTOExamen> lista = new List<DTOExamen>();
                        //gridExamen.DataSource = _listaExamen;
                        //gridExamen.DataBind();
                        foreach (var lis in _listaExamen)
                        {
                            DTOExamen _dtoExamen = new DTOExamen();
                            _dtoExamen.ID = lis.ID;
                            _dtoExamen.NOMBRE_EXAMEN = lis.NOMBRE;
                            _dtoExamen.CODIGO = lis.CODIGO;
                            _dtoExamen.TIPO_PRESTACION = lis.TIPO_PRESTACION.NOMBRE;
                            lista.Add(_dtoExamen);

                        }
                        gridExamen.DataSource = lista;
                        gridExamen.DataBind();

                        break;
                    case "3":
                        panelEspecie.Visible = true;
                        panelEspecieListar.Visible = true;
                        panelEspecieAgregar.Visible = false;
                        panelEspecieActualizar.Visible = false;

                        var Especie = new TrxESPECIE();
                        gridEspecies.DataSource = Especie.GetAllWithReferences();
                        gridEspecies.DataBind();
                        break;
                    case "7":
                        panelGarantia.Visible = true;
                        panelGarantiaListar.Visible = true;
                        panelGarantiaAgregar.Visible = false;
                        panelGarantiaActualizar.Visible = false;

                        var Garantia = new TrxGARANTIA();
                        gridGarantia.DataSource = Garantia.GetAllWithReferences();
                        gridGarantia.DataBind();
                        break;
                    case "8":
                        panelPrevision.Visible = true;
                        panelPrevisionListar.Visible = true;
                        panelPrevisionAgregar.Visible = false;
                        panelPrevisionActualizar.Visible = false;

                        var Prevision = new TrxPREVISION();
                        gridPrevision.DataSource = Prevision.GetAllWithReferences();
                        gridPrevision.DataBind();
                        break;
                    case "9":
                        panelRaza.Visible = true;
                        panelRazaListar.Visible = true;
                        panelRazaAgregar.Visible = false;
                        panelRazaActualizar.Visible = false;

                        var Raza = new TrxRAZA();
                        gridRazas.DataSource = Raza.GetAllWithReferences();
                        gridRazas.DataBind();
                        break;
                    case "10":
                        panelRegion.Visible = true;
                        panelRegionListar.Visible = true;
                        panelRegionAgregar.Visible = false;
                        panelRegionActualizar.Visible = false;

                        var Region = new TrxREGION();
                        gridRegiones.DataSource = Region.GetAll();
                        gridRegiones.DataBind();
                        break;
                    case "11":
                        panelTipoCobro.Visible = true;
                        panelTipoCobroListar.Visible = true;
                        panelTipoCobroAgregar.Visible = false;
                        panelTipoCobroActualizar.Visible = false;

                        var TipoCobro = new TrxTIPO_COBRO();
                        gridTiposCobro.DataSource = TipoCobro.GetAll();
                        gridTiposCobro.DataBind();
                        break;
                }
            }
            catch (Exception ex)
            {
                ISException.RegisterExcepcion(ex);
                panelMensaje.CssClass = "MostrarMensaje";
                lblMensaje.Text = ex.Message;
                return;
            }
        }
        protected void btnExamenActualizarGuardar_Click(object sender, EventArgs e)
        {
            try
            {
                TrxEXAMEN _examen = new TrxEXAMEN();
                TrxEXAMEN_SINONIMO _sinonimoExamen = new TrxEXAMEN_SINONIMO();

                int IdExamen = int.Parse(hdnExamenActuaizarId.Value);
                string NombreExamen = txtExamenActualizarNombre.Text;
                string CodigoExamen = txtExamenActualizarCodigo.Text;
                int TipoPrestacionExamen = int.Parse(selExamenActualizarTipoPrestacion.SelectedValue);

                /*Guardar los sinonimos del examen desde la grilla*/
                foreach (GridViewRow grilla in gridActualizarSinonimoExamen.Rows)
                {
                    if (grilla.RowType == DataControlRowType.DataRow)
                    {
                        string IdSinonimo = gridActualizarSinonimoExamen.DataKeyNames[int.Parse("ID")];
                        TextBox txtNombre = (TextBox)grilla.FindControl("txtNombre");

                        _sinonimoExamen.Update(int.Parse(IdSinonimo), IdExamen, txtNombre.Text);
                    }
                }

                /*Actualiza examen*/
                _examen.Update(IdExamen,TipoPrestacionExamen,CodigoExamen,NombreExamen);
            }
            catch (Exception ex)
            {
                ISException.RegisterExcepcion(ex);
                panelMensaje.CssClass = "MostrarMensaje";
                lblMensaje.Text = ex.Message;
                return;
            }
        }
        protected void imgEliminarExamen_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                panelMensaje.CssClass = "OcultarMensaje";
                ImageButton _link = sender as ImageButton;
                int Id = int.Parse(_link.CommandArgument);

                var examen_sinonimo = new TrxEXAMEN_SINONIMO();
                var objExamen_sinonimo = examen_sinonimo.GetByFilter(Id,"");
                foreach (var lis in objExamen_sinonimo)
                {
                    examen_sinonimo.Delete(lis.ID);
                }

                var examen = new TrxEXAMEN();
                examen.Delete(Id);
                ViewGrilla();
            }
            catch (Exception ex)
            {
                ISException.RegisterExcepcion(ex);
                panelMensaje.CssClass = "MostrarMensaje";
                lblMensaje.Text = ex.Message;
                return;
            }
        }