* prepare to add $delete-expunge operation that will create a spring batch job
* Add operation
* Wire up jpa provider. Begin with failing test.
* Copy/paste bulk import job as a starting point.
FIXME with proposed design
* delete expunge job parameter validation with test
* implemented reader
stubbed processor, writer
* wip for master merge
* started implementing reader
* started implementing reader
* working with stubs
* happy path batch delete expunge is done
* Provider done but test not passing. Guessing batch infrastructure not running in that test.
* IT test works now
* add reader test
* Converted delete _expunge=true to use new batch job
* DeleteExpungeDaoTest passes
* Fix test
* Change batch size to integer
* rename search count to batch size
* Make delete expunge partition aware
* updated docs
* pre-review cleanup
* change log
* add partition id to SystemRequestDetails
* Make RequestPartitionId serializable
* Change delete expunge provider to use partition id instead of tenant name
* fix tests
* test pointcut gets called
* assert on pointcut calls
* Add resource type to STORAGE_PARTITION_SELECTED pointcut
* bump hapi-fhir version
move expunge provider parameters from JpaConstants to ProviderConstants
* bump hapi-fhir version
* copyrights
* restore deleteexpungeservice for mdm
* restore deleteexpungeservice for mdm
* fix test
* public constants
* convert instant to date
* Moved expunge constants to ProviderConstants
* final review
* disabling InMemoryResourceMatcherR5Test.testNowNextMinute() to see if I can get a clean test run
* fix tests
* fix tests
* fix tests
* fix tests
* review feedback
* review feedback
* review feedback
* review feedback
* review feedback
* review feedback
* improve logging
* bump version
* version bump
* recovering from failed merge
* unzip RequestListJson per Gary's suggestion. I didn't want to do it at first, but as usual Gary was right.
* fix serialization
* Start work on OpenAPI
* Fixes
* Work on OpenAPI
* Cleanup
* Cleanup
* More swagger work
* Build fix
* More work
* More work
* Add documentation
* Docs fixes
* Add changelog
* License updates
* Add API
* Cleanup
* Update hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/docs/server_plain/openapi.md
Co-authored-by: patrick-vachon-smilecdr <81274188+patrick-vachon-smilecdr@users.noreply.github.com>
* Work on scripts
* Add docs
* Compile fix
* Work on fixes
* Fix tests
* Test fix
* Test fix
* Build fix
* Tests
* Build fix
* Work on pipeline
* Version bump
* Test fix
* Version bump
* Test fix attempts
* Test fix
* Test fix
* Remove accidentally committed files
* Fixes
* Tets fixes
* Test fix
* Test fix
* Test fix
* Test fixes
* Test fixes
* Test fixes
* License header updates
* test fix
* Test fixes
* Test fix
* Test fixes
* Test fix
* Checkstyle bump
Co-authored-by: patrick-vachon-smilecdr <81274188+patrick-vachon-smilecdr@users.noreply.github.com>
* Start work on bul;k import
* Work on bulk import
* Have batch working
* Working
* Working
* More work
* More work on bulk export
* Address fixmes
* License header updates
* Test fixes
* License header updates
* Test fix
* Test fix
* Version bumps
* Work on config
* Test cleanup
* One more version bump
* Version bump
* CLeanup
* A few additions
* Test fixes
* Test fix
* Test fix
* Migration fix
* Test fix
* Test fix
* Search param service cleanup
* Work on collapsing search param
* Search param cleanup
* Work on build
* Test fix
* Test fixes
* Ongoing work
* Test fix
* Compile fix
* Test fixes
* Test fix
* Test fix
* License header updates
* Remove fixme
* Cleanup
* Cleanup
* Added UcumServiceUtil
* Removed ucum-essense.xml
* Added ucum service existing test cases passed
* Added more test cases
* Merge branch 'master' into ft-ucum-support
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
* Added back extractReferenceParamsAsQueryTokens
* Added changelog and migration script
* Added length for the string type
* Moved UCUM util to hapi-fhir-jpaserver-model
* Renamed UCUM support to Normalized Quantity Search Support
* Moved setNormalizedQuantitySearchNotSupported to AfterEach
* Changed migrate task to 530
* Removed comments
* Fixed in memory search issue and added more test cases
* Fixed the version order
* License header updates
* Updated based on review comments
* Updated the migration task based on review comments
* Fixed RES_TYPE with type String and length 100
* Changed myParamsQuantityNormalizedPopulated type to Boolean class
* Start work on validation rules interceptor
* Work on interceptor
* Add tests
* Work on validation interceptor
* Work on interceptor
* Test fix
* Documentation tweaks
* init rev
* fix build
* Tweaked the POM config settings and also added some dependency exclusions (commented out for now).
* More re-factoring of the CQL Unit Tests.
* Removed a LogMessages.html file and a minor Unit Test change.
* Unit Tests.
* added debug logging to troubleshoot the dao that has no name
* added debug logging to troubleshoot the dao that has no name
* workaround to get past null dao resourceName issue
* fix jsons to get test to pass. Test still fails with library id problem
* gitignore
* gitignore
* test passes! Woohoo!
* undo troubleshooting logging
* added timer and logging.
* added asserts and time multiple evaluations and measure the average
* readme
* adding explanations
* added more explanatory notes
* measure 2 patients
* move pom to use cqf snapshot
* roughed out cache
* roughed out cache
* Added code to VersionChangeCache class.
* added tests
* added polling test
* wrote init version
* wrote init version
* optimized versioncache
* worked on getting tests to pass
* redesigned interfaces
* all tests pass
* fixmes
* fixmes
* rename param
* Added Unit Tests.
* javadoc
* Fixed the 2-Patient Unit Test.
* More Unit Test work.
* make ResourceVersionMap immutable
* Fixed a Unit Test that was failing intermittently by adding a new way to refresh the cache.
* Use a new method called doRefreshAllCaches(0) to force a refresh and have all Listeners called immediately.
* Cleaned up IVersionChangeListenerRegistry interface to make methods more clear and resolved all Unit Tests.
* disabled tests
* disabled tests
* removed unused test method
* fixed refresh logic and added asserts
* moved cache so it can be used by searchparamregistry
* Updated the Cql Unit Tests to be properly configured for Dstu3 or R4.
* started rewriting SearchParamRegistryImpl to use new cache
added init method to listener interface
* added fixmes
* adding tests
* tests pass
* added tests
* Fixed the way CqlProviderFactory Autowires Beans so it can work with both Dstu3 and R4 contexts.
* moar tests
* fix test
* work tests
* reverting unneccessary refactors
* undo unneccessary import changes to reduce MR size
* undo unneccessary import changes to reduce MR size
* Unit Test fixes...more to come...
* add unregister
* fix tests
* Changed ResourceVersionCache to use a Map of Maps.
* searchparam test
* test passes
* resolved fixme
* fixmies
* strengthen test asserts
* More Unit Test changes and added some FIMXME items.
* changed from long to changeresult
* renamed VersionChange -> ResourceChange
* fixed delete bug
* organize imports
* fix test
* add update test
* add test reset function
* fix stack overflow
* fix startup race condition (might still be intermittent)
* found the problem. delete doesn't work because we can't look up the deleted resource to find out what its name is
* fixed regression
* abandoned idea of incrementally updating searchparam registry. Rebuilding every time--it doesn't change that often.
* fix test
* begin with failing test
* test passes
* fixmes and javadoc
* fix test
* fixme
* fix test
* whack-a-mole. Either subs pass or cql passes. Something's fishy with the FhirContext
* fix subscription test initialization
* fix method name
* Re-factored the CqlProvider Unit Tests.
* changed ResourceChange API
* add interface
* add interface
* fix test
* add schedule test
* add doc
* init rev
* FIXME
* modify FhirContext change
* change fhirContext.getResourceTypes to lazy load
* converted subscriptions
* converted subscriptions
* begin with failing test
* test passes
* fix test
* test coverage
* test coverage
* test coverage
* test coverage
* good coverage now
* pre-review cleanup. I think I found a bug.
* moved cache into listener entry
tests pass with fixmes
* fix test
* fix test
* fix test
* fixme
* FIXMEs
* merge cache and registry
* method reorg
* javadoc
* javadoc done. all FIXMEs resolved.
* change log
* changes needed by cdr
* spring config cleanup
* james feedback
* james feedback
* might not work. Try moving resourcechangeconfig into searchparam config
* merge ResourceChangeListenerRegistryConfig.java into SearchParamConfig
* fix test
* fix SubscriptionLoader
* fix SubscriptionLoader
* create ResourceVersionMap from resources
* added cache handle interface
* fix test
* javadoc
* fix test
* fix test
* James feedback: clone searchparametermap
* fix startup
* fix test
* fix test
* fix intermittent
* pre-review cleanup
* FIXME
* final FIXME yay!
* Address a couple of my own reviw comments
Co-authored-by: Kevin Dougan <kevin.dougan@smilecdr.com>
Co-authored-by: jamesagnew <jamesagnew@gmail.com>
* Add auto retry of transactions
* Experiment in Maven build
* Transaction autoretry
* Work on transaction retries
* Work on transaction retry
* Work on transaction retry
* Fix tests
* Avoid version conflicts
* Add changelog
* Resolve LGTM issue
* FIx transaction scope error
* Test fixes
* Test fix
* Test fixes
* Test fix
* Test fixes
* Work on junit
* Work on junit 5
* Work on junit 5
* Bump errorprone vcersion
* Work on tests
* Junit 5 tweaks
* Fixes
* Work on tests
* Work on junit5
* Work on tests
* Test fixes
* Work on junit5
* Test work
* Get junit5 working
* Test fix
* Work on tests
* WOrk on tests
* Work on tests
* fixes
* Compile fix
* One more tweak
* Compile fix
* Add changelog
* Fix compile error
* Compile fix
* Terser should create correct Enumeration on create
* Start work
* Work on subscriptions
* Work on seed bundles
* Bundle transmission
* Add changelog
* Test fix
* Fix LGTM warning
* Start working on FHIRPatch
* More work on fhirpatch
* Work on FHIR Patch
* Add patch
* Test fixes
* Test fixes
* Get tests fixed
* Chnage to trigger a build
* Compile fix
* Dependency version fixes
* Test fix
* COmpile fix
* Try to fix build
* Test fix attempt
* Another build attempt
* Another build tweak
* Cleanup
* Work on multitenancy
* Work on multitenancy
* Work on multitenancy
* Add columns
* Work on multitenancy
* Work on muiltitenancy
* Work on multitenancy
* Work on uniques
* Work on multitenancy
* Work on multitenancy
* Work on multitenancy
* More work on multitenancy
* Work on multitenancy
* Multitenancy work
* Work on multitenancy
* Work on multitenancy
* Work on multitenancy
* Work on multitenancy
* Work on docs
* Work on multitenancy
* Work on docs
* DOcs work
* Tenancy docs
* Work on docs
* Finish docs
* Add changelog
* Rename config
* Add migration tasks
* Fix typo
* Migration fix
* One more migration fix
* A couple more migration fixes
* Docs cleanup
* Work on docs
* Bump boot version
* Update hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/docs/server_jpa/partitioning.md
Co-Authored-By: Ken Stevens <khstevens@gmail.com>
* Update hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/docs/server_jpa/partitioning.md
Co-Authored-By: Ken Stevens <khstevens@gmail.com>
* Work on review comments
* Update hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/docs/server_jpa/partitioning.md
Co-Authored-By: Ken Stevens <khstevens@gmail.com>
* Update hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/docs/server_jpa/partitioning.md
Co-Authored-By: Ken Stevens <khstevens@gmail.com>
* Update hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/docs/server_jpa/partitioning.md
Co-Authored-By: Ken Stevens <khstevens@gmail.com>
* Update hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/docs/server_jpa/partitioning.md
Co-Authored-By: Ken Stevens <khstevens@gmail.com>
* Update hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/docs/server_jpa/partitioning.md
Co-Authored-By: Ken Stevens <khstevens@gmail.com>
* Update hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/docs/server_jpa/partitioning.md
Co-Authored-By: Ken Stevens <khstevens@gmail.com>
* Update hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/docs/server_jpa/partitioning.md
Co-Authored-By: Ken Stevens <khstevens@gmail.com>
* Update hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/docs/server_jpa/partitioning.md
Co-Authored-By: Ken Stevens <khstevens@gmail.com>
* Update hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/docs/server_jpa/partitioning.md
Co-Authored-By: Ken Stevens <khstevens@gmail.com>
* Update hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/docs/server_jpa/partitioning.md
Co-Authored-By: Ken Stevens <khstevens@gmail.com>
* Update hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/docs/server_jpa/partitioning.md
Co-Authored-By: Ken Stevens <khstevens@gmail.com>
* Update hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/docs/server_jpa/schema.md
Co-Authored-By: Ken Stevens <khstevens@gmail.com>
* Update hapi-fhir-jpaserver-base/src/main/java/ca/uhn/fhir/jpa/dao/index/IdHelperService.java
Co-Authored-By: Ken Stevens <khstevens@gmail.com>
* Address review comments
* Compile fx
* Test fixes
* One more bugfix
* Update operation name
* Add one more constant
* Roll back a change that was causing test failures
* Test fixes
Co-authored-by: Ken Stevens <khstevens@gmail.com>
* Validation enhancements
* Work on validation api reworking
* Keep working on validation API
* Keep working on new term API
* Work on validation api
* Ongoing work on validation
* Work on integrating validation
* Work on validation API
* Add to validation API
* Work on validation
* Work on API
* Work on validation
* Work on validation API
* Work on validation API
* Work on validation api
* Work on validation API
* Work on validation api
* Validation API changes
* Work on API
* More work on validationo API
* Work on validation API
* FIxes
* WOrk on validation api
* Work on validation API
* Tests passing!
* More cleanup
* More validation API changes
* Fix intermittent test failure
* Package reorg
* Validation API work
* Work on doocumentation
* Work on API
* More work on new validation API
* Fix errorprone-reported error
* Test fixes
* Documentation updates
* Documentation tweaks
* Work on API
* Bean name adjustments
* Build fixes
* Some test fixes
* Start work on refactoring how PIDs work
* Some test fixes
* Test fixes
* Test fixes
* Restore accidentally deleted line
* One more tweak
* Rework resource link extraction
* Test fix
* Split out transaction processor
* Updates
* Test fix
* Test fixes
* Test fixes
* Clean up LGTM warning
* Fix compile failure
* One more test fix
* Fix LGTM issue
* Add spot for metadata
* Add test logging
* Remove testing code
* More test logging
* Add some test logging
* Attempty to fix intermittent test failure
* Improve exception tracking
* Work on simplifying search param registry
* Fix compile
* Fix compile errors
* Fix two test bugs
* Version bumps
* FIx build issues
* Address a few Semmle issues
* Work on tests
* Some test fixes
* Test fix
* Fix deletions
* Test fix
* Fix intermittent test failure
* One more dependency bump
* Add some test logging
* Remove bad import
* Add some tests
* Test updates
* Add some logging
* Add more test logging
* Work on some test logging
* Fix compile error
* Work on codecov
* Work on codecov
* Remove test debug messages
* Start working on subscription processor
* Work on new scheduler
* Test fixes
* Scheduler refactoring
* Fix test failure
* One more test fix
* Updates to scheduler
* More scheduler work
* Tests now all passing
* Ongoing work on export
* Ongoing scheduler work
* Ongoing testing
* Work on export task
* Sync master
* Ongoing work
* Bump xml patch version
* Work on provider
* Work on bulk
* Work on export scheduler
* More test fies
* More test fixes
* Compile fix
* Reduce logging
* Improve logging
* Reuse bulk export jobs
* Export provider
* Improve logging in bulk export
* Work on bulk export service
* One more bugfix
* Ongoing work on Bulk Data
* Add changelog
* Ongoing work on core structures suport
* Ongoing work on this merge
* Ongoing work to clean up structures
* Credit for #1179
* Address compile issues
* Latest changes
* Work on parallel execution
* Work on getting tests passing
* Add H2 to migrator
* Test fix
* Start working on cascading deleets
* WOrk on cascading deletes
* Work on cascading deletes
* Enable cascading deletes
* Cascade deletes almost working
* FIx test
* Test fix
* Make IBundle list interface more flexible
* Make matchResourceLinks visible
* Make matchResourceLinks visible
* Pull in-memory matching functionality out of subscription module into dedicated classes in searchparam module
* Added more accessors to version independent resource classes
* improved forcedid matching (needs to be verified by James)
filter out nulls from HashMapProvider.searchAll() (hopefully no tests depend on this)
* add AnyComposition
* cleanup of Any classes
* create searchparam config so people can use that module without using subscriptions
* create searchparam config so people can use that module without using subscriptions
* fix broken test
* added derivedFrom
* renamed daoRegistry.getResourceDaoIfExists to getResourceDaoOrNull
also added method to add a new dao to the registry and retrieve registered types
* TokenParam.equals
* add error check to searchable hashmap resource provider
* added support for R4
* add successor to measure
* delete conflict hook
start with failing test
* test passes.
hook is called.
* added delete conflict hook
all delete conflict tests pass
* added javadoc
* Performance test
* test bad interceptor case
* typo
* rename criteria matcher
* added support for multiple topics
* fix method name
* add effective period
* Temporarily excluding StressTest from build to try to get Travis under time limit
* change log
* review feedback
* review feedback
* review feedback
* move expunge out
* move to prototype
* turns parameters into fields
* cleanup control flow
* moved transactions outside of loops
* add expungeeverything
* moved daos out
* add expungeThreadCount
* add expungeBatchSize
* added partition runner to run in separate threads
* all done. just need to consolidate test code.
* Moar tests
* consolidated pointcutlatch into hapi-fhir-jpaserver-model
* final cleanup
* update javadoc
* change log
* failing test
* added delete
also @Transactional
* remove unused parameter
* fix compile
* race condition
(cherry picked from commit e1940d2fb20838859a205f2b96c833b0ce9f05eb)
# Conflicts:
# hapi-fhir-jpaserver-base/src/test/java/ca/uhn/fhir/jpa/dao/expunge/PartitionRunnerTest.java
* ja feedback
* ja feedback
* fix bug in websocket subscription (It wasn't destroying the channel when there are no subscribers)
* add support for removing channel. Also synchronize removal (there was a race condition between sync and queue)
* keep deprecated method for backwards compatibility
* make websocket endpoint configurable
* make websocket context path configurable
* make websocket context path configurable
* trying mvn clean test instead of mvn clean install to see if the build goes faster
* that didn't work at all. reverting.
* change log
* subscription loader now only pulls active subscriptions
only allow websocket connections to subscriptions of type websocket
* Added a "flag for deletion" to ActiveSubscription in the SubscriptionRegistry to handle the race condition of a scheduled sync overlapping with a subscription creation. We could have used a package-scoped semaphore or a pre-remove FHIR read, but this seemed like the safest, simplest and most performant way to handle it.
* ActiveSubscriptionCacheTest
* WebsocketConnectionValidatorTest
* fix compile error in jpa example
* might keep this
* might keep this
* undoing start in interface
* fixed bug that only supported resources with ResourceType/id prefixes
* added standalone subscription support for Dstu2. untested.
* failing test
* fixed cannonicalsubscription.equals for email
* final cleanup
* fix bug in ResourceIndexSearchParamQuantity
Move transaction boundary around SubscriptionMatcherInterceptor so it can be overridden in subclass
Lots of CRLF changes from a mvn -P DIST
* FIXME
* Avoid paging links when offset is artificially set very high
* Ongoing fixes
* Adding logging and clean up transaction processing
* Add changelog
* More work on queries
* Keep working on getting tests passing
* More test fixes
* More work on tests
* More test works
* One more test attempt
* Ongoing fixes
* One more change
* FIxes to search algorithm
* Add changelog
* Clean up for review
* Fixed NPE in token matcher when system is not null and value is null
* test opposite (null system not null value)
* added null protection to all matchers
* Address review comments
* Address broken test
* Trying to resolve DB ordering issues
* Starting work on this
* Working on narrative templates
* Work on new narrative system
* Account for some failing tests due to refactoring of narrative mode
* Another test fix
* More test fixes
* One more test fix
* Work on searches
* Address review comments
Squashed commit adding subscription debug logger
* Work on subscription debug logger
* Add subscription logging interceptor
* Remove unneeded variables
* A bit of cleanup
* Tweak the output logs a bit
* Address review comments
* Fixed a bug in standalone subscription subscriber: It was adding REQUESTED subscriptions to the active subscription registry. (Only ACTIVE subscriptions should be added.)
* Start work on this
* Work on interceptors
* Attempt fix
* Avoid environment dependency
* Test fixes
* One more test fix
* One more build tweak
* Lots of cleanup
* A bit more cleanup
* Still more cleanup
* Some test fixes
* Add legacy methods temporarily
* Don't auto-scan interceptor beans
* One more test fix
* rsolve merge conflicts
* Address review comments