Commit Graph

1091 Commits

Author SHA1 Message Date
James Agnew 650872cd3e Address SQL syntax issue 2018-11-29 08:37:50 -05:00
James Agnew b41c222880 Require explicit declaration of authorizationinterceptor operation rules
on whether the response is authorized or not
2018-11-23 14:25:46 -05:00
James Agnew d0b194f9d7 Fix two test failures 2018-11-22 08:41:12 -05:00
James Agnew 2e030eebaa Make sure that reindexing happens correctly 2018-11-21 12:06:10 -05:00
Ken Stevens 03ebcafdf5
In-memory matcher (#1116)
* 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
2018-11-19 16:19:52 -05:00
James Agnew 58388bb614 Allow client to return methodoutcome instead of resdource for operation
call
2018-11-19 11:11:49 +01:00
James Agnew 67dbc802be Better detection of binary content in ResponseHighlighterInterceptor 2018-11-18 14:32:54 +01:00
James Agnew fad53c6669 Fix a test 2018-11-16 13:15:14 +01:00
James Agnew 4b099cf057 Fix #944 - NPE when using a custom resource class that has a @Block
child
2018-11-15 16:11:55 +01:00
James Agnew e75d2e1f10 Credit for #1117 2018-11-15 13:37:32 +01:00
James Agnew 84acafe3af Streamline expunge operation 2018-11-15 11:37:16 +01:00
jamesagnew 31bd2186ce Update changelog 2018-11-12 09:47:17 -05:00
jamesagnew cbc6f22329 Documentation updates 2018-11-12 09:21:09 -05:00
James Agnew 63af04a7b4 Prepare for 3.6.0 release 2018-11-12 05:40:55 -05:00
James Agnew cb00512522 Credit for #1047 2018-11-11 17:08:30 -05:00
James Agnew e5b04710ea Version bump a few dependencies 2018-11-11 17:06:40 -05:00
James Agnew f61df5c3fe Use FHIRPath expression parser for custom SP validation 2018-11-09 14:41:20 -05:00
James Agnew 82ec721c99 Allow client defined parameter style for _format param 2018-11-08 15:27:35 -05:00
James Agnew 7e2e53a354 Credit for #1071 2018-11-08 13:33:25 -05:00
James Agnew 9fee827398 Credit for #1103 2018-11-08 13:24:24 -05:00
jamesagnew 3121334bfd Merge branch 'master' of github.com:jamesagnew/hapi-fhir 2018-11-07 18:28:28 -05:00
jamesagnew ca9268970e Site updates 2018-11-07 18:27:08 -05:00
James Agnew 76cd3f6b47 Allow client assigned IDs to be purely numeric in JPA server if
configured to do so
2018-11-07 18:25:50 -05:00
jamesagnew 8796c1c5d2 Merge branch 'master' of github.com:jamesagnew/hapi-fhir 2018-11-04 14:01:17 -05:00
jamesagnew 053f4c3be7 Fix bad tag in file 2018-11-04 14:01:06 -05:00
James Agnew bc72093555 Add reindexing support based on table instead of column 2018-11-04 20:00:27 +01:00
James Agnew b1283791ca Allow JPA server to restore resources and link to them in a single
transaction
2018-11-02 16:45:21 -04:00
jamesagnew 3f6960d82b Add multithreaded migrator tool 2018-11-01 05:42:51 -04:00
jamesagnew 5849960a14 Add changelog 2018-10-31 05:52:15 -04:00
jamesagnew 31ef4c68e1 Merge branch 'philips-3.6.0' of github.com:jamesagnew/hapi-fhir into philips-3.6.0 2018-10-31 05:51:13 -04:00
jamesagnew 8955a9e54d Add threading to migrator 2018-10-31 05:50:50 -04:00
James Agnew 600f4585d1 Merge branch 'master' of github.com:jamesagnew/hapi-fhir 2018-10-30 15:23:00 -04:00
James Agnew 6b1ea5b989 Add tests for operation method binding 2018-10-30 15:22:39 -04:00
James Agnew 4cd86596f2
Merge branch 'master' into fhirterser-getvalues-enhancements 2018-10-29 09:55:34 -05:00
James Agnew b66e01ce65 Allow plain server @Operation methods to declare a wildcard so that any
opeeration invocations will be direected to them
2018-10-29 10:36:32 -04:00
James Agnew 794d9145e9 Move query count tests to consolidate them, and avoid an accidental
rewrite of existing indexes in some conditions
2018-10-24 17:54:58 -03:00
Diederik Muylwyk c669bba4bd FhirTerser.getValues(...) enhancements are completed. Added changelog entry. 2018-10-24 12:08:17 -04:00
James Agnew f601b212ad Performance enhancements to the JPA server and better retry logic in
$trigger-subscription
2018-10-20 14:47:37 -04:00
James Agnew aa177c1421 Authorize batch operation in AuthorizationInterceptor 2018-10-19 09:45:56 -04:00
James Agnew 4e252063b8 Allow transactions and batches with transaction permission in
AuthorizationInterceptor
2018-10-16 19:54:55 -04:00
James Agnew ba6df6d55a Handle unqualified ID in delete box for testpage overlay 2018-10-15 10:23:21 -04:00
James Agnew 9894980fe0 Changelog for #1093 2018-10-15 08:43:08 -04:00
James Agnew 16daa80afc Add changelog entry 2018-10-15 08:38:16 -04:00
James Agnew b44e96a5cd Merge branch 'philips-3.6.0' 2018-10-15 08:37:00 -04:00
James Agnew 8b46257423 Add warm cache module 2018-10-14 09:32:07 -04:00
James Agnew 8bd185acf2 Rename $retrigger-subscription to $trigger-subscription based on
Diederik's suggestion
2018-10-10 10:49:50 -04:00
James Agnew b265c0281b Expand search range when searching by date 2018-10-03 21:31:01 -04:00
James Agnew 12b23fbf23 Make JPA searches more efficient by prefetching a much smaller number of
resources
2018-10-01 21:36:10 -04:00
James Agnew 87f90fec47 Correctly handle password promnpt in CLI 2018-10-01 11:59:47 -04:00
James Agnew 62d6771814 Use a select count query for summary count searches in JPA server 2018-09-29 21:58:14 -04:00