Exemple #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="profesional"></param>
        public static void Update(ProfesionalBE profesional)
        {
            using (Health.Back.BE.HealthEntities dc = new Health.Back.BE.HealthEntities(Common.CnnString_Entities))
            {
                Health.Back.BE.Profesional wProfesional = dc.Profesionals.Where(p => p.IdProfesional.Equals(profesional.IdProfesional)).FirstOrDefault <Health.Back.BE.Profesional>();

                wProfesional.Persona.Apellido        = profesional.Persona.Apellido;
                wProfesional.Persona.Nombre          = profesional.Persona.Nombre;
                wProfesional.Persona.NroDocumento    = profesional.Persona.NroDocumento;
                wProfesional.Persona.TipoDocumento   = profesional.Persona.TipoDocumento;
                wProfesional.Persona.IdEstadocivil   = profesional.Persona.IdEstadocivil;
                wProfesional.Persona.FechaNacimiento = profesional.Persona.FechaNacimiento;
                wProfesional.Persona.Sexo            = profesional.Persona.Sexo;

                wProfesional.Persona.Street       = profesional.Persona.Street;
                wProfesional.Persona.StreetNumber = profesional.Persona.StreetNumber;
                wProfesional.Persona.Floor        = profesional.Persona.Floor;
                wProfesional.Persona.CountryId    = profesional.Persona.CountryId;
                wProfesional.Persona.ProvinceId   = profesional.Persona.ProvinceId;
                wProfesional.Persona.CityId       = profesional.Persona.CityId;
                wProfesional.Persona.Neighborhood = profesional.Persona.Neighborhood;
                wProfesional.Persona.mail         = profesional.Persona.mail;
                wProfesional.Persona.Telefono1    = profesional.Persona.Telefono1;
                wProfesional.Persona.Telefono2    = profesional.Persona.Telefono2;
                wProfesional.Persona.Foto         = profesional.Persona.Foto;
                wProfesional.Matricula            = profesional.Matricula;

                wProfesional.LastAccessTime           = System.DateTime.Now;
                wProfesional.LastAccessUserId         = profesional.LastAccessUserId;
                wProfesional.Persona.LastAccessTime   = wProfesional.LastAccessTime.Value;
                wProfesional.Persona.LastAccessUserId = profesional.LastAccessUserId.Value;
                dc.SaveChanges();
            }
        }
        public frm_Profesional_Shifts(ProfesionalBE profesional)
        {
            InitializeComponent();
            this.profesional = profesional;

        
        
        }
Exemple #3
0
        private void gridView2_DoubleClick(object sender, EventArgs e)
        {
            //Esta siendo consultado por un medico
            //if (profesional.IdProfesional != null && profesional.IdProfesion.Value.Equals((int)RubroProfesionalEnum.Medico))
            //{
            //    if (SelectedAppointment.Status == (int)AppoimantsStatus_SP.Reservado)
            //    {
            //        //Actualizar el estado a En atencion
            //        UpdateStatus(AppoimantsStatus_SP.EnAtencion);
            //    }
            //}
            //else
            //{
            if (SelectedAppointment == null)
            {
                return;
            }
            ///Ver - consultar
            using (frmShiftAppointment frm = new frmShiftAppointment())
            {
                frm.State = Fwk.Bases.EntityUpdateEnum.NONE;

                //Este caso se presenta cuando la consulta no es por medio del mismo profesional
                //sino de una secretaria que ve turnos de varios
                //profesionales
                frm.Profesional = new Profesional_FullViewBE();

                frm.AceptCancelButtonBar_Visible = false;
                if (this.profesional == null)
                {
                    //Busco el profesional
                    this.profesional = ServiceCalls.GetProfesional(SelectedAppointment.ResourceId, false, false, false).BusinessData.profesional;
                    //Relleno frm.profesional con info minima
                    frm.Profesional.Nombre             = this.profesional.Persona.Nombre;
                    frm.Profesional.Apellido           = this.profesional.Persona.Apellido;
                    frm.Profesional.IdEspecialidad     = this.profesional.IdEspecialidad;
                    frm.Profesional.NombreEspecialidad = this.profesional.NombreEspecialidad;
                    frm.Profesional.IdProfesion        = this.profesional.IdProfesion;
                }
                else
                {
                    frm.Profesional.Nombre             = this.profesional.Persona.Nombre;
                    frm.Profesional.Apellido           = this.profesional.Persona.Apellido;
                    frm.Profesional.IdEspecialidad     = this.profesional.IdEspecialidad;
                    frm.Profesional.NombreEspecialidad = this.profesional.NombreEspecialidad;
                    frm.Profesional.IdProfesion        = this.profesional.IdProfesion;
                }


                frm.currentApt = SelectedAppointment;
                frm.Refresh();
                frm.ShowDialog();
            }
            //}
        }
