* check for valid resource type
* add test and refactor test class
* refactor auto get method name
* introduce parameter object to patient everything methods
* introduce parameter object to patient everything methods
* change record to class
* add hapi error code
* refactor
* refactor
* change code num
* refactor getmethodname to util method
* add docs and rename fields to conform to fhir standard
* typo
* version bump
* resolving merge conflicts.
* Bumping version
* Bumping version to 6.2.0-PRE5-SNAPSHOT
* Encapsulating parameters in a PatientEverythingParameters object.
Co-authored-by: Justin_Dar <justin.dar@smilecdr.com>
Co-authored-by: peartree <etienne.poirier@smilecdr.com>
* consolidated Batch2Helper
check status in assert before running maintenance
ignore illegal job instance state transition
* Fix mock tests
* rename intermittent to IT
* extra logging
* into to debug
* review feedback
* added more logging
* removed fasttracking. replaced with support for triggering a maintenance run
* fixed tests
* fixed tests
* add asserts
* licenses
* snakeyaml cve version bump
* data migration
* merge origin/master
* merge origin/master
* fix test (support triggering jobs when scheduling is disabled)
* add counter to abort potential infinite loop after 100000 calls
* compile error
* move multipartition mdm tests out to a separate IT
update mongo job instance creation with new logic
* fix race condition
* back out infinite loop circuit breaker. it breaks terminology tests that depend on this loop running > 100000 times.
* fix test (triggered job key was missing group)
* revert saveAllDeferred
* Almost finished getting JpaPersistenceR4IT to pass
* testBulkExportDeleteForOnGoingJob still not passing
* testBulkExportDeleteForOnGoingJob still not passing
* Removed method `fetchInstanceAndMarkInProgress`. It was clobbering other state transitions like CANCELLED.
* undo rename of cancelled to cancelRequested. Thymeleaf depends on the old name
* ExpandResourcesStep requires a synchronous search
* Tests are passing but man testBulkExportDeleteForOnGoingJob is a flakey test
* fix test
* fix test
* change log
* allow ERRORED -> FAILED state transition
* add a timeout to saveAllDeferred()
* improve error message on timeout message
* fix tests
* added more logging
* added more logging
* fix semaphore issue
* Msg.code
* fix test
* javadoc
* switch all batch loggers to batch troubleshooting log
* add unit test, improve logging
* move TimeoutManager to its own class. Add tests.
* fix tests
* comment cleanup
* test race condition
* review feedback
Co-authored-by: Ken Stevens <ken@smilecdr.com>
* Added failing test, and the methods that are necessary to not break the build
* Implemented solution to cancel jobs via delete request for poll status
* change log added
* change log name change to pass test
* Changed implementation to work with existing infrastructure
* code review changes
Co-authored-by: Steven Li <steven@smilecdr.com>
This PR changes the way HAPI is built by Azure pipelines. Instead of a FIFO queue for all tests in the project, the entire project is quickly built and cached without testing, then the individual modules are built and tested in separate jobs which can be run in parallel from each other. Each of these jobs then uploads the test coverage for that module as a build artifact. Finally, a last stage downloads all the archived tests results and aggregates them using jacoco so they can be uploaded to codecov.
This has two key benefits:
If there is a failing test because of an intermittent, the individual failing module can be re-run instead of having to re-run the whole project build.
The build time is decreased substantially (90min -> 45min).
This is the first run at this, I will be iterating to further reduce build times going forward.
* Bump for CVE (#3856)
* Bump for CVE
* Bump spring-data version
* Fix compile
* Cut over to spring bom
* Bump to RC1
* remove RC
* do not contrain reindex for common SP updates (#3876)
* only fast-track jobs with exactly one chunk (#3879)
* Fix illegalstateexception when an exception is thrown during stream response (#3882)
* Finish up changelog, minor refactor
* reset buffer only
* Hack for some replacements
* Failure handling
* wip
* Fixed the issue (#3845)
* Fixed the issue
* Changelog modification
* Changelog modification
* Implemented seventh character extended code and the corresponding dis… (#3709)
* Implemented seventh character extended code and the corresponding display
* Modifications
* Changes on previous test according to modifications made in ICD10-CM XML file
* Subscription sending delete events being skipped (#3888)
* fixed bug and added test
* refactor
* Update for CVE (#3895)
* updated pointcuts to work as intended (#3903)
* updated pointcuts to work as intended
* added changelog
* review fixes
Co-authored-by: leif stawnyczy <leifstawnyczy@leifs-MacBook-Pro.local>
* 3904 during $delete expunge job hibernate search indexed documents are left orphaned (#3905)
* Add test and implementation
* Add changelog
* 3899 code in limits (#3901)
* Add implementation, changelog, test
* Update hapi-fhir-jpaserver-test-utilities/src/test/java/ca/uhn/fhir/jpa/provider/r4/ResourceProviderR4Test.java
Co-authored-by: Ken Stevens <khstevens@gmail.com>
Co-authored-by: Ken Stevens <khstevens@gmail.com>
* 3884 overlapping searchparameter undetected rel 6 1 (#3909)
* Applying all changes from previous dev branch to current one pointing to rel_6_1
* Fixing merge conflict related to Msg.code value.
* Fixing Msg.code value.
* Making checkstyle happy.
* Making sure that all tests are passing.
* Passing all tests after fixing Msg.code
* Passing all tests.
Co-authored-by: peartree <etienne.poirier@smilecdr.com>
* 3745 - fixed NPE for bundle with duplicate conditional create resourc… (#3746)
* 3745 - fixed NPE for bundle with duplicate conditional create resources and a conditional delete
* created unit test for skip of delete operation while processing duplicating create entries
* moved unit test to FhirSystemDaoR4Test
* 3379 mdm fixes (#3906)
* added MdmLinkCreateSvcimplTest
* fixed creating mdm-link not setting the resource type correctly
* fixed a bug where ResourcePersistenceId was being duplicated instead of passed on
* Update hapi-fhir-jpaserver-mdm/src/test/java/ca/uhn/fhir/jpa/mdm/svc/MdmLinkCreateSvcImplTest.java
Change order of tests such that assertEquals takes expected value then actual value
Co-authored-by: jdar8 <69840459+jdar8@users.noreply.github.com>
* added changelog, also changed a setup function in test to beforeeach
Co-authored-by: Long Ma <long@smilecdr.com>
Co-authored-by: jdar8 <69840459+jdar8@users.noreply.github.com>
* Fix to the issue (#3855)
* Fix to the issue
* Progress
* fixed the issue
* Addressing suggestions
* add response status code to MethodOutcome
* Addressing suggestions
Co-authored-by: Ken Stevens <ken@smilecdr.com>
* Fix for caching appearing broken in batch2 for bulkexport jobs (#3912)
* Respect caching in bullk export, fix bug with completed date on empty jobs
* add changelog
* Add impl
* Add breaking test
* Complete failing test
* more broken tests
* Fix more tests'
* Fix paging bug
* Fix another brittle test
* 3915 do not collapse rules with filters (#3916)
* do not attempt to merge compartment permissions with filters
* changelog
* Rename to IT for concurrency problems
Co-authored-by: Tadgh <garygrantgraham@gmail.com>
* Version bump
* fix $mdm-submit output (#3917)
Co-authored-by: Ken Stevens <ken@smilecdr.com>
* Gl3407 bundle offset size (#3918)
* begin with failing test
* fixed
* change log
* rollback default count change and corresponding comments
Co-authored-by: Ken Stevens <ken@smilecdr.com>
* Offset interceptor now only works for external calls
* Initialize some beans (esp interceptors) later in the boot process so they don't slow down startup.
* do not reindex searchparam jobs on startup
* Fix oracle non-enterprise attempting online index add (#3925)
* 3922 delete expunge large dataset (#3923)
* lower batchsize of delete requests so that we do not get sql exceptions
* blah
* fix test
* updated tests to not fail
Co-authored-by: leif stawnyczy <leifstawnyczy@leifs-MacBook-Pro.local>
* add index
* Fix up colun grab
* Bump Version for non-breaking purposes
* Fix broken test
* bump error code
* revert internal logic
* Revert offset mode change
* wip
* Revert fix for null/system request details checks for reindex purposes
* Fix bug and add test for SP Validating Interceptor (#3930)
* wip
* Fix uptests
* Fix index online test
* Fix SP validating interceptor logic
Co-authored-by: JasonRoberts-smile <85363818+JasonRoberts-smile@users.noreply.github.com>
Co-authored-by: Qingyixia <106992634+Qingyixia@users.noreply.github.com>
Co-authored-by: TipzCM <leif.stawnyczy@gmail.com>
Co-authored-by: leif stawnyczy <leifstawnyczy@leifs-MacBook-Pro.local>
Co-authored-by: Ken Stevens <khstevens@gmail.com>
Co-authored-by: Etienne Poirier <33007955+epeartree@users.noreply.github.com>
Co-authored-by: peartree <etienne.poirier@smilecdr.com>
Co-authored-by: kateryna-mironova <107507153+kateryna-mironova@users.noreply.github.com>
Co-authored-by: longma1 <32119004+longma1@users.noreply.github.com>
Co-authored-by: Long Ma <long@smilecdr.com>
Co-authored-by: jdar8 <69840459+jdar8@users.noreply.github.com>
Co-authored-by: Ken Stevens <ken@smilecdr.com>
* wip functional
TODO
- add tests
- look at adding TLS to other RestfulClientFactory classes (FhirwebRestfulClientFactory, JaxRsRestfulClientFactory, OkHttpRestfulClientFactory)
* move BaseRestServerHelper to Hapi-Fhir
* - add TLS support for JaxRsClient and OkHttpClient
- add tests
* - to use resources and files
* - ci fixes
* - ci fixes
* - ci fixes
* - ci fixes
* - refactor and tests
* - ci fixes
* - tests
* - tests
* - tests / refactor
* - clean up
* - changelog
* - remove OkHttpClient HTTPS support
* - ci
* - Ken's code review changes
* - Ken's code review: method renaming
* - Ken's code review: javadoc
* - Code coverage
* - Create HapiFhirCliRestfulClientFactory to encapsulate new HTTPS functionality. Remove modifications to the FhirContext API.
* - version bump
* - fix unable to bind port errors by using Jetty functionality to assign random ports
* Revert "- version bump"
This reverts commit cfce82576a.
* - version bump
Co-authored-by: nathaniel.doef <nathaniel.doef@smilecdr.com>
* added a paging api to ijobcoordinator
* adding changelog
* moved location
* added a comment
* Added Sort parameter to JobInstanceFetchRequest
* Bump HAPI-FHIR version
* Updated JPA api to include sort
* Add changelog
Co-authored-by: leif stawnyczy <leifstawnyczy@leifs-MacBook-Pro.local>
Co-authored-by: David Chen <david.chen@smilecdr.com>
* small refactor
* refactored MDM module to use iterface IMDMLink, refactored MDMLink to use ResourcePersistenceId wrapper rather than pid as long
* removing IJpaIdHelperService and refactor IIdHelperService
* fixed bugs for GoldenResourceMergerSvcImpl and FindCandidateByExampleSvc
* changes to IIdHelperService
* move MdmSearchParamSvc and MdmSubmitSvcImpl out of jpaserver-mdm
* moved JpaResourceLoader to hapi-fhir-storage, renamed to ResourceLoaderImpl
* added error Msg code, removed Fixme
* fixed error code, update last used code in Msg.java to 2083
* fixed accidentally throwing unprocessableentityException
* added MdmLinkExpandSvc interface
* build adding license to files
* MdmLinkdao refactor
* fix build
* mdm config refactoring
* MdmStorageInterceptor and IExpungeEverythingService changes
* fix bug where a pid is converted to ResourcePersistenceId twice
* minor refactor to IMdmLink, change id from long to ResourcePersistenceId
* changed PageImpl to Page interface
* refactor MdmSearchExpandingInterceptor to use interface
* fixed missed refactor where the resourcePersistenceId is still assumed to be long
* resolve test failures resulting from merging master
* changed conflicting exception code
* fixed issue with bulk export wrapping resourcePid inside resourcePersistenceId
* added IMdmLinkImpl to MdmSettings
* fixed missing import in IdHelperService from merging master
* fixed MdmLinkDaoSvcTest importing wrong MdmLinkTuple
* restored JpaIdHelperService and added changelog
* modified msg.code to non-duplicate
* code review changes
* refactored some bulk export batch 2 files to accomodate change in beans being exported
* fixed jpa bulk export failing tests
* removed duplicate bean declaration of MdmLinkImplFactory in BaseMdmR4Test
* merged master and bump version to pre25
* extracted expungeEverythingByType to IExpungeEverythingService
* fixed wiring issue
* messed up merging pom with master
* fixed broken changelog
Co-authored-by: Long Ma <long@smilecdr.com>
Co-authored-by: Samuel Lee <samuel.lee@smilecdr.com>
Co-authored-by: Ken Stevens <ken@smilecdr.com>
* added a paging api to ijobcoordinator
* adding changelog
* moved location
* added a comment
* blah
Co-authored-by: leif stawnyczy <leifstawnyczy@leifs-MacBook-Pro.local>
* Revert "test passes with a lot of copy/paste"
This reverts commit f2f28e22ef.
* make translateOutcomeToResults public
* double RAM
* final consolidation. move shared code out to static utility methods
* revert azure memory
disable jacoco on jpaserver test prokect
* bump hapi version
* rebump hapi to PRE-21
* licenses
Co-authored-by: Ken Stevens <ken@smilecdr.com>
* Creating an exception to be raised when searching for _tag/_provide/_security where the associated tokenParam is not properly formatted.
* Adding changelogs.
* Adding integration test.
* Rewording ChangeLog.
* Rewording exception message.
* Addressing code review comments.
* Addressing code review comments.
* Bumping hapi-fhir version to 6.1.0-PRE20-SNAPSHOT
* Modifications to pass checkstyle.
Co-authored-by: peartree <etienne.poirier@smilecdr.com>
* Not the final version
* Support PATCH operation
* minor modifications
* minor modifications
* Final version
* Final version
* Version Bump
* bump version again
Co-authored-by: Ken Stevens <ken@smilecdr.com>
* base batch2 bulk export steps - unimplemented
* added the basic steps
* adding tests
* we have added the tests
* added tests for bulk export stages
* implementing jpa
* 3531 adding the jpabukexportprocessorimplementation
* 3531 first step for mongo bulk export
* jpa stuff updated
* 3531 hapi fhir stuff
* trying to fix up tests
* fixing test
* fixed most tests in batch export
* deprecate
* need some more guidance here
* fixing some tests
* some steps taken
* blah
* stashing
* test
* fixing tests round 1
* many a changes
* updating version
* small updates
* merging in mster again
* fixing up serialization
* added the permission checkers
* cleanup and sonarkube crap
* some more tests
* updating adding tests
* crimes
* blah
* updatingmsg number again
* removal of commented code
* cleanup
* merge confflicts
* fixing msg
* review fixes round 1
* more review fixes
* merging in master
* fixing poms
* review points
* test fix
* test fix
* fix test race condition
* truncate error
* add stack trace to error
* rename to IT
* fix race condition in test
* finally fixed race condition in test. this time I'm optimistic hapi ci will finally pass
* fix mock test. not a fan of mock tests like this.
* any job definition with a reducer step must be gated.
* fixed common batch bean wiring
* fix test
* lazy init ResponseTerminologyTranslationSvc
* change the way we lazy init ResponseTerminologyTranslationSvc
* change the way we lazy init ResponseTerminologyTranslationSvc (for the third time. this is super tricky!)
* disabling testGoldenResourceWithCircularReferenceCanBeCleared for now
Co-authored-by: leif stawnyczy <leifstawnyczy@leifs-MacBook-Pro.local>
Co-authored-by: Ken Stevens <ken@smilecdr.com>
* 3770 fixing error handling
* some updates to error handling
* changelog
* blah
* bumping version
* fix test failures
* code review points
* review points
* add retry test
* assert counts in the test
* test fixes
Co-authored-by: leif stawnyczy <leifstawnyczy@leifs-MacBook-Pro.local>
Co-authored-by: Ken Stevens <ken@smilecdr.com>
* added failing test for Map Response Terminology for bulk export
* moved logic for terminology translation out of the interceptor to svc, added translation logic to bulk export file writer, added more tests
* added changelog
* Wip refactor dependency fix
* wip terminology translation code refactor
* terminology translation code refactor
* refactor clean up
* Remove circular dependency
* Update hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/changelog/6_1_0/3719-enable-map-response-terminology-for-bulk-export.yaml
* bump version of hapi to 6.1.0-PRE7-SNAPSHOT
* doc update
* fix issue when search param registry doesn't contain search param for the resource type
* fix beans
* hapi version bump from PRE7 to PRE10
* doc update
* add ResponseTerminologyTranslationSvc as a constructor variable to the interceptor
* fixed ResponseTerminologyInterceptorLoaderTest, added IT for cdr side
* version bump to PRE13
* removed unused import
Co-authored-by: Steven Li <steven@smilecdr.com>
Co-authored-by: Tadgh <garygrantgraham@gmail.com>
Co-authored-by: Ken Stevens <ken@smilecdr.com>
* begin with failing test
* begin with failing test
* remove unused Spring Batch classes.
convert service classes
* move provider
* just one test left to fix
* fix test
* msg.code
* change log
* bumping hapi to PRE12
* fix test
* review feedback
* license update
* fix intermittent and status update atomicity
* restore url-level partition selection
* fix tests
Co-authored-by: Ken Stevens <ken@smilecdr.com>
- Added functionality to optionally filter out deleted resources when resolving forced ids to persistent ids
- Bumps version
Co-authored-by: nathaniel.doef <nathaniel.doef@smilecdr.com>
Co-authored-by: Ken Stevens <ken@smilecdr.com>
* rename field that drives everything includes
* discovered design flaw in completion
* fix intermittent
* ensure batch2 completion handler can't be called twice
* changelog
* changelog
* javadoc
* bump hapi version
* licences
* Batch2 job definitions can now optionally provide an error handler callback that will be called when a job
instance fails, errors or is cancelled.
* Changed error handler and completion handler to take a "read-only" copy of an instance instead of just certain fields.
* comment
* javadoc
* fix test
* change step execution context from taking instance id to instance
* review feedback
* fix test
* replace 20 or so jetbrains annotations
* fixed a few incorrect @NotNull annotations
Co-authored-by: Ken Stevens <ken@smilecdr.com>
Extend rules with filters.
New rule extension, and consent service for post-query filtering.
Co-authored-by: josie <josie.vandewetering@smilecdr.com>
Co-authored-by: Jason Roberts <jason.roberts@smilecdr.com>
Co-authored-by: Ken Stevens <khstevens@gmail.com>
* first test passes. onto the next one
* two down two to go
* three down one to go
* licenses
* basic admin-json plumbing confirmed with IT
* FIXME
* FIXME
* FIXME
* FIXME
* changelog
* bump hapi version to 6.1.0-PRE6-SNAPSHOT
Co-authored-by: Ken Stevens <ken@smilecdr.com>
* Initial implementation
* Implement job cancellation
* Works for date and token. Cleanup required.
* Works for string and quantity.Cleanup pending.
* Works for reference and perform cleanup.
* Cleanup configuration and add missing tests
* Eliminate sort property registry (no go for a cluster) for a static property map.
* Missed in previous commit
* Implement HSearch number parameter
* Implement HSearch number sorting
* Unify different hibernate search names (HibernateSearch, Freetext and Lucene) to HSearch
* Move analysis configures for lucene and elastic to same file to enforce the need to keep them in synch
* Use new defined constant
* Rename package too
* Rename additional elastic references
* bump version to 6.1.0-PRE5-SNAPSHOT
* Restore Hap prefix to hapi configurers
* fixing hapi version of new maven module
* fix pom
* fix pom
Co-authored-by: juan.marchionatto <juan.marchionatto@smilecdr.com>
Co-authored-by: Ken Stevens <ken@smilecdr.com>
* begin with failing test
* continue building out
* continue building out
* reworking chunk api
* replace ChunkId zippers with proper iterator
* progressing test
* yay test passes!
* switch to idchunk interface
* fixmes
* compiles
* fixme
* fixme
* rename classes
* rename json classes with json suffix
* work towards homogeneous chunks
* fixme
* fixme
* unit test
* fixme
* fixme
* pull out builder
* moar tests
* moar tests
* preserve order
* moar test
* moar test
* fixme
* fixme -> wip to start ci
* msg code
* msg code fix test
* fixme
* change provider implementation
* final WIPs
* IT failing
* IT passes
* java 11
* fix test
* fix test
* fix test
* changelog
* use batch size if provided
* last WIP
* fix test
* fix test
* fix test
* whitespace change to trigger new build
* fix test
* bumping hapi version
* bumping hapi version
* fix test
* review feedback
Co-authored-by: Ken Stevens <ken@Kens-MacBook-Pro.local>
Co-authored-by: Ken Stevens <ken@smilecdr.com>
* adding a bunch of stuff
* most of the steps are working now
* writing more tests
* adding more tests
* updated the batch2 coordinators
* updating version
* some minor test tweaks
* added a new test
* adding more tests
* blah
* blah
* review fixes 1
* fixing tests and refactoring
* review points
* updated for code review
* review fixes
* updated
* step 1 on review step 5
* final touches
* blah
Co-authored-by: leif stawnyczy <leifstawnyczy@leifs-MacBook-Pro.local>
Co-authored-by: Ken Stevens <ken@smilecdr.com>
* Updating With History Rewrite implementation
* Missed new files
* Updated changelog and documentation
* Fixed test failures and doc
* minor fix
* lgtm code refactor
* Fixed test to clear DaoConfig
* Removed unused class
* Code review changes
* Simplified updateHistoryRewrite's fluent, combining with normal update's, also changed logic on custom header error checking, updated tests
* refactored method to extracted common code
* removed `updateHistoryRewrite()` and replaced with `update()`, updated tests accordingly
Co-authored-by: Steven Li <steven@smilecdr.com>
* fix config settings for system-level expunge
* clean up expunge everything interface
* extract common system provider
* changelog
* version bump
* touch changelog to force a fresh pipeline
* re-enable publishing of checkstyle
* back out Gary's Sonatype change entirely
* wip fix test
* move to override in test class
* Test fixes
* Add failsafe to other projects which have ITs
* Fix test
* Fix test to use transaction
Co-authored-by: Ken Stevens <khstevens@gmail.com>
* reversed order matching operation bindings are searched so custom operations override builtin ones
* change log
* add test
* reverse finding operations in interfaces and then classes so last-in-wins finds the right provider method
* Refactor to restore LGTM functionality
* Compile fix
* Work on cleanup
* Attempt to restore LGTM
* Work on tests
* Fixes
* Build fixes
* Build fix
* Test fix
* Test fixes
* Work on build
* License header updates
* Test fixes
* Test fixes
* License header
* Test fix
* Test fix
* Test fixes
* Restore LGTM
* Fix azure
* Disable test
* Test fixes
* Test cleanup
* Build fix
* Build fix
* Test fix
* Test fix
* Test fixes