Exemple #1
0
        public SqlServerSearchService(
            ISearchOptionsFactory searchOptionsFactory,
            IFhirDataStore fhirDataStore,
            SqlServerFhirModel model,
            SqlRootExpressionRewriter sqlRootExpressionRewriter,
            ChainFlatteningRewriter chainFlatteningRewriter,
            SortRewriter sortRewriter,
            SqlConnectionWrapperFactory sqlConnectionWrapperFactory,
            SchemaInformation schemaInformation,
            ISortingValidator sortingValidator,
            IFhirRequestContextAccessor requestContextAccessor,
            ILogger <SqlServerSearchService> logger)
            : base(searchOptionsFactory, fhirDataStore)
        {
            EnsureArg.IsNotNull(sqlRootExpressionRewriter, nameof(sqlRootExpressionRewriter));
            EnsureArg.IsNotNull(chainFlatteningRewriter, nameof(chainFlatteningRewriter));
            EnsureArg.IsNotNull(sqlConnectionWrapperFactory, nameof(sqlConnectionWrapperFactory));
            EnsureArg.IsNotNull(schemaInformation, nameof(schemaInformation));
            EnsureArg.IsNotNull(sortingValidator, nameof(sortingValidator));
            EnsureArg.IsNotNull(requestContextAccessor, nameof(requestContextAccessor));
            EnsureArg.IsNotNull(logger, nameof(logger));

            _model = model;
            _sqlRootExpressionRewriter = sqlRootExpressionRewriter;
            _sortRewriter                = sortRewriter;
            _chainFlatteningRewriter     = chainFlatteningRewriter;
            _sqlConnectionWrapperFactory = sqlConnectionWrapperFactory;
            _logger = logger;

            _schemaInformation      = schemaInformation;
            _sortingValidator       = sortingValidator;
            _requestContextAccessor = requestContextAccessor;
        }
        public SqlServerSearchService(
            ISearchOptionsFactory searchOptionsFactory,
            IFhirDataStore fhirDataStore,
            ISqlServerFhirModel model,
            SqlRootExpressionRewriter sqlRootExpressionRewriter,
            ChainFlatteningRewriter chainFlatteningRewriter,
            SortRewriter sortRewriter,
            PartitionEliminationRewriter partitionEliminationRewriter,
            SqlConnectionWrapperFactory sqlConnectionWrapperFactory,
            SchemaInformation schemaInformation,
            RequestContextAccessor <IFhirRequestContext> requestContextAccessor,
            ICompressedRawResourceConverter compressedRawResourceConverter,
            ILogger <SqlServerSearchService> logger)
            : base(searchOptionsFactory, fhirDataStore)
        {
            EnsureArg.IsNotNull(sqlRootExpressionRewriter, nameof(sqlRootExpressionRewriter));
            EnsureArg.IsNotNull(chainFlatteningRewriter, nameof(chainFlatteningRewriter));
            EnsureArg.IsNotNull(sqlConnectionWrapperFactory, nameof(sqlConnectionWrapperFactory));
            EnsureArg.IsNotNull(schemaInformation, nameof(schemaInformation));
            EnsureArg.IsNotNull(partitionEliminationRewriter, nameof(partitionEliminationRewriter));
            EnsureArg.IsNotNull(requestContextAccessor, nameof(requestContextAccessor));
            EnsureArg.IsNotNull(logger, nameof(logger));

            _model = model;
            _sqlRootExpressionRewriter = sqlRootExpressionRewriter;
            _sortRewriter = sortRewriter;
            _partitionEliminationRewriter = partitionEliminationRewriter;
            _chainFlatteningRewriter      = chainFlatteningRewriter;
            _sqlConnectionWrapperFactory  = sqlConnectionWrapperFactory;
            _logger = logger;

            _schemaInformation              = schemaInformation;
            _requestContextAccessor         = requestContextAccessor;
            _compressedRawResourceConverter = compressedRawResourceConverter;
        }
        public SqlServerSearchService(
            ISearchOptionsFactory searchOptionsFactory,
            IFhirDataStore fhirDataStore,
            SqlServerFhirModel model,
            SqlRootExpressionRewriter sqlRootExpressionRewriter,
            ChainFlatteningRewriter chainFlatteningRewriter,
            StringOverflowRewriter stringOverflowRewriter,
            SortRewriter sortRewriter,
            SqlConnectionWrapperFactory sqlConnectionWrapperFactory,
            ILogger <SqlServerSearchService> logger,
            SchemaInformation schemaInformation)
            : base(searchOptionsFactory, fhirDataStore)
        {
            EnsureArg.IsNotNull(sqlRootExpressionRewriter, nameof(sqlRootExpressionRewriter));
            EnsureArg.IsNotNull(chainFlatteningRewriter, nameof(chainFlatteningRewriter));
            EnsureArg.IsNotNull(stringOverflowRewriter, nameof(stringOverflowRewriter));
            EnsureArg.IsNotNull(sqlConnectionWrapperFactory, nameof(sqlConnectionWrapperFactory));
            EnsureArg.IsNotNull(logger, nameof(logger));
            EnsureArg.IsNotNull(schemaInformation, nameof(schemaInformation));

            _model = model;
            _sqlRootExpressionRewriter = sqlRootExpressionRewriter;
            _sortRewriter                = sortRewriter;
            _chainFlatteningRewriter     = chainFlatteningRewriter;
            _stringOverflowRewriter      = stringOverflowRewriter;
            _sqlConnectionWrapperFactory = sqlConnectionWrapperFactory;
            _logger          = logger;
            _isResultPartial = false;

            // Initialise supported sort params with SQL related values
            SearchParameterInfoExtensions.AppendSearchParameterInfoExtensions(SupportedSortParameterNames.Names);
            _schemaInformation = schemaInformation;
        }
        public SqlServerSearchService(
            ISearchOptionsFactory searchOptionsFactory,
            IFhirDataStore fhirDataStore,
            SqlServerFhirModel model,
            SqlRootExpressionRewriter sqlRootExpressionRewriter,
            ChainFlatteningRewriter chainFlatteningRewriter,
            StringOverflowRewriter stringOverflowRewriter,
            SqlConnectionWrapperFactory sqlConnectionWrapperFactory,
            ILogger <SqlServerSearchService> logger)
            : base(searchOptionsFactory, fhirDataStore)
        {
            EnsureArg.IsNotNull(sqlRootExpressionRewriter, nameof(sqlRootExpressionRewriter));
            EnsureArg.IsNotNull(chainFlatteningRewriter, nameof(chainFlatteningRewriter));
            EnsureArg.IsNotNull(stringOverflowRewriter, nameof(stringOverflowRewriter));
            EnsureArg.IsNotNull(sqlConnectionWrapperFactory, nameof(sqlConnectionWrapperFactory));
            EnsureArg.IsNotNull(logger, nameof(logger));

            _model = model;
            _sqlRootExpressionRewriter   = sqlRootExpressionRewriter;
            _chainFlatteningRewriter     = chainFlatteningRewriter;
            _stringOverflowRewriter      = stringOverflowRewriter;
            _sqlConnectionWrapperFactory = sqlConnectionWrapperFactory;
            _logger          = logger;
            _isResultPartial = false;
        }
        public ListSearchBehaviorTests()
        {
            _cancellationToken = _cancellationTokenSource.Token;

            var so = new SearchOptions();

            so.UnsupportedSearchParams = new Tuple <string, string> [0];

            _searchOptionsFactory = Substitute.For <ISearchOptionsFactory>();
            _searchOptionsFactory.Create(Arg.Any <string>(), Arg.Any <IReadOnlyList <Tuple <string, string> > >()).Returns(so);

            _fhirDataStore = Substitute.For <IFhirDataStore>();

            // for an 'existing list' return a list with Patients
            _fhirDataStore.GetAsync(Arg.Is <ResourceKey>(x => x.Id == "existing-list"), Arg.Any <CancellationToken>()).Returns(
                x =>
            {
                var longList           = Samples.GetDefaultList();
                var rawResourceFactory = new RawResourceFactory(new FhirJsonSerializer());
                return(new ResourceWrapper(
                           longList,
                           rawResourceFactory.Create(longList, keepMeta: true),
                           new ResourceRequest(HttpMethod.Post, "http://fhir"),
                           false,
                           null,
                           null,
                           null));
            });

            _scopedDataStore = Substitute.For <IScoped <IFhirDataStore> >();
            _scopedDataStore.Value.Returns(_fhirDataStore);

            _nonEmptyBundle = new Bundle
            {
                Type  = Bundle.BundleType.Batch,
                Entry = new List <Bundle.EntryComponent>
                {
                    new Bundle.EntryComponent
                    {
                        Resource = Samples.GetDefaultObservation().ToPoco(),
                        Request  = new Bundle.RequestComponent
                        {
                            Method = Bundle.HTTPVerb.POST,
                            Url    = "Observation",
                        },
                    },
                    new Bundle.EntryComponent
                    {
                        Request = new Bundle.RequestComponent
                        {
                            Method = Bundle.HTTPVerb.GET,
                            Url    = "Patient?name=peter",
                        },
                    },
                },
            }.ToResourceElement();

            _bundleFactory = Substitute.For <IBundleFactory>();
            _bundleFactory.CreateSearchBundle(Arg.Any <SearchResult>()).Returns(_nonEmptyBundle);
        }
 public SqlServerSearchService(
     ISearchOptionsFactory searchOptionsFactory,
     IBundleFactory bundleFactory,
     IFhirDataStore fhirDataStore,
     IModelInfoProvider modelInfoProvider)
     : base(searchOptionsFactory, bundleFactory, fhirDataStore, modelInfoProvider)
 {
 }