Exemple #4
0
        public static ProfesionalBE GetByUserGuid(Guid userGuid)
        {
            ProfesionalBE wProfesional = null;

            using (Health.Back.BE.HealthEntities dc = new Health.Back.BE.HealthEntities(Common.CnnString_Entities))
            {
                var x = dc.Profesional_FullView.Where(p => p.UserId.Value.Equals(userGuid)).FirstOrDefault();
                if (x != null)
                {
                    wProfesional         = new ProfesionalBE();
                    wProfesional.Persona = new PersonaBE();

                    wProfesional.IdEspecialidad        = x.IdEspecialidad;
                    wProfesional.Persona.IdEstadocivil = x.IdEstadocivil;
                    wProfesional.Matricula             = x.Matricula;
                    wProfesional.IdProfesional         = x.IdProfesional;
                    wProfesional.IdProfesion           = x.IdProfesion;
                    //wProfesional.NombreProfecion = x.NombreProfecion;

                    wProfesional.Persona.Apellido        = x.Apellido;
                    wProfesional.Persona.Nombre          = x.Nombre;
                    wProfesional.Persona.Sexo            = x.Sexo;
                    wProfesional.Persona.FechaAlta       = x.FechaAlta.Value;
                    wProfesional.Persona.UserId          = x.UserId;
                    wProfesional.Persona.FechaNacimiento = x.FechaNacimiento;
                    wProfesional.Persona.NroDocumento    = x.NroDocumento;
                    wProfesional.Persona.TipoDocumento   = x.TipoDocumento;
                    wProfesional.UserName = x.UserName;

                    wProfesional.NombreEspecialidad   = x.NombreEspecialidad;
                    wProfesional.Persona.Street       = x.Street;
                    wProfesional.Persona.StreetNumber = x.StreetNumber;
                    wProfesional.Persona.Floor        = x.Floor;
                    wProfesional.Persona.CountryId    = x.CountryId;
                    wProfesional.Persona.ProvinceId   = x.ProvinceId;
                    wProfesional.Persona.CityId       = x.CityId;
                    wProfesional.Persona.Neighborhood = x.Neighborhood;
                    wProfesional.Persona.mail         = x.mail;
                    wProfesional.Persona.Telefono1    = x.Telefono1;
                    wProfesional.Persona.Telefono2    = x.Telefono2;
                    wProfesional.Persona.Foto         = x.Foto;


                    wProfesional.FechaAlta = x.FechaAlta;
                }
            }
            return(wProfesional);
        }
Exemple #5
0
        /// <summary>
        /// Asocia un profesional a una persona existente
        /// </summary>
        /// <param name="profesionalBE"></param>
        public static void Asociar(ProfesionalBE profesionalBE)
        {
            using (Health.Back.BE.HealthEntities dc = new Health.Back.BE.HealthEntities(Common.CnnString_Entities))
            {
                Health.Back.BE.Profesional profesional = new Health.Back.BE.Profesional();
                profesional.IdPersona = profesionalBE.IdPersona;

                profesional.FechaAlta        = System.DateTime.Now;
                profesional.Matricula        = profesionalBE.Matricula;
                profesional.IdEspecialidad   = profesionalBE.IdEspecialidad;
                profesional.LastAccessTime   = profesional.FechaAlta;
                profesional.LastAccessUserId = profesionalBE.LastAccessUserId;

                dc.Profesionals.AddObject(profesional);
                dc.SaveChanges();
            }
        }
Exemple #6
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="profesional">ProfesionalBE</param>
        /// <param name="userName">Nombre de usuario para inicio de sesión al sistema</param>
        /// <returns></returns>
        public static int CrearProfesional(ProfesionalBE profesional, Fwk.Security.Common.User user)
        {
            CrearProfesionalReq req = new CrearProfesionalReq();

            req.BusinessData.profesional  = profesional;
            req.BusinessData.User         = user;
            req.ContextInformation.UserId = frmBase_TabForm.IndentityUserInfo.ProviderId.ToString();
            req.ContextInformation.AppId  = Controller.CurrentHealthInstitution.HealthInstitutionId.ToString();

            CrearProfesionalRes res = req.ExecuteService <CrearProfesionalReq, CrearProfesionalRes>(req);

            if (res.Error != null)
            {
                throw Fwk.Exceptions.ExceptionHelper.ProcessException(res.Error);
            }
            return(res.BusinessData.IdProfesional);
        }
