Exemple #1
0
        public void AssignSelectedMeasure(WebsiteMeasure websiteMeasure)
        {
            TopicTypeEnum?topicType;

            IsMeasureTopicsEnabled = true;

            if (websiteMeasure.OriginalMeasure is NursingHomeMeasure)
            {
                topicType = TopicTypeEnum.NursingHome;
                IsMeasureTopicsEnabled = false;
            }
            else if (websiteMeasure.OriginalMeasure is HospitalMeasure)
            {
                topicType = TopicTypeEnum.Hospital;
            }
            else
            {
                topicType = null;
            }

            TopicsCollectionView = CollectionViewSource.GetDefaultView(WebsiteDataService.GetTopicViewModels(topicType).ToObservableCollection()) as ListCollectionView;


            SelectedMeasure = GenMeasureModel(websiteMeasure);
        }
        private void cbSelectionMeasures_KeyUp(object sender, KeyEventArgs e)
        {
            CheckBox       cbSelectionMeasures = sender as CheckBox;
            WebsiteMeasure newCheckedItem      = cbSelectionMeasures.DataContext as WebsiteMeasure;

            int newCheckedItemIndex = Model.AvailableMeasuresView.IndexOf(newCheckedItem);

            if ((System.Windows.Input.Keyboard.IsKeyUp(System.Windows.Input.Key.LeftShift) || System.Windows.Input.Keyboard.IsKeyUp(System.Windows.Input.Key.RightShift)) && newCheckedItemIndex != _lastCheckedItemIndex)
            {
                int start = System.Math.Min(_lastCheckedItemIndex, newCheckedItemIndex);
                int end   = System.Math.Max(_lastCheckedItemIndex, newCheckedItemIndex);

                int countToTake = end - start;

                var itemsToCheck = new System.Collections.Generic.List <WebsiteMeasure>();

                foreach (var o in Model.AvailableMeasuresView.OfType <WebsiteMeasure>().Select((x, i) => new { x, i }))
                {
                    if (o.i > start && o.i < end)
                    {
                        itemsToCheck.Add(o.x);
                    }
                }

                foreach (WebsiteMeasure itemToCheck in itemsToCheck)
                {
                    itemToCheck.IsSelected = true;
                }
                _lastCheckedItemIndex = -1;
            }
            else
            {
                _lastCheckedItemIndex = newCheckedItemIndex;
            }
        }
Exemple #3
0
            /// <summary>
            /// Gets the value.
            /// </summary>
            /// <param name="values">The values.</param>
            /// <param name="measure">The measure.</param>
            /// <returns></returns>
            private static string GetValue(Tuple <int, int, double> values, WebsiteMeasure measure)
            {
                var code =
                    measure.OriginalMeasure != null
                        ? measure.OriginalMeasure.MeasureCode
                        : measure.OverrideMeasure != null ? measure.OverrideMeasure.MeasureCode : string.Empty;

                if (string.IsNullOrEmpty(code) || values == null)
                {
                    return(string.Empty);
                }

                return(code.Contains("COST") ? string.Format("{0}", values.Item3) : values.Item2.ToString(CultureInfo.InvariantCulture));
            }
Exemple #4
0
        /// <summary>
        /// Creates a *useable* MeasureModel from a WebsiteMeasure.
        /// </summary>
        /// <param name="websiteMeasure"></param>
        /// <param name="isBatchLoading">
        /// Indicates that we are loading multiple MeasuresModels.  As such, currently no need to hydrate
        /// topics.  If we ever add topics to Batch editing, we can should add a BatchHydrateTopics function
        /// that would be called at this functions call site, after all batched MeasureModes have been
        /// generated.  Also, the TopicTree IsSelection type should be changed from bool to bool?, thus
        /// introducing a 3 state true, false, mixed IsSelected indicator, where mixed means some of the
        /// batched Measures selected the topic, and some
        /// have not.
        /// </param>
        /// <returns></returns>
        private MeasureModel GenMeasureModel(WebsiteMeasure websiteMeasure, bool isBatchLoading = false)
        {
            var newMeasureModel = new MeasureModel(websiteMeasure);

            newMeasureModel.InitMeasureOverride(newMeasureModel.MeasureOverwrite ?? newMeasureModel.Measure);
            newMeasureModel.IsPlainTitleSelected = (newMeasureModel.MeasureOverwrite.IsPersisted)
                                                                                ? newMeasureModel.MeasureOverwrite.MeasureTitle.Selected == SelectedMeasuretitleEnum.Plain
                                                                                : CurrentWebsite.Audiences.Any(a => a == Audience.Consumers);
            //: CurrentWebsite.Audience == Audience.Consumers;
            newMeasureModel.WasMeasureOverrideEdited = true;
            if (!isBatchLoading)
            {
                HydrateTopics(newMeasureModel.MeasureOverwrite);
            }
            return(newMeasureModel);
        }
Exemple #5
0
        // TODO: WEBSITE FILTER
        bool ModelPropertyFilter(WebsiteMeasure measure)
        {
            if (measure == null)
            {
                return(false);
            }
            if (Model.SelectedProperty == ModelPropertyFilterValues.NONE)
            {
                return(true);
            }
            if (Model.SelectedProperty == ModelPropertyFilterValues.MEASURE_CODE)
            {
                return(measure.ReportMeasure.MeasureCode.ToLower().Contains(Model.PropertyFilterText.ToLower()));
            }

            if (Model.SelectedProperty == ModelPropertyFilterValues.MEASURE_NAME)
            {
                return(measure.ReportMeasure.MeasureTitle.Clinical.ToLower().Contains(Model.PropertyFilterText.ToLower()));
            }

            if (Model.SelectedProperty == ModelPropertyFilterValues.TOPIC_NAME)
            {
                return(measure.ReportMeasure.Topics.Any(t => t.Name.ToLower().Contains(Model.PropertyFilterText.ToLower()) || t.Owner.ToString().ToLower().Contains(Model.PropertyFilterText.ToLower())));
            }
            if (Model.SelectedProperty == ModelPropertyFilterValues.WEBSITE_NAME)
            {
                var WebsiteDataService = ServiceLocator.Current.GetInstance <IWebsiteDataService>();
                var websiteNames       = WebsiteDataService.GetWebsiteNamesForMeasure(measure.OriginalMeasure.Id);
                return(string.Join(", ", websiteNames).ToLower().Contains(Model.PropertyFilterText.ToLower()));
            }
            if (Model.SelectedProperty == ModelPropertyFilterValues.SUBTOPIC_NAME)
            {
                return(measure.ReportMeasure.Topics.Any(t => t.Name.ToLower().Contains(Model.PropertyFilterText.ToLower()) || t.Owner.ToString().ToLower().Contains(Model.PropertyFilterText.ToLower())));
            }
            return(true);
        }
Exemple #6
0
 public BatchMeasureModel(WebsiteMeasure wm)
     : this()
 {
     ProxyWebsiteMeasure = wm;
 }
Exemple #7
0
 bool ModelDatasetFilter(WebsiteMeasure measure)
 {
     return(measure != null && measure.ReportMeasure.Owner.Name == Model.SelectedDataSet);
 }