///<summary>Syncs any changes made by the user to the list of Program Properties that indicates this Program Link's button should be hidden
        ///per clinic.  Only syncs changes made to ProgramProperties for clinics the user has access to.</summary>
        private void SyncHiddenProgramProperties()
        {
            //Get the users total list of unrestricted clinics, then acquire their list of ProgramProperties so we can tell which PL buttons
            //should be hidden based upon the ProgramProperty PropertyDesc indicator.
            List <Clinic> listUserClinics = Clinics.GetForUserod(Security.CurUser, doIncludeHQ: true, hqClinicName: Lan.g(this, "HQ"));
            //Get the cached list of button hiding ProgramProperties for clinics this user has access to, i.e. the "Old" list.
            List <ProgramProperty> listHiddenForUserOld = ProgramProperties.GetForProgram(_progNumCur)
                                                          .Where(x => x.PropertyDesc == ProgramProperties.PropertyDescs.ClinicHideButton &&
                                                                 x.ClinicNum.In(listUserClinics.Select(y => y.ClinicNum))).ToList();

            //Compares the old list of ProgramProperties to the new one, if a clinic exists in the old list but not the new list then it was deleted by the
            //user and we remove it from the db.
            foreach (ProgramProperty propOld in listHiddenForUserOld)
            {
                if (!propOld.ProgramPropertyNum.In(_listProgramPropertiesHiddenClinics.Select(x => x.ProgramPropertyNum))) //Clinic was Removed from List
                {
                    ProgramProperties.Delete(propOld);                                                                     //Remove from ProgramProperty
                }
            }
            //Compares the new list of ProgramProperties to the old one, if a clinic exists in the new list but not the old one then it was added by the
            //user and we should add it to the db.
            foreach (ProgramProperty propNew in _listProgramPropertiesHiddenClinics)
            {
                if (!propNew.ProgramPropertyNum.In(listHiddenForUserOld.Select(x => x.ProgramPropertyNum))) //Clinic was Added to List
                {
                    ProgramProperties.Insert(propNew);                                                      //Insert ProgramProperty
                }
            }
        }