Commit Graph

78 Commits

Author SHA1 Message Date
Ken Stevens 6baee4dc3f
Standalone subscription (#1125) 2018-11-30 17:19:16 -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 f5d567cd00 Work on migrator 2018-09-08 03:30:35 +08:00
patrick-werner 9498247082 Allows the Cache-Control Header in CORS header for jpa-example-server & CLI 2018-06-04 16:12:31 +02:00
jamesagnew abcf7852b1 Tests pasing locally 2018-05-31 09:10:34 -04:00
James Agnew 2f2900e837 Improve indexing on JPA server in anticipation of a new indexing
strategy in HAPI FHIR 3.5.0
2018-05-23 08:09:57 -04:00
James Agnew f1ba0016b2 Improve the error message thrown by JPA server 2018-05-11 17:03:48 -04:00
jamesagnew 83b1cf5b9f Add credit for #798 and fix broken test 2018-03-15 07:30:32 -04:00
Jiajing LIANG c3841d1bcc add demo configuration 2017-12-21 16:43:46 +01:00
jamesagnew 4ad5033b13 Add tests 2017-12-13 07:05:30 -05:00
James Agnew bdf734fc3c Examples cleanup 2017-12-08 16:33:45 -05:00
James Agnew 49f4ac4fc5
Merge branch 'master' into analyzer-def-using-search-mapping 2017-11-13 13:32:40 -05:00
Jiajing LIANG 86fb1de3ae rename file 2017-10-09 18:34:49 +02:00
Jiajing LIANG 65c3a316f2 move out the analysers definitions from entity classes 2017-10-09 18:34:03 +02:00
Patrick Werner 8370a22ce7 fixed CORS PreFlight 2017-08-24 16:01:19 +02:00
Rob Hausam e4539c0a0f Add imports for org.slf4j.Logger and org.slf4j.LoggerFactory. 2017-08-18 16:13:52 -05:00
James be5c5ebecd Merge in HAPI 3.0.0 working branch!
Squashed commit of the following:

commit 12f89a423a
Author: James <jamesagnew@gmail.com>
Date:   Sun Aug 13 14:38:51 2017 -0400

    Minimize validation resources

commit f6868cce5c
Merge: 3b80779fd3 1e158311d8
Author: James <jamesagnew@gmail.com>
Date:   Sun Aug 13 14:05:34 2017 -0400

    Forward port fix for #710

    Merge branch 'master' into hapi3_refactor

commit 3b80779fd3
Merge: 1f534985e8 356d9acaf7
Author: James <jamesagnew@gmail.com>
Date:   Sun Aug 13 12:31:09 2017 -0400

    Forward port #705, #708, and #710

    Merge branch 'master' into hapi3_refactor

commit 1f534985e8
Merge: 7c39a47852 dedd3d635b
Author: James <jamesagnew@gmail.com>
Date:   Sun Aug 13 10:52:59 2017 -0400

    Forward port #695

    Merge branch 'master' into hapi3_refactor

commit 7c39a47852
Merge: e0ffb84d21 6efafe62f1
Author: James <jamesagnew@gmail.com>
Date:   Sun Aug 13 09:53:17 2017 -0400

    Forward port #688

    Merge branch 'master' into hapi3_refactor

commit e0ffb84d21
Merge: 52388c11c1 d19b00ff09
Author: James <jamesagnew@gmail.com>
Date:   Sat Aug 12 14:59:46 2017 -0400

    Merge branch 'master' into hapi3_refactor

commit 52388c11c1
Author: James <jamesagnew@gmail.com>
Date:   Sat Aug 12 06:21:46 2017 -0400

    Cleanup

commit 209752cd63
Author: James <jamesagnew@gmail.com>
Date:   Thu Aug 10 11:18:19 2017 -0400

    Fix tests

commit 4543408dc8
Author: James <jamesagnew@gmail.com>
Date:   Sat Aug 5 06:55:50 2017 -0400

    Fix a potential deadlock

commit ee360f5376
Author: James <jamesagnew@gmail.com>
Date:   Sat Aug 5 06:22:06 2017 -0400

    Add R4 code to CLI

commit 1a95ba3b65
Author: James Agnew <jamesagnew@gmail.com>
Date:   Thu Aug 3 06:14:01 2017 -0400

    More cleanup

commit f0d8802681
Author: James <jamesagnew@gmail.com>
Date:   Wed Aug 2 11:27:43 2017 -0400

    Tests are working!

commit a4cbda357e
Author: James Agnew <jamesagnew@gmail.com>
Date:   Wed Aug 2 10:42:04 2017 -0400

    Connection handling cleanup for new tests

commit 0e2cecfbd0
Author: James Agnew <jamesagnew@gmail.com>
Date:   Wed Aug 2 10:16:28 2017 -0400

    Clean up R4 JPA tests

commit 40317a650d
Author: James <jamesagnew@gmail.com>
Date:   Wed Aug 2 09:12:38 2017 -0400

    Work on R4 for JPA server

commit e7f8f8c30d
Author: James <jamesagnew@gmail.com>
Date:   Tue Aug 1 20:43:47 2017 -0400

    More work on porting tests

commit 43c9003258
Author: James <jamesagnew@gmail.com>
Date:   Tue Aug 1 07:09:29 2017 -0400

    Work on porting DSTU1 tests

commit 602857f1e2
Author: James Agnew <jamesagnew@gmail.com>
Date:   Mon Jul 31 22:34:08 2017 -0400

    More work on bring unit tests up to date

commit e326a7b0cd
Author: James Agnew <jamesagnew@gmail.com>
Date:   Mon Jul 31 17:36:38 2017 -0400

    Credit for #686 and forward port the fix to R4 validator

commit 96543c3992
Merge: 3fb75aa61a 9901b802c4
Author: James Agnew <jamesagnew@gmail.com>
Date:   Mon Jul 31 17:12:33 2017 -0400

    Merge branch 'master' into hapi3_refactor

commit 3fb75aa61a
Author: James <jamesagnew@gmail.com>
Date:   Mon Jul 31 15:21:30 2017 -0400

    More work on cleanup

commit b02fbb6804
Author: James Agnew <jamesagnew@gmail.com>
Date:   Sun Jul 30 22:11:07 2017 -0400

    Work on porting STU1 tests

commit 1ae37b0db3
Author: James Agnew <jamesagnew@gmail.com>
Date:   Sun Jul 30 20:56:10 2017 -0400

    Try to get coverage report working

commit 72b88849b3
Author: James Agnew <jamesagnew@gmail.com>
Date:   Sun Jul 30 20:27:02 2017 -0400

    Fix android tests

commit e5f6c35aea
Author: James <jamesagnew@gmail.com>
Date:   Sun Jul 30 19:31:18 2017 -0400

    More work on getting legacy code cleaned up

commit 0b513b0845
Author: James <jamesagnew@gmail.com>
Date:   Sun Jul 30 18:41:13 2017 -0400

    Continue work on removing deprecated API

commit defea69aa3
Author: James Agnew <jamesagnew@gmail.com>
Date:   Sun Jul 30 17:10:01 2017 -0400

    More cleanup of legacy code

commit 9ae7295705
Author: James <jamesagnew@gmail.com>
Date:   Sun Jul 30 07:11:45 2017 -0400

    More cleanup of legacy code

commit ebd3eeb5ee
Author: James Agnew <jamesagnew@gmail.com>
Date:   Sun Jul 30 06:43:25 2017 -0400

    More work on removing legacy code

commit 92224c2532
Author: James <jamesagnew@gmail.com>
Date:   Sat Jul 29 18:44:06 2017 -0400

    Remove DSTU1 Bundle

commit c52cacf71b
Author: James <jamesagnew@gmail.com>
Date:   Sat Jul 29 14:27:42 2017 -0400

    Now compiling

commit b405e51773
Merge: c3ddf04e25 cb2cea54d7
Author: James Agnew <jamesagnew@gmail.com>
Date:   Fri Jul 28 06:21:02 2017 -0400

    Merge branch 'master' into hapi3_refactor

commit c3ddf04e25
Author: James <jamesagnew@gmail.com>
Date:   Thu Jul 27 11:06:06 2017 -0400

    Sync R4 releases in

commit b13333c3c0
Author: James <jamesagnew@gmail.com>
Date:   Fri Jul 14 05:52:33 2017 -0400

    JPA server is now able to handle placeholder IDs (e.g. urn:uuid:00....000) being used in Bundle.entry.request.url as a part of the conditional URL within transactions.

commit 2e60ff7521
Author: James Agnew <jamesagnew@gmail.com>
Date:   Thu Jul 13 20:02:46 2017 -0400

    Fix imports

commit a92ace2e0d
Merge: 3196db96d1 1a6b3ea867
Author: James Agnew <jamesagnew@gmail.com>
Date:   Thu Jul 13 12:02:27 2017 -0400

    Merge branch 'master' into hapi3_refactor

commit 3196db96d1
Author: James Agnew <jamesagnew@gmail.com>
Date:   Thu Jul 13 11:48:10 2017 -0400

    Don't add false paging link to request

commit bd4e1d3388
Author: James <jamesagnew@gmail.com>
Date:   Sun Jul 9 21:32:16 2017 -0400

    Finally building correctly!

commit 6464ce9304
Author: James <jamesagnew@gmail.com>
Date:   Sun Jul 9 16:38:28 2017 -0400

    Work on refactor

commit 0059f2e48e
Author: James <jamesagnew@gmail.com>
Date:   Sat Jul 8 07:16:20 2017 -0400

    Keep working on refactor

commit 6c2e87e8cc
Author: James Agnew <jamesagnew@gmail.com>
Date:   Thu Jul 6 22:35:13 2017 -0400

    Lots of work on refactor

commit 11cab97504
Merge: 34ec6b8807 6c47bd4c51
Author: James Agnew <jamesagnew@gmail.com>
Date:   Thu Jul 6 21:43:57 2017 -0400

    Merge branch 'master' into hapi3_refactor

commit 34ec6b8807
Merge: f8e647511b c520e60ac1
Author: James Agnew <jamesagnew@gmail.com>
Date:   Thu Jul 6 21:43:49 2017 -0400

    Merge branch 'hapi3_refactor' of github.com:jamesagnew/hapi-fhir into hapi3_refactor

commit f8e647511b
Author: James Agnew <jamesagnew@gmail.com>
Date:   Thu Jul 6 18:46:55 2017 -0400

    Work on hapi3 changes

commit c520e60ac1
Author: James <jamesagnew@gmail.com>
Date:   Wed Jul 5 08:08:40 2017 -0400

    Keep working on refactor

commit f1d2ee9092
Author: James Agnew <jamesagnew@gmail.com>
Date:   Mon Jul 3 22:10:59 2017 -0400

    Continue refactor for HAPI 3

commit 9281ccafc3
Merge: ea1264cd8e 294d080bd3
Author: James Agnew <jamesagnew@gmail.com>
Date:   Mon Jul 3 20:34:16 2017 -0400

    Merge branch 'master' into hapi3_refactor

commit ea1264cd8e
Author: James <jamesagnew@gmail.com>
Date:   Wed Jun 28 10:26:01 2017 -0400

    Continue work on refactor

commit fbe2f98a02
Merge: b2bef47100 0a4dcc32ec
Author: James <jamesagnew@gmail.com>
Date:   Wed Jun 28 06:21:22 2017 -0400

    Merge branch 'master' into hapi3_refactor

commit b2bef47100
Author: James <jamesagnew@gmail.com>
Date:   Tue Jun 27 21:13:23 2017 -0400

    Work on refactor

commit 8f76e4e463
Author: James Agnew <jamesagnew@gmail.com>
Date:   Sun Jun 25 21:55:35 2017 -0400

    Lots of work on refactoring
2017-08-13 14:39:47 -04:00
Jeff Chung ad3d5489ea Fixed FHIR subscriptions with criteria previously limited to 10, added fhir criteria validation before create/update, added dstu2 configurations 2017-06-16 14:25:57 -07:00
James b71ba86a3a Update copyright per plugin 2017-05-21 16:37:27 -04:00
James a13247ad4b Updates for #646
Squashed commit of the following:

commit 9d6d5e92dabb75c4eb185b061d20f487b8856795
Author: James <jamesagnew@gmail.com>
Date:   Sun May 21 15:27:26 2017 -0400

    Get subscriptions working

commit 6bccdd7594f0a4f802212e11cc823f7a92dd9a5c
Author: James Agnew <jamesagnew@gmail.com>
Date:   Sun May 21 14:37:40 2017 -0400

    Work on subscription

commit 129f4c9d0d1e6c8fa56dbc5cf78a34c1d6659705
Author: James <jamesagnew@gmail.com>
Date:   Sat May 20 19:58:11 2017 -0400

    Work on merging subscription
2017-05-21 15:28:08 -04:00
Jeff Chung 663125fe94 Resthook subscription implementation, event driven websocket subscription implementation, Tminus subscription support, notification on delete 2017-05-09 15:08:59 -07:00
James fa2950dacb Fix tests for expiring search results 2017-04-22 08:50:51 -04:00
James Agnew 2c9a6e65e7 Fix #534: Add setting for logical references to DAOConfig
Merge branch 'master' into issue534
2017-03-30 03:21:50 +08:00
James Agnew 7e721dd8f0 Merge branch 'stu3-hapi-fhir-jpaserver-example' of https://github.com/joelsch/hapi-fhir into joelsch-stu3-hapi-fhir-jpaserver-example 2017-03-29 15:30:42 +08:00
elnin0815 ece4c0d39d Added Prefer Header for CORS preflight 2017-03-20 11:20:09 +01:00
James Agnew 5b7abf15dc Properly purge subscriptions 2017-01-11 18:19:46 -05:00
James ee63bbea74 Fix #516 - Handle STU3 invalid enum values with an appropriate exception 2016-12-10 14:14:22 -05:00
James 233e979963 Fix build 2016-11-22 06:33:20 -05:00
James Agnew 888f42a032 Introduce new CORS interceptor and switch examples to use it 2016-11-21 18:30:51 +01:00
James Agnew 285b8aa1dd Document switch in CORS filter 2016-11-21 14:12:04 +01:00
Joel Schneider (NMDP) 39e36edbb5 modify hapi-fhir-jpaserver-example to run in STU3 mode 2016-09-20 15:04:49 -05:00
jamesagnew 7dbd5a21ca Fix tests 2016-07-24 09:20:54 -04:00
James Agnew 94128e2e6d Fix tests 2016-07-18 13:50:08 -04:00
James Agnew f6601cc347 Add example for terminology uiploading 2016-07-13 09:40:50 -04:00
James Agnew 88157fe1a6 Test data uploader fixes 2016-04-08 16:31:42 -04:00
jamesagnew 232afee955 Improved error messages for #305 2016-03-11 07:56:00 -05:00
James Agnew 3bfcb57783 Page JPA search results to the database 2016-03-07 07:23:44 -05:00
jamesagnew 32daeb6f58 Switch DSTU2.1 to DSTU3 per FMB's decision 2016-02-01 08:55:58 -05:00
James Agnew c8cf957e7f Move CLI App 2016-01-28 11:36:59 -05:00
James Agnew 7ed14d538a Remove warning 2016-01-24 14:53:40 -05:00
James Agnew d290110126 Fix validation 2016-01-15 18:02:20 -05:00
James Agnew 589059256f Correct issues uncovered during connectathon 2016-01-11 07:42:13 -05:00
jamesagnew 9c712f2f0e Fix example 2016-01-08 06:47:15 -05:00
jamesagnew e7adebe8d7 Fix #278 - Add alternate configuration as suggested by Karl Davis. Thanks for the contribution! 2016-01-07 21:37:04 -05:00
Karl M. Davis 95248c44cf Resolves #278: Update JpaServerDemo to also support DSTU 2.1. 2016-01-07 10:01:35 -05:00
James Agnew 9c37c3b2a0 Use ResponseHighlighterInterceptor in the JPA example project 2015-12-16 12:03:58 -05:00
jamesagnew d47e0e5e77 Add DSTU2.1 resources 2015-11-29 11:43:09 -05:00
James Agnew 43c1212840 Revamp the interceptor framework for JPA 2015-10-27 18:34:27 -04:00
jamesagnew 938a251ae9 Cleanup tests for java config in JPA 2015-10-19 20:19:40 -04:00
jamesagnew 9c0f6f993d Finish converting Spring from XML to Java config 2015-10-17 09:39:27 -04:00