Exemple #7
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="profesional"></param>
        /// <param name="user"></param>
        public static void UpdateProfesional(ProfesionalBE profesional, Fwk.Security.Common.User user, Guid?healthInstitutionId)
        {
            UpdateProfesionalReq req = new UpdateProfesionalReq();

            req.BusinessData.profesional         = profesional;
            req.BusinessData.User                = user;
            req.BusinessData.HealthInstitutionId = healthInstitutionId;
            req.ContextInformation.UserId        = frmBase_TabForm.IndentityUserInfo.ProviderId.ToString();

            req.ContextInformation.AppId = Controller.CurrentHealthInstitution.HealthInstitutionId.ToString();

            UpdateProfesionalRes res = req.ExecuteService <UpdateProfesionalReq, UpdateProfesionalRes>(req);

            if (res.Error != null)
            {
                throw Fwk.Exceptions.ExceptionHelper.ProcessException(res.Error);
            }
            //return res.BusinessData.IdPersona;
        }
Exemple #8
0
        /// <summary>
        /// Crea un profesional y clase persona
        /// </summary>
        /// <param name="profesionalBE"></param>
        public static void Create(ProfesionalBE profesionalBE)
        {
            PersonasDAC.Create(profesionalBE.Persona);
            using (Health.Back.BE.HealthEntities dc = new Health.Back.BE.HealthEntities(Common.CnnString_Entities))
            {
                Health.Back.BE.Profesional p = new Health.Back.BE.Profesional();

                p.IdPersona = profesionalBE.Persona.IdPersona;

                p.FechaAlta        = profesionalBE.Persona.FechaAlta;
                p.Matricula        = profesionalBE.Matricula;
                p.IdEspecialidad   = profesionalBE.IdEspecialidad;
                p.IdProfesion      = profesionalBE.IdProfesion;
                p.LastAccessTime   = p.FechaAlta;
                p.LastAccessUserId = profesionalBE.LastAccessUserId;

                dc.Profesionals.AddObject(p);
                dc.SaveChanges();

                profesionalBE.IdProfesional = p.IdProfesional;
                profesionalBE.IdPersona     = p.IdPersona;
            }
        }
        /// <summary>
        /// Se produce despues de Load (uc_Profesionales_Card_Load) y 
        /// Antes del load del formujlario
        /// </summary>
        /// <param name="idProfesional"></param>
        /// <param name="state"></param>
        internal void Populate(int idProfesional, EntityUpdateEnum state)
        {
            //El prof puede modificar sus propios datos
            if (idProfesional.Equals(ServiceCalls.CurrentProfesional.IdProfesional))
            {
                uc_MedioContacto1.Enabled = panelControl2.Enabled = uc_Persona1.Enabled = true;
            }

            this.State = state;
            if (State == Fwk.Bases.EntityUpdateEnum.NEW)
            {
                profesionalBE = new ProfesionalBE();
                profesionalBE.Persona = new PersonaBE();
                this.lblTitle.Text = "Alta de profesional";
            }

            if (State == Fwk.Bases.EntityUpdateEnum.UPDATED || State == Fwk.Bases.EntityUpdateEnum.NONE)
            {
                btnCheckUserName.Enabled = false;
                txtUsername.Properties.ReadOnly = true;
                GetProfesionalRes res = ServiceCalls.GetProfesional(idProfesional, true, true,false,null,ServiceCalls.CurrentHealthInstitution.HealthInstitutionId);

                profesionalBE = res.BusinessData.profesional;
                resourceSchedulingList = res.BusinessData.ResourceSchedulerList;
                profesionalRolList = res.BusinessData.User.Roles;
                
                this.lblTitle.Text = String.Concat("Targeta del profesional", "  ", profesionalBE.Persona.ApellidoNombre);
            }

            uc_Persona1.Populate(profesionalBE.Persona, State);
            txtUsername.Text = profesionalBE.UserName;
            txtMatricula.Text = profesionalBE.Matricula;
            schedulerShiftBindingSource.DataSource = resourceSchedulingList;
            gridView1.RefreshData();


            //cmbEspecialidad.Properties.DataSource = _EspecialidadList.Where(p => p.IdParametroRef.Equals(profesionalBE.IdProfesion));

            int index = 0;
            index = cmbEspecialidad.Properties.GetDataSourceRowIndex("IdParametro", (int)CommonValuesEnum.Ninguno);
            if (State == Fwk.Bases.EntityUpdateEnum.NEW)
            {
                cmbEspecialidad.ItemIndex = index;
                cmbProfecion.ItemIndex = 0;
            }
            else
            {
                if (profesionalBE.IdEspecialidad.HasValue)
                {
                    index = cmbEspecialidad.Properties.GetDataSourceRowIndex("IdParametro", profesionalBE.IdEspecialidad);
                }
                cmbEspecialidad.ItemIndex = index;
                
                index = cmbProfecion.Properties.GetDataSourceRowIndex("IdParametro", profesionalBE.IdProfesion);
                cmbProfecion.ItemIndex = index;
            }

            cmbEspecialidad.Refresh();
            cmbProfecion.Refresh();

            MachRolesGrid(profesionalRolList);



            uc_MedioContacto1.Persona = profesionalBE.Persona;
            uc_Persona1.Refresh();
            uc_MedioContacto1.Init();
            this.cmbProfecion.EditValueChanged += new System.EventHandler(this.cmbProfecion_EditValueChanged);
        }
