03ebcafdf5
* Initial refactoring to move database matcher out into its own class * MAJOR REFACTOR: Pulled indexing code out of BaseHapiFhirDao into a new class ResourceIndexedSearchParams * Moved calculateHashes * Replaced @Bean definitions in BaseConfig.java with @ComponentScan Annotated bean classes with either @Service (if it's stateless) or @Component (if it's stateful). It doesn't really matter which annotation is used, but it's helpful to see at a glance whether a bean is stateful or stateless. * Move services out of BaseHapiFhirDao Moved services required by ResourceIndexedSearchParams out of BaseHapiFhirDao and into new classes called LogicalReferenceHelper, IdHelperService, MatchUrlService, and DaoProvider. Converted SearchBuilder into Prototype Bean Mark Spring components that depend on daos and entitymanagers with @Lazy so they aren't picked up by hapi-fhir-spring-boot-autoconfigure. * Added SubscriptionMatcherInMemory Moved static data out of BaseHapiFhirDao into ResourceMetaParams Moved translateMatchUrl methods out of BaseHapiFhirDao into MatchUrlService bean Simplified SubscriptionMatcherInMemory to not depend on entity or dao Turned all subscribers into prototype beans * Moved searchParam method out to mySearchParamProvider Also removed dao and contest parameters from of myMatchUrlService methods Moved code out of SearchBuilder into SearchParameterMap.clean() so it can be used by inMemoryMatcher Introduced a new composite subscription matcher that tries to match in memory and if it finds a parameter in the criteria it doesn't support, it falls back to the database matcher. * Added support for references Also fixed a small bug in SearchParameterMap that was missing the ";" after "_has" when creating a normalized query from search params. * Finished implementing all tests from FhirResourceDaoR4SearchNoFtTest * Make in-memory matcher configurable, disabled by default * Validate Subscription criteria when they're submitted Send HTTP 422 UnprocessableEntityException if the criteria fail validation. * fixed Sonar "Blocker" issues. * Don't reload the resource before sending it out Since we can always force a reload using restHookDetails.isDeliverLatestVersion * Added tests to cover Custom Search param. * Split ResourceIndexedSearchParam into separate state and service classes * Cleaned up SearchBuilder. Removed uses of myCallingDao as an injection mechanism. Left // FIXME KHS cookie crumbs to clean up * Reduced dependencies on BaseHapiFhirDao Removed methods from IDao interface that were used for injection * Updated change log |
||
---|---|---|
.. | ||
main | ||
test |