Beispiel #1
0
        public OldHrSearchOptions GetOldOptions()
        {
            var options = new OldHrSearchOptions();

            options.AllWords   = AllWords;
            options.QueryScope = QueryScope;

            options.WordsAll = AutocompleteAll.GetCHIOs().Where(x => x.HIO is Word).Select(x => x.HIO).Cast <Word>().ToList();

            options.MeasuresAll = AutocompleteAll.GetCHIOs().Where(x => x.HIO is MeasureOp).Select(x => x.HIO).Cast <MeasureOp>().ToList();

            options.Categories = SelectedCategories.Select(cat => cat.category).ToList();
            return(options);
        }
Beispiel #2
0
        public static IEnumerable <HealthRecord> SearchOld(ISession session, OldHrSearchOptions options)
        {
            Contract.Requires(options != null);
            Contract.Requires(session != null);

            IEnumerable <HealthRecord> hrs;

            if (options.WordsAll.Any())
            {
                if (options.AllWords)
                {
                    hrs = HealthRecordQuery.WithAllWordsInScope(session)(options.WordsAll, options.QueryScope);
                }
                else
                {
                    hrs = HealthRecordQuery.WithAnyWord(session)(options.WordsAll);
                }
            }
            else
            {
                hrs = session.Query <HealthRecord>();
            }

            if (options.MeasuresAll.Any())
            {
                hrs = hrs.Where(x =>
                                options.MeasuresAll.All(op => x.Measures.Any(m => op.ResultFor(m))));
            }

            if (options.Categories.Any())
            {
                hrs = hrs.Where(hr =>
                                options.Categories.Any(cat => cat.Equals(hr.Category)));
            }

            return(hrs.ToList());
        }