Exemple #10
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="profesional"></param>
        /// <param name="user"></param>
        public static void UpdateProfesional(ProfesionalBE profesional, Fwk.Security.Common.User user ,Guid? healthInstitutionId)
        {
            UpdateProfesionalReq req = new UpdateProfesionalReq();

            req.BusinessData.profesional = profesional;
            req.BusinessData.User = user;
            req.BusinessData.HealthInstitutionId = healthInstitutionId;
            req.ContextInformation.UserId = frmBase_TabForm.IndentityUserInfo.ProviderId.ToString();

            req.ContextInformation.AppId = Controller.CurrentHealthInstitution.HealthInstitutionId.ToString();

            UpdateProfesionalRes res = req.ExecuteService<UpdateProfesionalReq, UpdateProfesionalRes>(req);

            if (res.Error != null)
                throw Fwk.Exceptions.ExceptionHelper.ProcessException(res.Error);
            //return res.BusinessData.IdPersona;
        }
Exemple #11
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="profesional">ProfesionalBE</param>
        /// <param name="userName">Nombre de usuario para inicio de sesión al sistema</param>
        /// <returns></returns>
        public static int CrearProfesional(ProfesionalBE profesional, Fwk.Security.Common.User user)
        {
            CrearProfesionalReq req = new CrearProfesionalReq();

            req.BusinessData.profesional = profesional;
            req.BusinessData.User = user;
            req.ContextInformation.UserId = frmBase_TabForm.IndentityUserInfo.ProviderId.ToString();
            req.ContextInformation.AppId = Controller.CurrentHealthInstitution.HealthInstitutionId.ToString();

            CrearProfesionalRes res = req.ExecuteService<CrearProfesionalReq, CrearProfesionalRes>(req);

            if (res.Error != null)
                throw Fwk.Exceptions.ExceptionHelper.ProcessException(res.Error);
            return res.BusinessData.IdProfesional;
        }
        private void gridView2_DoubleClick(object sender, EventArgs e)
        {
            //Esta siendo consultado por un medico
            //if (profesional.IdProfesional != null && profesional.IdProfesion.Value.Equals((int)RubroProfesionalEnum.Medico))
            //{
            //    if (SelectedAppointment.Status == (int)AppoimantsStatus_SP.Reservado)
            //    {
            //        //Actualizar el estado a En atencion
            //        UpdateStatus(AppoimantsStatus_SP.EnAtencion);
            //    }
            //}
            //else
            //{
            if (SelectedAppointment == null) return;
            ///Ver - consultar
            using (frmShiftAppointment frm = new frmShiftAppointment())
            {
                frm.State = Fwk.Bases.EntityUpdateEnum.NONE;
               
                //Este caso se presenta cuando la consulta no es por medio del mismo profesional 
                //sino de una secretaria que ve turnos de varios 
                //profesionales
                frm.Profesional = new Profesional_FullViewBE();

                frm.AceptCancelButtonBar_Visible = false;
                if (this.profesional == null)
                {

                    //Busco el profesional
                    this.profesional = ServiceCalls.GetProfesional(SelectedAppointment.ResourceId, false, false,false).BusinessData.profesional;
                    //Relleno frm.profesional con info minima
                    frm.Profesional.Nombre = this.profesional.Persona.Nombre;
                    frm.Profesional.Apellido = this.profesional.Persona.Apellido;
                    frm.Profesional.IdEspecialidad = this.profesional.IdEspecialidad;
                    frm.Profesional.NombreEspecialidad = this.profesional.NombreEspecialidad;
                    frm.Profesional.IdProfesion = this.profesional.IdProfesion;


                }
                else
                {
                    frm.Profesional.Nombre = this.profesional.Persona.Nombre;
                    frm.Profesional.Apellido = this.profesional.Persona.Apellido;
                    frm.Profesional.IdEspecialidad = this.profesional.IdEspecialidad;
                    frm.Profesional.NombreEspecialidad = this.profesional.NombreEspecialidad;
                    frm.Profesional.IdProfesion = this.profesional.IdProfesion;
                }


                frm.currentApt = SelectedAppointment;
                frm.Refresh();
                frm.ShowDialog();
            }
            //}
        }
        /// <summary>
        /// Obtiene un profesional por Id
        /// </summary>
        /// <param name="idProfesional"></param>
        /// <returns></returns>
        public static ProfesionalBE GetById(int idProfesional)
        {
            ProfesionalBE wProfesional = null;
            using (Health.Back.BE.HealthEntities dc = new Health.Back.BE.HealthEntities(Common.CnnString_Entities))
            {
                //var result = from p in dc.Profesionals from e in dc.Parametros 
                //                    where (p.IdEspecialidad == e.IdParametro )
                //                    &&  p.IdProfesional.Equals(idProfesional) 
                //             select new {profesional= p,Especialidad = e.Nombre,Persona=p.Persona};
                // var x = result.FirstOrDefault();

                // if (x != null)
                // {
                //     wProfesional = (ProfesionalBE)x.profesional;
                //     wProfesional.Persona = (PersonaBE)x.Persona;
                //     wProfesional.NombreEspecialidad = x.Especialidad;
                // }
                var x = dc.Profesional_FullView.Where(p => p.IdProfesional.Equals(idProfesional)).FirstOrDefault();
                if (x != null)
                {
                    wProfesional = new ProfesionalBE();
                    wProfesional.Persona = new PersonaBE();

                    wProfesional.IdEspecialidad = x.IdEspecialidad;
                    wProfesional.Persona.IdEstadocivil = x.IdEstadocivil;
                    wProfesional.Matricula = x.Matricula;
                    wProfesional.IdProfesional = x.IdProfesional;
                    wProfesional.IdProfesion = x.IdProfesion;
                    //wProfesional.NombreProfecion = x.NombreProfecion;

                    wProfesional.Persona.Apellido = x.Apellido;
                    wProfesional.Persona.Nombre = x.Nombre;
                    wProfesional.Persona.Sexo = x.Sexo;
                    wProfesional.Persona.FechaAlta = x.FechaAlta.Value;
                    wProfesional.Persona.UserId = x.UserId;
                    wProfesional.Persona.FechaNacimiento = x.FechaNacimiento;
                    wProfesional.Persona.NroDocumento = x.NroDocumento;
                    wProfesional.Persona.TipoDocumento = x.TipoDocumento;
                    wProfesional.UserName = x.UserName;

                    wProfesional.NombreEspecialidad = x.NombreEspecialidad;


                    wProfesional.Persona.Street = x.Street;
                    wProfesional.Persona.StreetNumber = x.StreetNumber;
                    wProfesional.Persona.Floor = x.Floor;
                    wProfesional.Persona.CountryId = x.CountryId;
                    wProfesional.Persona.ProvinceId = x.ProvinceId;
                    wProfesional.Persona.CityId = x.CityId;
                    wProfesional.Persona.Neighborhood = x.Neighborhood;
                    wProfesional.Persona.mail = x.mail;
                    wProfesional.Persona.Telefono1 = x.Telefono1;
                    wProfesional.Persona.Telefono2 = x.Telefono2;
                    wProfesional.Persona.Foto = x.Foto;

                    wProfesional.FechaAlta = x.FechaAlta;




                }
            }
            return wProfesional;
        }