Exemple #7
0
        /// <summary>
        /// Initializes a new instance of the <see cref="SearchService"/> class.
        /// </summary>
        /// <param name="searchOptionsFactory">The search options factory.</param>
        /// <param name="bundleFactory">The bundle factory</param>
        /// <param name="dataStore">The data store</param>
        protected SearchService(ISearchOptionsFactory searchOptionsFactory, IBundleFactory bundleFactory, IDataStore dataStore)
        {
            EnsureArg.IsNotNull(searchOptionsFactory, nameof(searchOptionsFactory));

            _searchOptionsFactory = searchOptionsFactory;
            _bundleFactory        = bundleFactory;
            _dataStore            = dataStore;
        }
Exemple #8
0
        /// <summary>
        /// Initializes a new instance of the <see cref="SearchService"/> class.
        /// </summary>
        /// <param name="searchOptionsFactory">The search options factory.</param>
        /// <param name="fhirDataStore">The data store</param>
        /// <param name="modelInfoProvider">The model info provider</param>
        protected SearchService(ISearchOptionsFactory searchOptionsFactory, IFhirDataStore fhirDataStore)
        {
            EnsureArg.IsNotNull(searchOptionsFactory, nameof(searchOptionsFactory));
            EnsureArg.IsNotNull(fhirDataStore, nameof(fhirDataStore));

            _searchOptionsFactory = searchOptionsFactory;
            _fhirDataStore        = fhirDataStore;
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="SearchService"/> class.
        /// </summary>
        /// <param name="searchOptionsFactory">The search options factory.</param>
        /// <param name="fhirDataStore">The data store</param>
        /// <param name="modelInfoProvider">The model info provider</param>
        protected SearchService(ISearchOptionsFactory searchOptionsFactory, IFhirDataStore fhirDataStore, IModelInfoProvider modelInfoProvider)
        {
            EnsureArg.IsNotNull(searchOptionsFactory, nameof(searchOptionsFactory));
            EnsureArg.IsNotNull(modelInfoProvider, nameof(modelInfoProvider));

            _searchOptionsFactory = searchOptionsFactory;
            _fhirDataStore        = fhirDataStore;
            _modelInfoProvider    = modelInfoProvider;
        }
Exemple #10
0
        public FhirCosmosSearchService(
            ISearchOptionsFactory searchOptionsFactory,
            CosmosFhirDataStore fhirDataStore,
            IQueryBuilder queryBuilder)
            : base(searchOptionsFactory, fhirDataStore)
        {
            EnsureArg.IsNotNull(fhirDataStore, nameof(fhirDataStore));
            EnsureArg.IsNotNull(queryBuilder, nameof(queryBuilder));

            _fhirDataStore = fhirDataStore;
            _queryBuilder  = queryBuilder;
        }
        public CosmosSearchService(
            ISearchOptionsFactory searchOptionsFactory,
            CosmosDataStore cosmosDataStore,
            IQueryBuilder queryBuilder,
            IBundleFactory bundleFactory)
            : base(searchOptionsFactory, bundleFactory, cosmosDataStore)
        {
            EnsureArg.IsNotNull(cosmosDataStore, nameof(cosmosDataStore));
            EnsureArg.IsNotNull(queryBuilder, nameof(queryBuilder));

            _cosmosDataStore = cosmosDataStore;
            _queryBuilder    = queryBuilder;
        }
Exemple #12
0
        public FhirCosmosSearchService(
            ISearchOptionsFactory searchOptionsFactory,
            CosmosFhirDataStore fhirDataStore,
            IQueryBuilder queryBuilder,
            IBundleFactory bundleFactory,
            IModelInfoProvider modelInfoProvider)
            : base(searchOptionsFactory, bundleFactory, fhirDataStore, modelInfoProvider)
        {
            EnsureArg.IsNotNull(fhirDataStore, nameof(fhirDataStore));
            EnsureArg.IsNotNull(queryBuilder, nameof(queryBuilder));

            _fhirDataStore = fhirDataStore;
            _queryBuilder  = queryBuilder;
        }
Exemple #13
0
        public FhirCosmosSearchService(
            ISearchOptionsFactory searchOptionsFactory,
            CosmosFhirDataStore fhirDataStore,
            IQueryBuilder queryBuilder,
            ISearchParameterDefinitionManager searchParameterDefinitionManager,
            IFhirRequestContextAccessor requestContextAccessor)
            : base(searchOptionsFactory, fhirDataStore)
        {
            EnsureArg.IsNotNull(fhirDataStore, nameof(fhirDataStore));
            EnsureArg.IsNotNull(queryBuilder, nameof(queryBuilder));
            EnsureArg.IsNotNull(searchParameterDefinitionManager, nameof(searchParameterDefinitionManager));
            EnsureArg.IsNotNull(requestContextAccessor, nameof(requestContextAccessor));

            _fhirDataStore               = fhirDataStore;
            _queryBuilder                = queryBuilder;
            _requestContextAccessor      = requestContextAccessor;
            _resourceTypeSearchParameter = searchParameterDefinitionManager.GetSearchParameter(KnownResourceTypes.Resource, SearchParameterNames.ResourceType);
        }
        public ListSearchPipeBehavior(
            ISearchOptionsFactory searchOptionsFactory,
            IBundleFactory bundleFactory,
            IScoped <IFhirDataStore> dataStore,
            ResourceDeserializer deserializer,
            IReferenceSearchValueParser referenceSearchValueParser)
        {
            EnsureArg.IsNotNull(bundleFactory, nameof(bundleFactory));
            EnsureArg.IsNotNull(dataStore, nameof(dataStore));
            EnsureArg.IsNotNull(deserializer, nameof(deserializer));
            EnsureArg.IsNotNull(referenceSearchValueParser, nameof(referenceSearchValueParser));
            EnsureArg.IsNotNull(searchOptionsFactory, nameof(searchOptionsFactory));

            _searchOptionsFactory       = searchOptionsFactory;
            _bundleFactory              = bundleFactory;
            _dataStore                  = dataStore;
            _deserializer               = deserializer;
            _referenceSearchValueParser = referenceSearchValueParser;
        }
        public SqlServerSearchService(
            ISearchOptionsFactory searchOptionsFactory,
            IFhirDataStore fhirDataStore,
            IModelInfoProvider modelInfoProvider,
            SqlServerFhirModel model,
            SqlRootExpressionRewriter sqlRootExpressionRewriter,
            ChainFlatteningRewriter chainFlatteningRewriter,
            SqlServerDataStoreConfiguration configuration,
            ILogger <SqlServerSearchService> logger)
            : base(searchOptionsFactory, fhirDataStore, modelInfoProvider)
        {
            EnsureArg.IsNotNull(sqlRootExpressionRewriter, nameof(sqlRootExpressionRewriter));
            EnsureArg.IsNotNull(chainFlatteningRewriter, nameof(chainFlatteningRewriter));
            EnsureArg.IsNotNull(logger, nameof(logger));

            _model = model;
            _sqlRootExpressionRewriter = sqlRootExpressionRewriter;
            _chainFlatteningRewriter   = chainFlatteningRewriter;
            _configuration             = configuration;
            _logger = logger;
        }
Exemple #16
0
 public TestSearchService(ISearchOptionsFactory searchOptionsFactory, IBundleFactory bundleFactory, IFhirDataStore fhirDataStore, IModelInfoProvider modelInfoProvider)
     : base(searchOptionsFactory, bundleFactory, fhirDataStore, modelInfoProvider)
 {
     SearchImplementation = options => null;
 }
 public PostgresqlSearchService(
     ISearchOptionsFactory searchOptionsFactory,
     IFhirDataStore fhirDataStore)
     : base(searchOptionsFactory, fhirDataStore)
 {
 }
Exemple #18
0
 public SearchManagerFactory(ISearchContextFactory searchContextFactory, ISearchOptionsFactory searchOptionsFactory)
 {
     _searchContextFactory = searchContextFactory;
     _searchOptionsFactory = searchOptionsFactory;
 }
Exemple #19
0
 public TestSearchService(ISearchOptionsFactory searchOptionsFactory, IFhirDataStore fhirDataStore)
     : base(searchOptionsFactory, fhirDataStore)
 {
     SearchImplementation = options => null;
 }
Exemple #20
0
 public TestSearchService(ISearchOptionsFactory searchOptionsFactory, IBundleFactory bundleFactory, IDataStore dataStore)
     : base(searchOptionsFactory, bundleFactory, dataStore)
 {
     SearchImplementation = options => null;
 }
 public SearchManager(IIgnitionSearchIndex index, ISearchOptionsFactory searchOptionsFactory)
 {
     _index = index;
     _searchOptionsFactory = searchOptionsFactory;
 }