Exemple #14
0
        /// <summary>
        /// Obtiene un profesional por Id
        /// </summary>
        /// <param name="idProfesional"></param>
        /// <returns></returns>
        public static ProfesionalBE GetById(int idProfesional)
        {
            ProfesionalBE wProfesional = null;

            using (Health.Back.BE.HealthEntities dc = new Health.Back.BE.HealthEntities(Common.CnnString_Entities))
            {
                //var result = from p in dc.Profesionals from e in dc.Parametros
                //                    where (p.IdEspecialidad == e.IdParametro )
                //                    &&  p.IdProfesional.Equals(idProfesional)
                //             select new {profesional= p,Especialidad = e.Nombre,Persona=p.Persona};
                // var x = result.FirstOrDefault();

                // if (x != null)
                // {
                //     wProfesional = (ProfesionalBE)x.profesional;
                //     wProfesional.Persona = (PersonaBE)x.Persona;
                //     wProfesional.NombreEspecialidad = x.Especialidad;
                // }
                var x = dc.Profesional_FullView.Where(p => p.IdProfesional.Equals(idProfesional)).FirstOrDefault();
                if (x != null)
                {
                    wProfesional         = new ProfesionalBE();
                    wProfesional.Persona = new PersonaBE();

                    wProfesional.IdEspecialidad        = x.IdEspecialidad;
                    wProfesional.Persona.IdEstadocivil = x.IdEstadocivil;
                    wProfesional.Matricula             = x.Matricula;
                    wProfesional.IdProfesional         = x.IdProfesional;
                    wProfesional.IdProfesion           = x.IdProfesion;
                    //wProfesional.NombreProfecion = x.NombreProfecion;

                    wProfesional.Persona.Apellido        = x.Apellido;
                    wProfesional.Persona.Nombre          = x.Nombre;
                    wProfesional.Persona.Sexo            = x.Sexo;
                    wProfesional.Persona.FechaAlta       = x.FechaAlta.Value;
                    wProfesional.Persona.UserId          = x.UserId;
                    wProfesional.Persona.FechaNacimiento = x.FechaNacimiento;
                    wProfesional.Persona.NroDocumento    = x.NroDocumento;
                    wProfesional.Persona.TipoDocumento   = x.TipoDocumento;
                    wProfesional.UserName = x.UserName;

                    wProfesional.NombreEspecialidad = x.NombreEspecialidad;


                    wProfesional.Persona.Street       = x.Street;
                    wProfesional.Persona.StreetNumber = x.StreetNumber;
                    wProfesional.Persona.Floor        = x.Floor;
                    wProfesional.Persona.CountryId    = x.CountryId;
                    wProfesional.Persona.ProvinceId   = x.ProvinceId;
                    wProfesional.Persona.CityId       = x.CityId;
                    wProfesional.Persona.Neighborhood = x.Neighborhood;
                    wProfesional.Persona.mail         = x.mail;
                    wProfesional.Persona.Telefono1    = x.Telefono1;
                    wProfesional.Persona.Telefono2    = x.Telefono2;
                    wProfesional.Persona.Foto         = x.Foto;

                    wProfesional.FechaAlta = x.FechaAlta;
                }
            }
            return(wProfesional);
        }
 public frm_Profesional_Shifts(ProfesionalBE profesional)
 {
     InitializeComponent();
     this.profesional = profesional;
 }
        /// <summary>
        /// Se produce despues de Load (uc_Profesionales_Card_Load) y
        /// Antes del load del formujlario
        /// </summary>
        /// <param name="idProfesional"></param>
        /// <param name="state"></param>
        internal void Populate(int idProfesional, EntityUpdateEnum state)
        {
            //El prof puede modificar sus propios datos
            if (idProfesional.Equals(ServiceCalls.CurrentProfesional.IdProfesional))
            {
                uc_MedioContacto1.Enabled = panelControl2.Enabled = uc_Persona1.Enabled = true;
            }

            this.State = state;
            if (State == Fwk.Bases.EntityUpdateEnum.NEW)
            {
                profesionalBE         = new ProfesionalBE();
                profesionalBE.Persona = new PersonaBE();
                this.lblTitle.Text    = "Alta de profesional";
            }

            if (State == Fwk.Bases.EntityUpdateEnum.UPDATED || State == Fwk.Bases.EntityUpdateEnum.NONE)
            {
                btnCheckUserName.Enabled        = false;
                txtUsername.Properties.ReadOnly = true;
                GetProfesionalRes res = ServiceCalls.GetProfesional(idProfesional, true, true, false, null, ServiceCalls.CurrentHealthInstitution.HealthInstitutionId);

                profesionalBE          = res.BusinessData.profesional;
                resourceSchedulingList = res.BusinessData.ResourceSchedulerList;
                profesionalRolList     = res.BusinessData.User.Roles;

                this.lblTitle.Text = String.Concat("Targeta del profesional", "  ", profesionalBE.Persona.ApellidoNombre);
            }

            uc_Persona1.Populate(profesionalBE.Persona, State);
            txtUsername.Text  = profesionalBE.UserName;
            txtMatricula.Text = profesionalBE.Matricula;
            schedulerShiftBindingSource.DataSource = resourceSchedulingList;
            gridView1.RefreshData();


            //cmbEspecialidad.Properties.DataSource = _EspecialidadList.Where(p => p.IdParametroRef.Equals(profesionalBE.IdProfesion));

            int index = 0;

            index = cmbEspecialidad.Properties.GetDataSourceRowIndex("IdParametro", (int)CommonValuesEnum.Ninguno);
            if (State == Fwk.Bases.EntityUpdateEnum.NEW)
            {
                cmbEspecialidad.ItemIndex = index;
                cmbProfecion.ItemIndex    = 0;
            }
            else
            {
                if (profesionalBE.IdEspecialidad.HasValue)
                {
                    index = cmbEspecialidad.Properties.GetDataSourceRowIndex("IdParametro", profesionalBE.IdEspecialidad);
                }
                cmbEspecialidad.ItemIndex = index;

                index = cmbProfecion.Properties.GetDataSourceRowIndex("IdParametro", profesionalBE.IdProfesion);
                cmbProfecion.ItemIndex = index;
            }

            cmbEspecialidad.Refresh();
            cmbProfecion.Refresh();

            MachRolesGrid(profesionalRolList);



            uc_MedioContacto1.Persona = profesionalBE.Persona;
            uc_Persona1.Refresh();
            uc_MedioContacto1.Init();
            this.cmbProfecion.EditValueChanged += new System.EventHandler(this.cmbProfecion_EditValueChanged);
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="profesional"></param>
        public static void Update(ProfesionalBE profesional)
        {
            using (Health.Back.BE.HealthEntities dc = new Health.Back.BE.HealthEntities(Common.CnnString_Entities))
            {
                Health.Back.BE.Profesional wProfesional = dc.Profesionals.Where(p => p.IdProfesional.Equals(profesional.IdProfesional)).FirstOrDefault<Health.Back.BE.Profesional>();

                wProfesional.Persona.Apellido = profesional.Persona.Apellido;
                wProfesional.Persona.Nombre = profesional.Persona.Nombre;
                wProfesional.Persona.NroDocumento = profesional.Persona.NroDocumento;
                wProfesional.Persona.TipoDocumento = profesional.Persona.TipoDocumento;
                wProfesional.Persona.IdEstadocivil = profesional.Persona.IdEstadocivil;
                wProfesional.Persona.FechaNacimiento = profesional.Persona.FechaNacimiento;
                wProfesional.Persona.Sexo = profesional.Persona.Sexo;

                wProfesional.Persona.Street = profesional.Persona.Street;
                wProfesional.Persona.StreetNumber = profesional.Persona.StreetNumber;
                wProfesional.Persona.Floor = profesional.Persona.Floor;
                wProfesional.Persona.CountryId = profesional.Persona.CountryId;
                wProfesional.Persona.ProvinceId = profesional.Persona.ProvinceId;
                wProfesional.Persona.CityId = profesional.Persona.CityId;
                wProfesional.Persona.Neighborhood = profesional.Persona.Neighborhood;
                wProfesional.Persona.mail = profesional.Persona.mail;
                wProfesional.Persona.Telefono1 = profesional.Persona.Telefono1;
                wProfesional.Persona.Telefono2 = profesional.Persona.Telefono2;
                wProfesional.Persona.Foto = profesional.Persona.Foto;
                wProfesional.Matricula = profesional.Matricula;

                wProfesional.LastAccessTime = System.DateTime.Now;
                wProfesional.LastAccessUserId = profesional.LastAccessUserId;
                wProfesional.Persona.LastAccessTime = wProfesional.LastAccessTime.Value;
                wProfesional.Persona.LastAccessUserId = profesional.LastAccessUserId.Value;
                dc.SaveChanges();
            }
        }
        /// <summary>
        /// Asocia un profesional a una persona existente
        /// </summary>
        /// <param name="profesionalBE"></param>
        public static void Asociar(ProfesionalBE profesionalBE)
        {
            using (Health.Back.BE.HealthEntities dc = new Health.Back.BE.HealthEntities(Common.CnnString_Entities))
            {
                Health.Back.BE.Profesional profesional = new Health.Back.BE.Profesional();
                profesional.IdPersona = profesionalBE.IdPersona;

                profesional.FechaAlta = System.DateTime.Now;
                profesional.Matricula = profesionalBE.Matricula;
                profesional.IdEspecialidad = profesionalBE.IdEspecialidad;
                profesional.LastAccessTime = profesional.FechaAlta;
                profesional.LastAccessUserId = profesionalBE.LastAccessUserId;

                dc.Profesionals.AddObject(profesional);
                dc.SaveChanges();
            }
        }
        /// <summary>
        /// Crea un profesional y clase persona
        /// </summary>
        /// <param name="profesionalBE"></param>
        public static void Create(ProfesionalBE profesionalBE)
        {
            PersonasDAC.Create(profesionalBE.Persona);
            using (Health.Back.BE.HealthEntities dc = new Health.Back.BE.HealthEntities(Common.CnnString_Entities))
            {
                Health.Back.BE.Profesional p = new Health.Back.BE.Profesional();

                p.IdPersona = profesionalBE.Persona.IdPersona;

                p.FechaAlta = profesionalBE.Persona.FechaAlta;
                p.Matricula = profesionalBE.Matricula;
                p.IdEspecialidad = profesionalBE.IdEspecialidad;
                p.IdProfesion = profesionalBE.IdProfesion;
                p.LastAccessTime = p.FechaAlta;
                p.LastAccessUserId = profesionalBE.LastAccessUserId;

                dc.Profesionals.AddObject(p);
                dc.SaveChanges();

                profesionalBE.IdProfesional = p.IdProfesional;
                profesionalBE.IdPersona = p.IdPersona;
            }
        }
        public static ProfesionalBE GetByUserGuid(Guid userGuid)
        {
            ProfesionalBE wProfesional = null;
            using (Health.Back.BE.HealthEntities dc = new Health.Back.BE.HealthEntities(Common.CnnString_Entities))
            {
                var x = dc.Profesional_FullView.Where(p => p.UserId.Value.Equals(userGuid)).FirstOrDefault();
                if (x != null)
                {
                    wProfesional = new ProfesionalBE();
                    wProfesional.Persona = new PersonaBE();

                    wProfesional.IdEspecialidad = x.IdEspecialidad;
                    wProfesional.Persona.IdEstadocivil = x.IdEstadocivil;
                    wProfesional.Matricula = x.Matricula;
                    wProfesional.IdProfesional = x.IdProfesional;
                    wProfesional.IdProfesion = x.IdProfesion;
                    //wProfesional.NombreProfecion = x.NombreProfecion;

                    wProfesional.Persona.Apellido = x.Apellido;
                    wProfesional.Persona.Nombre = x.Nombre;
                    wProfesional.Persona.Sexo = x.Sexo;
                    wProfesional.Persona.FechaAlta = x.FechaAlta.Value;
                    wProfesional.Persona.UserId = x.UserId;
                    wProfesional.Persona.FechaNacimiento = x.FechaNacimiento;
                    wProfesional.Persona.NroDocumento = x.NroDocumento;
                    wProfesional.Persona.TipoDocumento = x.TipoDocumento;
                    wProfesional.UserName = x.UserName;

                    wProfesional.NombreEspecialidad = x.NombreEspecialidad;
                    wProfesional.Persona.Street = x.Street;
                    wProfesional.Persona.StreetNumber = x.StreetNumber;
                    wProfesional.Persona.Floor = x.Floor;
                    wProfesional.Persona.CountryId = x.CountryId;
                    wProfesional.Persona.ProvinceId = x.ProvinceId;
                    wProfesional.Persona.CityId = x.CityId;
                    wProfesional.Persona.Neighborhood = x.Neighborhood;
                    wProfesional.Persona.mail = x.mail;
                    wProfesional.Persona.Telefono1 = x.Telefono1;
                    wProfesional.Persona.Telefono2 = x.Telefono2;
                    wProfesional.Persona.Foto = x.Foto;


                    wProfesional.FechaAlta = x.FechaAlta;

                }
            }
            return wProfesional;
        }