From 28a1a4d4dfbc365f7ee993f52dbc66183510131c Mon Sep 17 00:00:00 2001 From: longma1 <32119004+longma1@users.noreply.github.com> Date: Fri, 23 Feb 2024 11:03:26 -0700 Subject: [PATCH] Rel 7 0 mb 2 (#5714) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * pom bump to 7.0.0 (#5615) * pom bump to 7.0.0 * add version enum * fixed feb release name --------- Co-authored-by: Long Ma * Check index existence on raw SQL creation (#5624) * Add conditional check on index existence before we try again * Add conditional check on index existence before we try again * Changelog * remit * remit * debug statements * 5621 deadlock on caffeine cache when creating a resource with conditional create (#5622) * Modifying the CacheProvider to avoid doing db I/O within the cache miss value supplier callback. * Setting the initial capacity of instantiated caches to the cache max size to avoid resizing during operations. * adding changelog and spotless. * Fixing typo. * Addressing comments from code review. --------- Co-authored-by: peartree * Searching with more than one chained Bundle SearchParameter returns incorrect results (#5614) * Failing test * fix * changelog * Avoiding Exception being thrown on @EventListener invocation (#5628) * replaced EventListener annotation with @PreDestroy * adding changelog --------- Co-authored-by: peartree * simple fix (#5630) Co-authored-by: Long Ma * Incorrect version of auto versioned reference for conditional update with urn id placeholder (#5625) * Incorrect version from versioned_references.auto_at_paths for conditional update - implementation * Oracle: Ensure migrated database still takes large resource text updates (#5629) * First pass at fix to Oracle HFJ_RES_VER.RES_TEXT_VC migration. * First stab at agreed upon solution. * Fix error with 4001 by removing unnecessary annotation. * Spotless and TODO. * Remove annotation for good and set length to LONG32. * Fix copyright year. * Finalize changelog. * Remove migration changes. Fix unit test. * Fix compile error. * Log output. * Refactor resource history code into new ResourceHistoryCalculator. * Spotless. * Convert record to POJO. * Restore pre-17 switch statement. * Finalize new resource history calculator code and tests. * Spotless. * Remove logging. * Update hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/changelog/7_0_0/5633-oracle-hfj-res-ver-clob-migration.yaml Apply code reviewer suggestion Co-authored-by: Michael Buckley * Code review feedback. --------- Co-authored-by: Michael Buckley * Fix expansion for `ValueSet` with no concepts based on CodeSystem `urn:ietf:bcp:13` (#5638) * When fetching the mimetype code system, return empty CodeSystem with NOTSUPPORTED content. Update expansion logic to handle this case. Add some test cases. * Minor change to fix test * Rename changelog file * Remove TODOs as they're replaced by reported issue * Revert accidental change added with TODO removal * $expunge operation ignoring ExpungeThreadCount setting in certain cases (#5637) * $expunge operation ignoring ExpungeThreadCount setting in certain cases - implementation * Fix Measure group id null pointer exception (#5620) * Update to new version of clinical reasoning, includes a fix for null pointers on Measure group id * add changelog --------- Co-authored-by: Justin McKelvy <60718638+Capt-Mac@users.noreply.github.com> * Rule evaluation: Allow Bundles with PATCH Parameters (#5641) * Remove parameters clause. * Finalize changelog. Add tests. Finalize implementation. * Undo changes to this test. * Revert all changes to FhirQueryRuleImplTest. Add new RuleImplOpTest. Ensure that proper nested Bundle is created for test and other fixes. * Tweak test. * Use real rule applier in test and remove all mocks. * Prevent batch2 job execution to stop for empty chunk when last job st… (#5635) * Prevent batch2 job execution to stop for empty chunk when last job step is a reduction. Add output to bulk export result even when empty. * Fix test * Unimportant change to force fresh build * Implement review suggestions --------- Co-authored-by: juan.marchionatto * Index review fixes (#5649) * Don't hold locks while adding indices during upgrade. * concurrent indexing is non-transactional in PG. * Fix conditional creates without leading '?' (#5646) * First commit with failing test. * More tests and logs. * More logs * Try new solution for BaseTransactionProcessor.performIdSubstitutionsInMatchUrl(). * Simplify solution. Add more tests. * Changelog. * javadoc * Searching for Bundles with read all Bundles permission returns 403 (#5644) * failing test * another failing test case * fix * changelog * fix bug * spotless * cr * Fix NullPointerException when performing a system bulk export in the presence of PatientIdPartitionInterceptor. (#5660) * Bump json-path * Pin parrson * Bump elastic * Bump spring version * Exclude JDBC * Serializing changes for sensitive data (#5655) * Add new senstiive data serializer * Add new senstiive data serializer * Add new senstiive data serializer * Remove dead comments * Change up the test * review comments * wip * Tighten tests and push annotation down * Tighten tests and push annotation down * Changelog * Add test * 7.0.1-SNAPSHOT bump * Error code * Add method used by CDR * add version enum * Fix test * Revert change to other safe version to stop problem with deprecated field * Rel 7 0 CVE (#5663) * Bump json-path * Pin parrson * Bump elastic * Bump spring version * Exclude JDBC * Descendent fix (#5669) * Fix "is-a" ValueSet expansion, add "descendent-of" support * Fixed tests in DSTU3 and R5 * Trigger new build * Revert "Trigger new build" This reverts commit 46c672b338db1f85c4f438344bfa828bfc723a37. * fix default partition setting on resource (#5617) * fix default partition setting on resource * changelog * Handle DEFAULT partition in rule checker. * Fix spotless --------- Co-authored-by: Michael Buckley Co-authored-by: James Agnew * pom bump, doc add, version enum add (#5616) Co-authored-by: Long Ma * fix default partition setting on resource (#5618) * fix default partition setting on resource * Handle DEFAULT partition in rule checker. Co-authored-by: Ken Stevens * Add setting to make broker not use JacksonMessageConverter (#5611) * Add setting to make broker not use JacksonMessageConverter * Add changelog * Implement suggestions --------- Co-authored-by: juan.marchionatto * Fix version * add changelog, add attribution, remove accidental bring-overs * add changelog, add attribution, remove accidental bring-overs * Finish jira section --------- Co-authored-by: Ole Hedegaard Co-authored-by: Ken Stevens Co-authored-by: Michael Buckley Co-authored-by: James Agnew Co-authored-by: longma1 <32119004+longma1@users.noreply.github.com> Co-authored-by: Long Ma Co-authored-by: jmarchionatto <60409882+jmarchionatto@users.noreply.github.com> Co-authored-by: juan.marchionatto * $poll-export-status operation with PatientIdPartitionInterceptor fails with NullPointerException (#5681) * Fix NullPointerException when performing a system bulk export in the presence of PatientIdPartitionInterceptor. * Fix NPE on -export-status operation with PatientIdPartitionInterceptor * 5654 measurescorer bug for denominator exception (#5677) * update measure bundles and tests for enforced populationId specification on Measure group resources * bump CR version to PRE17 * fix bug in versionEnumTest * Update hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/changelog/7_0_0/5654-measurescorer-bug.yaml Co-authored-by: Tadgh --------- Co-authored-by: Tadgh * Revert Remote Terminology lookup operation to support all types of CodeSystem property and convert to them to string type. (#5698) * Revert Remote Terminology lookup operation to support all types of CodeSystem property and convert to them to string type. * Spotless fix * Address code review comments * version bump to 7.0.0 * pipeline fix * Update java home * Updating version to: 7.0.1 post release. * post mergeback cleanup * bump clinical-reasoning.version to pre17 * test fix * version bump to 7.1.5-snapshot --------- Co-authored-by: Long Ma Co-authored-by: Tadgh Co-authored-by: Etienne Poirier <33007955+epeartree@users.noreply.github.com> Co-authored-by: peartree Co-authored-by: Nathan Doef Co-authored-by: volodymyr-korzh <132366313+volodymyr-korzh@users.noreply.github.com> Co-authored-by: Luke deGruchy Co-authored-by: Michael Buckley Co-authored-by: Martha Mitran Co-authored-by: JP Co-authored-by: Justin McKelvy <60718638+Capt-Mac@users.noreply.github.com> Co-authored-by: jmarchionatto <60409882+jmarchionatto@users.noreply.github.com> Co-authored-by: juan.marchionatto Co-authored-by: Ole Hedegaard Co-authored-by: Ken Stevens Co-authored-by: James Agnew Co-authored-by: markiantorno --- hapi-deployable-pom/pom.xml | 2 +- hapi-fhir-android/pom.xml | 2 +- hapi-fhir-base/pom.xml | 2 +- .../java/ca/uhn/fhir/util/VersionEnum.java | 1 - hapi-fhir-bom/pom.xml | 4 +- hapi-fhir-checkstyle/pom.xml | 2 +- hapi-fhir-cli/hapi-fhir-cli-api/pom.xml | 2 +- hapi-fhir-cli/hapi-fhir-cli-app/pom.xml | 2 +- hapi-fhir-cli/pom.xml | 2 +- hapi-fhir-client-okhttp/pom.xml | 2 +- hapi-fhir-client/pom.xml | 2 +- hapi-fhir-converter/pom.xml | 2 +- hapi-fhir-dist/pom.xml | 2 +- hapi-fhir-docs/pom.xml | 2 +- .../7_0_0/5654-measurescorer-bug.yaml | 5 ++ ...em-export-with-patientid-partitioning.yaml | 5 ++ ...-exception-unsupported-property-types.yaml | 6 ++ hapi-fhir-jacoco/pom.xml | 2 +- hapi-fhir-jaxrsserver-base/pom.xml | 2 +- hapi-fhir-jpa/pom.xml | 2 +- hapi-fhir-jpaserver-base/pom.xml | 2 +- .../pom.xml | 2 +- hapi-fhir-jpaserver-hfql/pom.xml | 2 +- hapi-fhir-jpaserver-ips/pom.xml | 2 +- hapi-fhir-jpaserver-mdm/pom.xml | 2 +- hapi-fhir-jpaserver-model/pom.xml | 2 +- hapi-fhir-jpaserver-searchparam/pom.xml | 2 +- hapi-fhir-jpaserver-subscription/pom.xml | 2 +- hapi-fhir-jpaserver-test-dstu2/pom.xml | 2 +- hapi-fhir-jpaserver-test-dstu3/pom.xml | 2 +- hapi-fhir-jpaserver-test-r4/pom.xml | 2 +- .../PatientIdPartitionInterceptorTest.java | 79 ++++++++++++++++++ hapi-fhir-jpaserver-test-r4b/pom.xml | 2 +- hapi-fhir-jpaserver-test-r5/pom.xml | 2 +- hapi-fhir-jpaserver-test-utilities/pom.xml | 2 +- hapi-fhir-jpaserver-uhnfhirtest/pom.xml | 2 +- hapi-fhir-server-cds-hooks/pom.xml | 2 +- hapi-fhir-server-mdm/pom.xml | 2 +- hapi-fhir-server-openapi/pom.xml | 2 +- hapi-fhir-server/pom.xml | 2 +- .../hapi-fhir-caching-api/pom.xml | 2 +- .../hapi-fhir-caching-caffeine/pom.xml | 4 +- .../hapi-fhir-caching-guava/pom.xml | 2 +- .../hapi-fhir-caching-testing/pom.xml | 2 +- hapi-fhir-serviceloaders/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../hapi-fhir-spring-boot-samples/pom.xml | 2 +- .../hapi-fhir-spring-boot-starter/pom.xml | 2 +- hapi-fhir-spring-boot/pom.xml | 2 +- hapi-fhir-sql-migrate/pom.xml | 2 +- hapi-fhir-storage-batch2-jobs/pom.xml | 2 +- .../pom.xml | 2 +- hapi-fhir-storage-batch2/pom.xml | 2 +- hapi-fhir-storage-cr/pom.xml | 2 +- .../resources/BCSEHEDISMY2022-bundle.json | 6 ++ ...ColorectalCancerScreeningsFHIR-bundle.json | 2 +- .../resources/Exm104FhirR4MeasureBundle.json | 13 ++- .../largeValueSetMeasureTest-Bundle.json | 3 + .../multiversion/EXM124-7.0.000-bundle.json | 8 ++ .../multiversion/EXM124-9.0.000-bundle.json | 8 ++ hapi-fhir-storage-mdm/pom.xml | 2 +- hapi-fhir-storage-test-utilities/pom.xml | 2 +- hapi-fhir-storage/pom.xml | 2 +- .../PatientIdPartitionInterceptor.java | 8 +- hapi-fhir-structures-dstu2.1/pom.xml | 2 +- hapi-fhir-structures-dstu2/pom.xml | 2 +- hapi-fhir-structures-dstu3/pom.xml | 2 +- hapi-fhir-structures-hl7org-dstu2/pom.xml | 2 +- hapi-fhir-structures-r4/pom.xml | 2 +- hapi-fhir-structures-r4b/pom.xml | 2 +- hapi-fhir-structures-r5/pom.xml | 2 +- hapi-fhir-test-utilities/pom.xml | 2 +- hapi-fhir-testpage-overlay/pom.xml | 2 +- .../pom.xml | 2 +- hapi-fhir-validation-resources-dstu2/pom.xml | 2 +- hapi-fhir-validation-resources-dstu3/pom.xml | 2 +- hapi-fhir-validation-resources-r4/pom.xml | 2 +- hapi-fhir-validation-resources-r4b/pom.xml | 2 +- hapi-fhir-validation-resources-r5/pom.xml | 2 +- hapi-fhir-validation/pom.xml | 2 +- ...teTerminologyServiceValidationSupport.java | 17 ++-- .../hapi/validation/ILookupCodeTest.java | 35 +------- .../hapi/validation/LookupCodeDstu3Test.java | 78 +++++++++--------- .../fhir/r4/validation/LookupCodeR4Test.java | 80 ++++++++----------- hapi-tinder-plugin/pom.xml | 2 +- hapi-tinder-test/pom.xml | 2 +- pom.xml | 4 +- release-pipeline.yml | 6 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- 94 files changed, 305 insertions(+), 215 deletions(-) create mode 100644 hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/changelog/7_0_0/5654-measurescorer-bug.yaml create mode 100644 hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/changelog/7_0_0/5680-npe-on-poll-export-status-system-export-with-patientid-partitioning.yaml create mode 100644 hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/changelog/7_0_0/5700-remote-terminology-service-throws-exception-unsupported-property-types.yaml diff --git a/hapi-deployable-pom/pom.xml b/hapi-deployable-pom/pom.xml index 6f821164873..96929f76db4 100644 --- a/hapi-deployable-pom/pom.xml +++ b/hapi-deployable-pom/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir hapi-fhir - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../pom.xml diff --git a/hapi-fhir-android/pom.xml b/hapi-fhir-android/pom.xml index 67fb95573af..6d2ebf914ac 100644 --- a/hapi-fhir-android/pom.xml +++ b/hapi-fhir-android/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-base/pom.xml b/hapi-fhir-base/pom.xml index 363ce81c35e..a477fc4dd3b 100644 --- a/hapi-fhir-base/pom.xml +++ b/hapi-fhir-base/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-base/src/main/java/ca/uhn/fhir/util/VersionEnum.java b/hapi-fhir-base/src/main/java/ca/uhn/fhir/util/VersionEnum.java index d59f373bee3..d9016df34ac 100644 --- a/hapi-fhir-base/src/main/java/ca/uhn/fhir/util/VersionEnum.java +++ b/hapi-fhir-base/src/main/java/ca/uhn/fhir/util/VersionEnum.java @@ -136,7 +136,6 @@ public enum VersionEnum { V7_0_0, V7_0_1, - V7_1_0, V7_2_0; diff --git a/hapi-fhir-bom/pom.xml b/hapi-fhir-bom/pom.xml index c143f2f1279..9f9bdb78a2a 100644 --- a/hapi-fhir-bom/pom.xml +++ b/hapi-fhir-bom/pom.xml @@ -4,7 +4,7 @@ 4.0.0 ca.uhn.hapi.fhir hapi-fhir-bom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT pom HAPI FHIR BOM @@ -12,7 +12,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-checkstyle/pom.xml b/hapi-fhir-checkstyle/pom.xml index 3c95c966562..15b70881e0d 100644 --- a/hapi-fhir-checkstyle/pom.xml +++ b/hapi-fhir-checkstyle/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir hapi-fhir - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../pom.xml diff --git a/hapi-fhir-cli/hapi-fhir-cli-api/pom.xml b/hapi-fhir-cli/hapi-fhir-cli-api/pom.xml index d89ee9d0d29..4dbdb61e2dc 100644 --- a/hapi-fhir-cli/hapi-fhir-cli-api/pom.xml +++ b/hapi-fhir-cli/hapi-fhir-cli-api/pom.xml @@ -4,7 +4,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-cli/hapi-fhir-cli-app/pom.xml b/hapi-fhir-cli/hapi-fhir-cli-app/pom.xml index e566738ea06..bda4d39ba38 100644 --- a/hapi-fhir-cli/hapi-fhir-cli-app/pom.xml +++ b/hapi-fhir-cli/hapi-fhir-cli-app/pom.xml @@ -6,7 +6,7 @@ ca.uhn.hapi.fhir hapi-fhir-cli - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../pom.xml diff --git a/hapi-fhir-cli/pom.xml b/hapi-fhir-cli/pom.xml index 3f25a356cc2..033018cffe4 100644 --- a/hapi-fhir-cli/pom.xml +++ b/hapi-fhir-cli/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir hapi-fhir - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../pom.xml diff --git a/hapi-fhir-client-okhttp/pom.xml b/hapi-fhir-client-okhttp/pom.xml index e7c77bcaa3b..c0e0dbc13fb 100644 --- a/hapi-fhir-client-okhttp/pom.xml +++ b/hapi-fhir-client-okhttp/pom.xml @@ -4,7 +4,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-client/pom.xml b/hapi-fhir-client/pom.xml index ed48d38ad05..d2c1cbaff57 100644 --- a/hapi-fhir-client/pom.xml +++ b/hapi-fhir-client/pom.xml @@ -4,7 +4,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-converter/pom.xml b/hapi-fhir-converter/pom.xml index 80719826732..7017a82b772 100644 --- a/hapi-fhir-converter/pom.xml +++ b/hapi-fhir-converter/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-dist/pom.xml b/hapi-fhir-dist/pom.xml index e43fe5ff571..6cfa4f4b4f3 100644 --- a/hapi-fhir-dist/pom.xml +++ b/hapi-fhir-dist/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir hapi-fhir - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../pom.xml diff --git a/hapi-fhir-docs/pom.xml b/hapi-fhir-docs/pom.xml index 47e14f92f94..fdc080b826f 100644 --- a/hapi-fhir-docs/pom.xml +++ b/hapi-fhir-docs/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/changelog/7_0_0/5654-measurescorer-bug.yaml b/hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/changelog/7_0_0/5654-measurescorer-bug.yaml new file mode 100644 index 00000000000..d922fa2e95c --- /dev/null +++ b/hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/changelog/7_0_0/5654-measurescorer-bug.yaml @@ -0,0 +1,5 @@ +type: fix +issue: 5654 +title: "Fixed a MeasureReport measureScoring bug impacting any measures currently using denominator-exception population will +incorrectly calculate the score without following specification. This bug adds an extension to MeasureReport Groups to capture calculated denominator and +numerator to bring transparency to the measureScore calculation and act as a dataSource of measureScore instead of behind the scenes calculations." diff --git a/hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/changelog/7_0_0/5680-npe-on-poll-export-status-system-export-with-patientid-partitioning.yaml b/hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/changelog/7_0_0/5680-npe-on-poll-export-status-system-export-with-patientid-partitioning.yaml new file mode 100644 index 00000000000..8f0c43ce3a2 --- /dev/null +++ b/hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/changelog/7_0_0/5680-npe-on-poll-export-status-system-export-with-patientid-partitioning.yaml @@ -0,0 +1,5 @@ +--- +type: fix +issue: 5680 +title: "Previously, after registering built-in interceptor `PatientIdPartitionInterceptor`, while performing +an async system bulk export, the `$poll-export-status` operation would fail with a `NullPointerException`. This has been fixed." diff --git a/hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/changelog/7_0_0/5700-remote-terminology-service-throws-exception-unsupported-property-types.yaml b/hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/changelog/7_0_0/5700-remote-terminology-service-throws-exception-unsupported-property-types.yaml new file mode 100644 index 00000000000..e81159179fc --- /dev/null +++ b/hapi-fhir-docs/src/main/resources/ca/uhn/hapi/fhir/changelog/7_0_0/5700-remote-terminology-service-throws-exception-unsupported-property-types.yaml @@ -0,0 +1,6 @@ +--- +type: fix +issue: 5700 +title: "Previously (this release cycle), when you call `RemoteTerminologyServiceValidationSupport` method `lookupCode` +with a `CodeSystem` that has properties that are not `string` or `Coding`, the method would throw an exception. +It should instead accept any type and convert any unsupported type to `string`. This has been fixed." diff --git a/hapi-fhir-jacoco/pom.xml b/hapi-fhir-jacoco/pom.xml index 298bd3570b6..ef21461c055 100644 --- a/hapi-fhir-jacoco/pom.xml +++ b/hapi-fhir-jacoco/pom.xml @@ -11,7 +11,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-jaxrsserver-base/pom.xml b/hapi-fhir-jaxrsserver-base/pom.xml index c3ff56f8f4e..4fe715ffbad 100644 --- a/hapi-fhir-jaxrsserver-base/pom.xml +++ b/hapi-fhir-jaxrsserver-base/pom.xml @@ -4,7 +4,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-jpa/pom.xml b/hapi-fhir-jpa/pom.xml index 5aecd9032cd..4d670f25597 100644 --- a/hapi-fhir-jpa/pom.xml +++ b/hapi-fhir-jpa/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-jpaserver-base/pom.xml b/hapi-fhir-jpaserver-base/pom.xml index 2b6dd5a8221..98a31f12bff 100644 --- a/hapi-fhir-jpaserver-base/pom.xml +++ b/hapi-fhir-jpaserver-base/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-jpaserver-elastic-test-utilities/pom.xml b/hapi-fhir-jpaserver-elastic-test-utilities/pom.xml index 327b6a68181..6617a4b129b 100644 --- a/hapi-fhir-jpaserver-elastic-test-utilities/pom.xml +++ b/hapi-fhir-jpaserver-elastic-test-utilities/pom.xml @@ -6,7 +6,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-jpaserver-hfql/pom.xml b/hapi-fhir-jpaserver-hfql/pom.xml index cb6fcdf89fc..5267a876c0c 100644 --- a/hapi-fhir-jpaserver-hfql/pom.xml +++ b/hapi-fhir-jpaserver-hfql/pom.xml @@ -3,7 +3,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-jpaserver-ips/pom.xml b/hapi-fhir-jpaserver-ips/pom.xml index 399cf1ff224..8a330e39157 100644 --- a/hapi-fhir-jpaserver-ips/pom.xml +++ b/hapi-fhir-jpaserver-ips/pom.xml @@ -3,7 +3,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-jpaserver-mdm/pom.xml b/hapi-fhir-jpaserver-mdm/pom.xml index f25f6ae6c59..45505e63485 100644 --- a/hapi-fhir-jpaserver-mdm/pom.xml +++ b/hapi-fhir-jpaserver-mdm/pom.xml @@ -6,7 +6,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-jpaserver-model/pom.xml b/hapi-fhir-jpaserver-model/pom.xml index ed3c7828f52..522b931f544 100644 --- a/hapi-fhir-jpaserver-model/pom.xml +++ b/hapi-fhir-jpaserver-model/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-jpaserver-searchparam/pom.xml b/hapi-fhir-jpaserver-searchparam/pom.xml index cc7f5180638..7954b6af9d8 100755 --- a/hapi-fhir-jpaserver-searchparam/pom.xml +++ b/hapi-fhir-jpaserver-searchparam/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-jpaserver-subscription/pom.xml b/hapi-fhir-jpaserver-subscription/pom.xml index aea4770ad9d..5650b52c252 100644 --- a/hapi-fhir-jpaserver-subscription/pom.xml +++ b/hapi-fhir-jpaserver-subscription/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-jpaserver-test-dstu2/pom.xml b/hapi-fhir-jpaserver-test-dstu2/pom.xml index 3be07536e19..ebb7e0cdc06 100644 --- a/hapi-fhir-jpaserver-test-dstu2/pom.xml +++ b/hapi-fhir-jpaserver-test-dstu2/pom.xml @@ -6,7 +6,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-jpaserver-test-dstu3/pom.xml b/hapi-fhir-jpaserver-test-dstu3/pom.xml index 125b22a0100..48cc845eca4 100644 --- a/hapi-fhir-jpaserver-test-dstu3/pom.xml +++ b/hapi-fhir-jpaserver-test-dstu3/pom.xml @@ -6,7 +6,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-jpaserver-test-r4/pom.xml b/hapi-fhir-jpaserver-test-r4/pom.xml index 8dbfb0dd2b8..ce4e4f19a7f 100644 --- a/hapi-fhir-jpaserver-test-r4/pom.xml +++ b/hapi-fhir-jpaserver-test-r4/pom.xml @@ -6,7 +6,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-jpaserver-test-r4/src/test/java/ca/uhn/fhir/jpa/interceptor/PatientIdPartitionInterceptorTest.java b/hapi-fhir-jpaserver-test-r4/src/test/java/ca/uhn/fhir/jpa/interceptor/PatientIdPartitionInterceptorTest.java index d0e116343aa..d4427414795 100644 --- a/hapi-fhir-jpaserver-test-r4/src/test/java/ca/uhn/fhir/jpa/interceptor/PatientIdPartitionInterceptorTest.java +++ b/hapi-fhir-jpaserver-test-r4/src/test/java/ca/uhn/fhir/jpa/interceptor/PatientIdPartitionInterceptorTest.java @@ -1,6 +1,8 @@ package ca.uhn.fhir.jpa.interceptor; import ca.uhn.fhir.i18n.Msg; +import ca.uhn.fhir.interceptor.model.ReadPartitionIdRequestDetails; +import ca.uhn.fhir.interceptor.model.RequestPartitionId; import ca.uhn.fhir.jpa.api.model.DaoMethodOutcome; import ca.uhn.fhir.jpa.model.config.PartitionSettings; import ca.uhn.fhir.jpa.model.entity.ResourceTable; @@ -10,19 +12,28 @@ import ca.uhn.fhir.jpa.searchparam.extractor.ISearchParamExtractor; import ca.uhn.fhir.jpa.util.SqlQuery; import ca.uhn.fhir.model.api.Include; import ca.uhn.fhir.rest.api.Constants; +import ca.uhn.fhir.rest.api.RestOperationTypeEnum; import ca.uhn.fhir.rest.api.server.IBundleProvider; import ca.uhn.fhir.rest.api.server.SystemRequestDetails; +import ca.uhn.fhir.rest.api.server.bulk.BulkExportJobParameters; import ca.uhn.fhir.rest.param.ReferenceParam; import ca.uhn.fhir.rest.param.TokenOrListParam; import ca.uhn.fhir.rest.param.TokenParam; import ca.uhn.fhir.rest.server.exceptions.MethodNotAllowedException; +import ca.uhn.fhir.rest.server.provider.BulkDataExportProvider; import ca.uhn.fhir.rest.server.provider.ProviderConstants; import ca.uhn.fhir.util.BundleBuilder; import ca.uhn.fhir.util.MultimapCollector; +import com.google.common.base.Charsets; import com.google.common.collect.ListMultimap; import com.google.common.collect.Multimap; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpPost; +import org.apache.commons.io.IOUtils; +import org.apache.http.Header; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.client.methods.HttpPost; import org.hl7.fhir.r4.model.Bundle; import org.hl7.fhir.r4.model.Encounter; import org.hl7.fhir.r4.model.Enumerations; @@ -36,6 +47,7 @@ import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.mock.mockito.SpyBean; import java.io.IOException; import java.util.List; @@ -49,8 +61,11 @@ import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.either; import static org.hamcrest.Matchers.matchesPattern; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.fail; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.verify; public class PatientIdPartitionInterceptorTest extends BaseResourceProviderR4Test { public static final int ALTERNATE_DEFAULT_ID = -1; @@ -542,6 +557,70 @@ public class PatientIdPartitionInterceptorTest extends BaseResourceProviderR4Tes return (Patient)update.getResource(); } + @Test + public void testIdentifyForRead_serverOperation_returnsAllPartitions() { + ReadPartitionIdRequestDetails readRequestDetails = ReadPartitionIdRequestDetails.forServerOperation(ProviderConstants.OPERATION_EXPORT); + RequestPartitionId requestPartitionId = mySvc.identifyForRead(readRequestDetails, mySrd); + assertEquals(requestPartitionId, RequestPartitionId.allPartitions()); + assertEquals(RestOperationTypeEnum.EXTENDED_OPERATION_SERVER, readRequestDetails.getRestOperationType()); + } + + @Test + public void testSystemBulkExport_withPatientIdPartitioningWithNoResourceType_usesNonPatientSpecificPartition() throws IOException { + HttpPost post = new HttpPost(myServer.getBaseUrl() + "/" + ProviderConstants.OPERATION_EXPORT); + post.addHeader(Constants.HEADER_PREFER, Constants.HEADER_PREFER_RESPOND_ASYNC); + + try (CloseableHttpResponse postResponse = myServer.getHttpClient().execute(post)){ + ourLog.info("Response: {}",postResponse); + assertEquals(202, postResponse.getStatusLine().getStatusCode()); + assertEquals("Accepted", postResponse.getStatusLine().getReasonPhrase()); + } + } + + @Test + public void testSystemBulkExport_withPatientIdPartitioningWithResourceType_exportUsesNonPatientSpecificPartition() throws IOException { + HttpPost post = new HttpPost(myServer.getBaseUrl() + "/" + ProviderConstants.OPERATION_EXPORT); + post.addHeader(Constants.HEADER_PREFER, Constants.HEADER_PREFER_RESPOND_ASYNC); + post.addHeader(BulkDataExportProvider.PARAM_EXPORT_TYPE, "Patient"); + post.addHeader(BulkDataExportProvider.PARAM_EXPORT_TYPE_FILTER, "Patient?"); + + try (CloseableHttpResponse postResponse = myServer.getHttpClient().execute(post)){ + ourLog.info("Response: {}",postResponse); + assertEquals(202, postResponse.getStatusLine().getStatusCode()); + assertEquals("Accepted", postResponse.getStatusLine().getReasonPhrase()); + } + } + + @Test + public void testSystemBulkExport_withPatientIdPartitioningWithResourceType_pollSuccessful() throws IOException { + final BulkExportJobParameters options = new BulkExportJobParameters(); + options.setExportStyle(BulkExportJobParameters.ExportStyle.SYSTEM); + options.setOutputFormat(Constants.CT_FHIR_NDJSON); + + HttpPost post = new HttpPost(myServer.getBaseUrl() + "/" + ProviderConstants.OPERATION_EXPORT); + post.addHeader(Constants.HEADER_PREFER, Constants.HEADER_PREFER_RESPOND_ASYNC); + post.addHeader(BulkDataExportProvider.PARAM_EXPORT_TYPE, "Patient"); // ignored when computing partition + post.addHeader(BulkDataExportProvider.PARAM_EXPORT_TYPE_FILTER, "Patient?"); + + String locationUrl; + + try (CloseableHttpResponse postResponse = myServer.getHttpClient().execute(post)){ + ourLog.info("Response: {}",postResponse); + assertEquals(202, postResponse.getStatusLine().getStatusCode()); + assertEquals("Accepted", postResponse.getStatusLine().getReasonPhrase()); + + Header locationHeader = postResponse.getFirstHeader(Constants.HEADER_CONTENT_LOCATION); + assertNotNull(locationHeader); + locationUrl = locationHeader.getValue(); + } + + HttpGet get = new HttpGet(locationUrl); + try (CloseableHttpResponse postResponse = myServer.getHttpClient().execute(get)) { + String responseContent = IOUtils.toString(postResponse.getEntity().getContent(), Charsets.UTF_8); + ourLog.info("Response: {}", responseContent); + assertEquals(202, postResponse.getStatusLine().getStatusCode()); + } + } @Test public void testSystemOperation_withNoResourceType_success() throws IOException { HttpPost post = new HttpPost(myServer.getBaseUrl() + "/" + ProviderConstants.OPERATION_EXPORT); diff --git a/hapi-fhir-jpaserver-test-r4b/pom.xml b/hapi-fhir-jpaserver-test-r4b/pom.xml index 1c6ecd9ade3..f823ff6408d 100644 --- a/hapi-fhir-jpaserver-test-r4b/pom.xml +++ b/hapi-fhir-jpaserver-test-r4b/pom.xml @@ -6,7 +6,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-jpaserver-test-r5/pom.xml b/hapi-fhir-jpaserver-test-r5/pom.xml index 59539b64a5b..0519e0e3cdb 100644 --- a/hapi-fhir-jpaserver-test-r5/pom.xml +++ b/hapi-fhir-jpaserver-test-r5/pom.xml @@ -6,7 +6,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-jpaserver-test-utilities/pom.xml b/hapi-fhir-jpaserver-test-utilities/pom.xml index 4768d7b6bd6..16bec477519 100644 --- a/hapi-fhir-jpaserver-test-utilities/pom.xml +++ b/hapi-fhir-jpaserver-test-utilities/pom.xml @@ -6,7 +6,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-jpaserver-uhnfhirtest/pom.xml b/hapi-fhir-jpaserver-uhnfhirtest/pom.xml index 1a9d8540434..50018343e9f 100644 --- a/hapi-fhir-jpaserver-uhnfhirtest/pom.xml +++ b/hapi-fhir-jpaserver-uhnfhirtest/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir hapi-fhir - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../pom.xml diff --git a/hapi-fhir-server-cds-hooks/pom.xml b/hapi-fhir-server-cds-hooks/pom.xml index 14d992e95f1..e6ce0ecbbe3 100644 --- a/hapi-fhir-server-cds-hooks/pom.xml +++ b/hapi-fhir-server-cds-hooks/pom.xml @@ -7,7 +7,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-server-mdm/pom.xml b/hapi-fhir-server-mdm/pom.xml index 113b6e4ebfc..aaf30b41284 100644 --- a/hapi-fhir-server-mdm/pom.xml +++ b/hapi-fhir-server-mdm/pom.xml @@ -7,7 +7,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-server-openapi/pom.xml b/hapi-fhir-server-openapi/pom.xml index a1e4b418b51..77e9b83e559 100644 --- a/hapi-fhir-server-openapi/pom.xml +++ b/hapi-fhir-server-openapi/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-server/pom.xml b/hapi-fhir-server/pom.xml index 0a966be0215..62b46972bbb 100644 --- a/hapi-fhir-server/pom.xml +++ b/hapi-fhir-server/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-serviceloaders/hapi-fhir-caching-api/pom.xml b/hapi-fhir-serviceloaders/hapi-fhir-caching-api/pom.xml index 9de1e9f4c62..385730c1053 100644 --- a/hapi-fhir-serviceloaders/hapi-fhir-caching-api/pom.xml +++ b/hapi-fhir-serviceloaders/hapi-fhir-caching-api/pom.xml @@ -7,7 +7,7 @@ hapi-fhir-serviceloaders ca.uhn.hapi.fhir - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../pom.xml diff --git a/hapi-fhir-serviceloaders/hapi-fhir-caching-caffeine/pom.xml b/hapi-fhir-serviceloaders/hapi-fhir-caching-caffeine/pom.xml index f97408aa71a..e8c47fac843 100644 --- a/hapi-fhir-serviceloaders/hapi-fhir-caching-caffeine/pom.xml +++ b/hapi-fhir-serviceloaders/hapi-fhir-caching-caffeine/pom.xml @@ -7,7 +7,7 @@ hapi-fhir-serviceloaders ca.uhn.hapi.fhir - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../pom.xml @@ -21,7 +21,7 @@ ca.uhn.hapi.fhir hapi-fhir-caching-api - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT diff --git a/hapi-fhir-serviceloaders/hapi-fhir-caching-guava/pom.xml b/hapi-fhir-serviceloaders/hapi-fhir-caching-guava/pom.xml index 9a52f75affe..e86e65734fa 100644 --- a/hapi-fhir-serviceloaders/hapi-fhir-caching-guava/pom.xml +++ b/hapi-fhir-serviceloaders/hapi-fhir-caching-guava/pom.xml @@ -7,7 +7,7 @@ hapi-fhir-serviceloaders ca.uhn.hapi.fhir - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../pom.xml diff --git a/hapi-fhir-serviceloaders/hapi-fhir-caching-testing/pom.xml b/hapi-fhir-serviceloaders/hapi-fhir-caching-testing/pom.xml index d5c9d19cf87..fa616b0d002 100644 --- a/hapi-fhir-serviceloaders/hapi-fhir-caching-testing/pom.xml +++ b/hapi-fhir-serviceloaders/hapi-fhir-caching-testing/pom.xml @@ -7,7 +7,7 @@ hapi-fhir ca.uhn.hapi.fhir - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../../pom.xml diff --git a/hapi-fhir-serviceloaders/pom.xml b/hapi-fhir-serviceloaders/pom.xml index de9b98d09ed..c17ee444659 100644 --- a/hapi-fhir-serviceloaders/pom.xml +++ b/hapi-fhir-serviceloaders/pom.xml @@ -5,7 +5,7 @@ hapi-deployable-pom ca.uhn.hapi.fhir - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-spring-boot/hapi-fhir-spring-boot-autoconfigure/pom.xml b/hapi-fhir-spring-boot/hapi-fhir-spring-boot-autoconfigure/pom.xml index b0f74140c5a..50bf4ba70b3 100644 --- a/hapi-fhir-spring-boot/hapi-fhir-spring-boot-autoconfigure/pom.xml +++ b/hapi-fhir-spring-boot/hapi-fhir-spring-boot-autoconfigure/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-spring-boot/hapi-fhir-spring-boot-samples/hapi-fhir-spring-boot-sample-client-apache/pom.xml b/hapi-fhir-spring-boot/hapi-fhir-spring-boot-samples/hapi-fhir-spring-boot-sample-client-apache/pom.xml index 341c4fd0d41..85576aebb13 100644 --- a/hapi-fhir-spring-boot/hapi-fhir-spring-boot-samples/hapi-fhir-spring-boot-sample-client-apache/pom.xml +++ b/hapi-fhir-spring-boot/hapi-fhir-spring-boot-samples/hapi-fhir-spring-boot-sample-client-apache/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir hapi-fhir-spring-boot-samples - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT hapi-fhir-spring-boot-sample-client-apache diff --git a/hapi-fhir-spring-boot/hapi-fhir-spring-boot-samples/hapi-fhir-spring-boot-sample-client-okhttp/pom.xml b/hapi-fhir-spring-boot/hapi-fhir-spring-boot-samples/hapi-fhir-spring-boot-sample-client-okhttp/pom.xml index 5d3bd003dc5..3506e898c35 100644 --- a/hapi-fhir-spring-boot/hapi-fhir-spring-boot-samples/hapi-fhir-spring-boot-sample-client-okhttp/pom.xml +++ b/hapi-fhir-spring-boot/hapi-fhir-spring-boot-samples/hapi-fhir-spring-boot-sample-client-okhttp/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir hapi-fhir-spring-boot-samples - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT diff --git a/hapi-fhir-spring-boot/hapi-fhir-spring-boot-samples/hapi-fhir-spring-boot-sample-server-jersey/pom.xml b/hapi-fhir-spring-boot/hapi-fhir-spring-boot-samples/hapi-fhir-spring-boot-sample-server-jersey/pom.xml index 6429c18c130..7b2e450a995 100644 --- a/hapi-fhir-spring-boot/hapi-fhir-spring-boot-samples/hapi-fhir-spring-boot-sample-server-jersey/pom.xml +++ b/hapi-fhir-spring-boot/hapi-fhir-spring-boot-samples/hapi-fhir-spring-boot-sample-server-jersey/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir hapi-fhir-spring-boot-samples - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT diff --git a/hapi-fhir-spring-boot/hapi-fhir-spring-boot-samples/pom.xml b/hapi-fhir-spring-boot/hapi-fhir-spring-boot-samples/pom.xml index 97b72201425..d3303cdcf8b 100644 --- a/hapi-fhir-spring-boot/hapi-fhir-spring-boot-samples/pom.xml +++ b/hapi-fhir-spring-boot/hapi-fhir-spring-boot-samples/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir hapi-fhir-spring-boot - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT diff --git a/hapi-fhir-spring-boot/hapi-fhir-spring-boot-starter/pom.xml b/hapi-fhir-spring-boot/hapi-fhir-spring-boot-starter/pom.xml index 82280e80b6a..9b02cd16aff 100644 --- a/hapi-fhir-spring-boot/hapi-fhir-spring-boot-starter/pom.xml +++ b/hapi-fhir-spring-boot/hapi-fhir-spring-boot-starter/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-spring-boot/pom.xml b/hapi-fhir-spring-boot/pom.xml index 6706cd9259f..ae91db91609 100644 --- a/hapi-fhir-spring-boot/pom.xml +++ b/hapi-fhir-spring-boot/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir hapi-fhir - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../pom.xml diff --git a/hapi-fhir-sql-migrate/pom.xml b/hapi-fhir-sql-migrate/pom.xml index 6a206776c55..df128579d9a 100644 --- a/hapi-fhir-sql-migrate/pom.xml +++ b/hapi-fhir-sql-migrate/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-storage-batch2-jobs/pom.xml b/hapi-fhir-storage-batch2-jobs/pom.xml index 63d1b4263d6..29af596c723 100644 --- a/hapi-fhir-storage-batch2-jobs/pom.xml +++ b/hapi-fhir-storage-batch2-jobs/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-storage-batch2-test-utilities/pom.xml b/hapi-fhir-storage-batch2-test-utilities/pom.xml index 454e9cf36b7..547f339257d 100644 --- a/hapi-fhir-storage-batch2-test-utilities/pom.xml +++ b/hapi-fhir-storage-batch2-test-utilities/pom.xml @@ -7,7 +7,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-storage-batch2/pom.xml b/hapi-fhir-storage-batch2/pom.xml index 9d205053e6d..05a0d821742 100644 --- a/hapi-fhir-storage-batch2/pom.xml +++ b/hapi-fhir-storage-batch2/pom.xml @@ -7,7 +7,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-storage-cr/pom.xml b/hapi-fhir-storage-cr/pom.xml index b9fa0da3fda..31acaba7813 100644 --- a/hapi-fhir-storage-cr/pom.xml +++ b/hapi-fhir-storage-cr/pom.xml @@ -7,7 +7,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-storage-cr/src/test/resources/BCSEHEDISMY2022-bundle.json b/hapi-fhir-storage-cr/src/test/resources/BCSEHEDISMY2022-bundle.json index 59ac27f84f0..0666c3df416 100644 --- a/hapi-fhir-storage-cr/src/test/resources/BCSEHEDISMY2022-bundle.json +++ b/hapi-fhir-storage-cr/src/test/resources/BCSEHEDISMY2022-bundle.json @@ -1843,6 +1843,7 @@ "guidance": "* For Medicare plans, I-SNP and LTI exclusions are not included in the measure calculation logic and need to be programmed manually. Administrative data must be used for these exclusions.\n*Non-administrative data may be used for the frailty and advanced illness exclusion.\n

**Allocation:**
The member was enrolled with a medical benefit throughout the Participation Period.

No more than one gap in enrollment of up to 45 days for each full calendar year of the Participation Period (i.e., the Measurement Period and the year prior to the Measurement Period).

No gaps in enrollment are allowed from October 1 two years prior to the Measurement Period through December 31 two years prior to the Measurement Period.

**Reporting:**
For Medicare plans, the SES stratifications are mutually exclusive. NCQA calculates a total rate for Medicare plans by adding all six Medicare stratifications.

SES and product line stratifications are not included in the measure calculation logic and need to be programmed manually.

**Stratification:**
1. Commercial.\n2. Medicaid.\n3. Medicare: Non-LIS/DE, Nondisability.\n4. Medicare: LIS/DE.\n5. Medicare: Disability\n6. Medicare: LIS/DE and Disability.\n7. Medicare: Other.\n8. Medicare: Unknown.

", "group": [ { "population": [ { + "id": "initial-population", "code": { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/measure-population", @@ -1856,6 +1857,7 @@ "expression": "Initial Population" } }, { + "id": "denominator", "code": { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/measure-population", @@ -1869,6 +1871,7 @@ "expression": "Denominator" } }, { + "id": "denominator-exclusion", "code": { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/measure-population", @@ -1882,6 +1885,7 @@ "expression": "Exclusions" } }, { + "id": "numerator", "code": { "coding": [ { "system": "http://terminology.hl7.org/CodeSystem/measure-population", @@ -1897,6 +1901,7 @@ } ] } ], "supplementalData": [ { + "id": "Enrolled-During-Participation-Period", "code": { "text": "Enrolled During Participation Period" }, @@ -1911,6 +1916,7 @@ "expression": "Enrolled During Participation Period" } }, { + "id": "participation-period", "code": { "text": "Participation Period" }, diff --git a/hapi-fhir-storage-cr/src/test/resources/ColorectalCancerScreeningsFHIR-bundle.json b/hapi-fhir-storage-cr/src/test/resources/ColorectalCancerScreeningsFHIR-bundle.json index 87864f5254d..b48340e557e 100644 --- a/hapi-fhir-storage-cr/src/test/resources/ColorectalCancerScreeningsFHIR-bundle.json +++ b/hapi-fhir-storage-cr/src/test/resources/ColorectalCancerScreeningsFHIR-bundle.json @@ -147712,7 +147712,7 @@ } ], "library": [ - "http://ecqi.healthit.gov/ecqms/Library/ColorectalCancerScreeningsFHIR|0.0.001" + "http://ecqi.healthit.gov/ecqms/Library/ColorectalCancerScreeningsFHIR" ], "disclaimer": "The performance Measure is not a clinical guideline and does not establish a standard of medical care, and has not been tested for all potential applications. THE MEASURE AND SPECIFICATIONS ARE PROVIDED \"AS IS\" WITHOUT WARRANTY OF ANY KIND.\n \nDue to technical limitations, registered trademarks are indicated by (R) or [R] and unregistered trademarks are indicated by (TM) or [TM].", "scoring": { diff --git a/hapi-fhir-storage-cr/src/test/resources/Exm104FhirR4MeasureBundle.json b/hapi-fhir-storage-cr/src/test/resources/Exm104FhirR4MeasureBundle.json index 2768880210d..96f35977412 100644 --- a/hapi-fhir-storage-cr/src/test/resources/Exm104FhirR4MeasureBundle.json +++ b/hapi-fhir-storage-cr/src/test/resources/Exm104FhirR4MeasureBundle.json @@ -140,7 +140,7 @@ } ], "library": [ - "http://localhost:8080/fhir/Library/library-EXM104|8.2.000" + "http://localhost:8080/fhir/Library/EXM104|8.2.000" ], "disclaimer": "These performance measures are not clinical guidelines and do not establish a standard of medical care, and have not been tested for all potential applications. The measures and specifications are provided without warranty.", "scoring": { @@ -177,6 +177,7 @@ "id": "group-1", "population": [ { + "id": "initial-population", "code": { "coding": [ { @@ -192,6 +193,7 @@ } }, { + "id": "numerator", "code": { "coding": [ { @@ -207,6 +209,7 @@ } }, { + "id": "denominator", "code": { "coding": [ { @@ -222,6 +225,7 @@ } }, { + "id": "denominator-exclusion", "code": { "coding": [ { @@ -237,6 +241,7 @@ } }, { + "id": "denominator-exception", "code": { "coding": [ { @@ -341,7 +346,7 @@ { "resource": { "resourceType": "Library", - "id": "library-EXM104", + "id": "EXM104", "extension": [ { "url": "http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/cqfm-softwaresystem", @@ -350,7 +355,7 @@ } } ], - "url": "http://localhost:8080/fhir/Library/library-EXM104", + "url": "http://localhost:8080/fhir/Library/EXM104", "version": "8.2.000", "name": "library-EXM104", "status": "active", @@ -600,7 +605,7 @@ }, "request": { "method": "PUT", - "url": "Library/library-EXM104" + "url": "Library/EXM104" } }, { diff --git a/hapi-fhir-storage-cr/src/test/resources/largeValueSetMeasureTest-Bundle.json b/hapi-fhir-storage-cr/src/test/resources/largeValueSetMeasureTest-Bundle.json index a4785ce2534..1e20e8e31df 100644 --- a/hapi-fhir-storage-cr/src/test/resources/largeValueSetMeasureTest-Bundle.json +++ b/hapi-fhir-storage-cr/src/test/resources/largeValueSetMeasureTest-Bundle.json @@ -1377,6 +1377,7 @@ "id": "group-1", "population": [ { + "id": "initial-population", "code": { "coding": [ { @@ -1392,6 +1393,7 @@ } }, { + "id": "denominator", "code": { "coding": [ { @@ -1407,6 +1409,7 @@ } }, { + "id": "numerator", "code": { "coding": [ { diff --git a/hapi-fhir-storage-cr/src/test/resources/multiversion/EXM124-7.0.000-bundle.json b/hapi-fhir-storage-cr/src/test/resources/multiversion/EXM124-7.0.000-bundle.json index 65b48a37b9e..e33706679ef 100644 --- a/hapi-fhir-storage-cr/src/test/resources/multiversion/EXM124-7.0.000-bundle.json +++ b/hapi-fhir-storage-cr/src/test/resources/multiversion/EXM124-7.0.000-bundle.json @@ -1372,6 +1372,7 @@ "id": "group-1", "population": [ { + "id": "initial-population", "code": { "coding": [ { @@ -1387,6 +1388,7 @@ } }, { + "id": "numerator", "code": { "coding": [ { @@ -1402,6 +1404,7 @@ } }, { + "id": "denominator", "code": { "coding": [ { @@ -1417,6 +1420,7 @@ } }, { + "id": "denominator-exclusion", "code": { "coding": [ { @@ -1436,6 +1440,7 @@ ], "supplementalData": [ { + "id": "sde-ethnicity", "code": { "text": "sde-ethnicity" }, @@ -1455,6 +1460,7 @@ } }, { + "id": "sde-payer", "code": { "text": "sde-payer" }, @@ -1474,6 +1480,7 @@ } }, { + "id": "sde-race", "code": { "text": "sde-race" }, @@ -1493,6 +1500,7 @@ } }, { + "id": "sde-sex", "code": { "text": "sde-sex" }, diff --git a/hapi-fhir-storage-cr/src/test/resources/multiversion/EXM124-9.0.000-bundle.json b/hapi-fhir-storage-cr/src/test/resources/multiversion/EXM124-9.0.000-bundle.json index afec4ed9ae9..1e940988fd5 100644 --- a/hapi-fhir-storage-cr/src/test/resources/multiversion/EXM124-9.0.000-bundle.json +++ b/hapi-fhir-storage-cr/src/test/resources/multiversion/EXM124-9.0.000-bundle.json @@ -1372,6 +1372,7 @@ "id": "group-1", "population": [ { + "id": "initial-population", "code": { "coding": [ { @@ -1387,6 +1388,7 @@ } }, { + "id": "numerator", "code": { "coding": [ { @@ -1402,6 +1404,7 @@ } }, { + "id": "denominator", "code": { "coding": [ { @@ -1417,6 +1420,7 @@ } }, { + "id": "denominator-exclusion", "code": { "coding": [ { @@ -1436,6 +1440,7 @@ ], "supplementalData": [ { + "id": "sde-ethnicity", "code": { "text": "sde-ethnicity" }, @@ -1455,6 +1460,7 @@ } }, { + "id": "sde-payer", "code": { "text": "sde-payer" }, @@ -1474,6 +1480,7 @@ } }, { + "id": "sde-race", "code": { "text": "sde-race" }, @@ -1493,6 +1500,7 @@ } }, { + "id": "sde-sex", "code": { "text": "sde-sex" }, diff --git a/hapi-fhir-storage-mdm/pom.xml b/hapi-fhir-storage-mdm/pom.xml index 52087f84fa8..d3c58df6f67 100644 --- a/hapi-fhir-storage-mdm/pom.xml +++ b/hapi-fhir-storage-mdm/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-storage-test-utilities/pom.xml b/hapi-fhir-storage-test-utilities/pom.xml index 7666edd31df..65d0de719b5 100644 --- a/hapi-fhir-storage-test-utilities/pom.xml +++ b/hapi-fhir-storage-test-utilities/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-storage/pom.xml b/hapi-fhir-storage/pom.xml index 83d5fa7d4c6..a05219b43f7 100644 --- a/hapi-fhir-storage/pom.xml +++ b/hapi-fhir-storage/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-storage/src/main/java/ca/uhn/fhir/jpa/interceptor/PatientIdPartitionInterceptor.java b/hapi-fhir-storage/src/main/java/ca/uhn/fhir/jpa/interceptor/PatientIdPartitionInterceptor.java index c563f19e9d9..2a0aceafd7a 100644 --- a/hapi-fhir-storage/src/main/java/ca/uhn/fhir/jpa/interceptor/PatientIdPartitionInterceptor.java +++ b/hapi-fhir-storage/src/main/java/ca/uhn/fhir/jpa/interceptor/PatientIdPartitionInterceptor.java @@ -36,6 +36,7 @@ import ca.uhn.fhir.model.api.IQueryParameterType; import ca.uhn.fhir.rest.api.server.RequestDetails; import ca.uhn.fhir.rest.param.ReferenceParam; import ca.uhn.fhir.rest.server.exceptions.MethodNotAllowedException; +import ca.uhn.fhir.rest.server.provider.ProviderConstants; import jakarta.annotation.Nonnull; import org.hl7.fhir.instance.model.api.IBaseResource; import org.hl7.fhir.r4.model.IdType; @@ -151,7 +152,12 @@ public class PatientIdPartitionInterceptor { break; case EXTENDED_OPERATION_SERVER: - return provideNonPatientSpecificQueryResponse(theReadDetails); + String extendedOp = theReadDetails.getExtendedOperationName(); + if (ProviderConstants.OPERATION_EXPORT.equals(extendedOp) + || ProviderConstants.OPERATION_EXPORT_POLL_STATUS.equals(extendedOp)) { + return provideNonPatientSpecificQueryResponse(theReadDetails); + } + break; default: // nothing } diff --git a/hapi-fhir-structures-dstu2.1/pom.xml b/hapi-fhir-structures-dstu2.1/pom.xml index 5feea64c5ef..bbabf3e42d2 100644 --- a/hapi-fhir-structures-dstu2.1/pom.xml +++ b/hapi-fhir-structures-dstu2.1/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-structures-dstu2/pom.xml b/hapi-fhir-structures-dstu2/pom.xml index e09675b0c14..0d92336749a 100644 --- a/hapi-fhir-structures-dstu2/pom.xml +++ b/hapi-fhir-structures-dstu2/pom.xml @@ -4,7 +4,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-structures-dstu3/pom.xml b/hapi-fhir-structures-dstu3/pom.xml index 24563186f25..35aea6553c9 100644 --- a/hapi-fhir-structures-dstu3/pom.xml +++ b/hapi-fhir-structures-dstu3/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-structures-hl7org-dstu2/pom.xml b/hapi-fhir-structures-hl7org-dstu2/pom.xml index edede0feca8..760a8f800c1 100644 --- a/hapi-fhir-structures-hl7org-dstu2/pom.xml +++ b/hapi-fhir-structures-hl7org-dstu2/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-structures-r4/pom.xml b/hapi-fhir-structures-r4/pom.xml index 1dcc4bb483b..5192a7cbaad 100644 --- a/hapi-fhir-structures-r4/pom.xml +++ b/hapi-fhir-structures-r4/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-structures-r4b/pom.xml b/hapi-fhir-structures-r4b/pom.xml index e75f5d5931d..fbc83bd2e6f 100644 --- a/hapi-fhir-structures-r4b/pom.xml +++ b/hapi-fhir-structures-r4b/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-structures-r5/pom.xml b/hapi-fhir-structures-r5/pom.xml index d3eaea31a2d..4b1356f4f35 100644 --- a/hapi-fhir-structures-r5/pom.xml +++ b/hapi-fhir-structures-r5/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-test-utilities/pom.xml b/hapi-fhir-test-utilities/pom.xml index a040dbbe3b8..331972a559b 100644 --- a/hapi-fhir-test-utilities/pom.xml +++ b/hapi-fhir-test-utilities/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-testpage-overlay/pom.xml b/hapi-fhir-testpage-overlay/pom.xml index 3cc1275c96a..b998896b055 100644 --- a/hapi-fhir-testpage-overlay/pom.xml +++ b/hapi-fhir-testpage-overlay/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir hapi-fhir - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../pom.xml diff --git a/hapi-fhir-validation-resources-dstu2.1/pom.xml b/hapi-fhir-validation-resources-dstu2.1/pom.xml index f7263c83488..869b2d098d5 100644 --- a/hapi-fhir-validation-resources-dstu2.1/pom.xml +++ b/hapi-fhir-validation-resources-dstu2.1/pom.xml @@ -4,7 +4,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-validation-resources-dstu2/pom.xml b/hapi-fhir-validation-resources-dstu2/pom.xml index 2dcf14738f5..3d369c796be 100644 --- a/hapi-fhir-validation-resources-dstu2/pom.xml +++ b/hapi-fhir-validation-resources-dstu2/pom.xml @@ -4,7 +4,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-validation-resources-dstu3/pom.xml b/hapi-fhir-validation-resources-dstu3/pom.xml index 97aa6040159..b297010c7d7 100644 --- a/hapi-fhir-validation-resources-dstu3/pom.xml +++ b/hapi-fhir-validation-resources-dstu3/pom.xml @@ -4,7 +4,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-validation-resources-r4/pom.xml b/hapi-fhir-validation-resources-r4/pom.xml index 2b42c8253b9..2bf39d8f2de 100644 --- a/hapi-fhir-validation-resources-r4/pom.xml +++ b/hapi-fhir-validation-resources-r4/pom.xml @@ -4,7 +4,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-validation-resources-r4b/pom.xml b/hapi-fhir-validation-resources-r4b/pom.xml index c6daff498bb..1b7d519f581 100644 --- a/hapi-fhir-validation-resources-r4b/pom.xml +++ b/hapi-fhir-validation-resources-r4b/pom.xml @@ -4,7 +4,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-validation-resources-r5/pom.xml b/hapi-fhir-validation-resources-r5/pom.xml index 3524ed588d0..80a6a9bc5c3 100644 --- a/hapi-fhir-validation-resources-r5/pom.xml +++ b/hapi-fhir-validation-resources-r5/pom.xml @@ -4,7 +4,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-validation/pom.xml b/hapi-fhir-validation/pom.xml index 53280b3951e..fd0c291a98b 100644 --- a/hapi-fhir-validation/pom.xml +++ b/hapi-fhir-validation/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir hapi-deployable-pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../hapi-deployable-pom/pom.xml diff --git a/hapi-fhir-validation/src/main/java/org/hl7/fhir/common/hapi/validation/support/RemoteTerminologyServiceValidationSupport.java b/hapi-fhir-validation/src/main/java/org/hl7/fhir/common/hapi/validation/support/RemoteTerminologyServiceValidationSupport.java index 08f94902a66..2e69b1a46cf 100644 --- a/hapi-fhir-validation/src/main/java/org/hl7/fhir/common/hapi/validation/support/RemoteTerminologyServiceValidationSupport.java +++ b/hapi-fhir-validation/src/main/java/org/hl7/fhir/common/hapi/validation/support/RemoteTerminologyServiceValidationSupport.java @@ -12,7 +12,6 @@ import ca.uhn.fhir.i18n.Msg; import ca.uhn.fhir.rest.api.SummaryEnum; import ca.uhn.fhir.rest.client.api.IGenericClient; import ca.uhn.fhir.rest.gclient.IQuery; -import ca.uhn.fhir.rest.server.exceptions.InternalErrorException; import ca.uhn.fhir.util.BundleUtil; import ca.uhn.fhir.util.ParametersUtil; import jakarta.annotation.Nonnull; @@ -314,8 +313,10 @@ public class RemoteTerminologyServiceValidationSupport extends BaseValidationSup conceptProperty = new CodingConceptProperty( propertyName, coding.getSystem(), coding.getCode(), coding.getDisplay()); break; + // TODO: add other property types as per FHIR spec https://github.com/hapifhir/hapi-fhir/issues/5699 default: - throw new InternalErrorException(Msg.code(2450) + "Property type " + fhirType + " is not supported."); + // other types will not fail for Remote Terminology + conceptProperty = new StringConceptProperty(propertyName, value.toString()); } return conceptProperty; } @@ -347,8 +348,10 @@ public class RemoteTerminologyServiceValidationSupport extends BaseValidationSup conceptProperty = new CodingConceptProperty(theName, coding.getSystem(), coding.getCode(), coding.getDisplay()); break; + // TODO: add other property types as per FHIR spec https://github.com/hapifhir/hapi-fhir/issues/5699 default: - throw new InternalErrorException(Msg.code(2451) + "Property type " + fhirType + " is not supported."); + // other types will not fail for Remote Terminology + conceptProperty = new StringConceptProperty(theName, theValue.toString()); } return conceptProperty; } @@ -447,8 +450,10 @@ public class RemoteTerminologyServiceValidationSupport extends BaseValidationSup conceptProperty = new CodingConceptProperty( propertyName, coding.getSystem(), coding.getCode(), coding.getDisplay()); break; + // TODO: add other property types as per FHIR spec https://github.com/hapifhir/hapi-fhir/issues/5699 default: - throw new InternalErrorException(Msg.code(2452) + "Property type " + fhirType + " is not supported."); + // other types will not fail for Remote Terminology + conceptProperty = new StringConceptProperty(propertyName, value.toString()); } return conceptProperty; } @@ -467,8 +472,10 @@ public class RemoteTerminologyServiceValidationSupport extends BaseValidationSup conceptProperty = new CodingConceptProperty(theName, coding.getSystem(), coding.getCode(), coding.getDisplay()); break; + // TODO: add other property types as per FHIR spec https://github.com/hapifhir/hapi-fhir/issues/5699 default: - throw new InternalErrorException(Msg.code(2453) + "Property type " + fhirType + " is not supported."); + // other types will not fail for Remote Terminology + conceptProperty = new StringConceptProperty(theName, theValue.toString()); } return conceptProperty; } diff --git a/hapi-fhir-validation/src/test/java/org/hl7/fhir/common/hapi/validation/ILookupCodeTest.java b/hapi-fhir-validation/src/test/java/org/hl7/fhir/common/hapi/validation/ILookupCodeTest.java index 966a795eef3..0b4624d733f 100644 --- a/hapi-fhir-validation/src/test/java/org/hl7/fhir/common/hapi/validation/ILookupCodeTest.java +++ b/hapi-fhir-validation/src/test/java/org/hl7/fhir/common/hapi/validation/ILookupCodeTest.java @@ -39,44 +39,11 @@ public interface ILookupCodeTest { IResourceProvider getCodeSystemProvider(); } - @Nested - interface ILookupCodeUnsupportedPropertyTypeTest extends IValidationTest { - - String getInvalidValueErrorCode(); - - String getInvalidValueErrorCodeForConvert(); - - @Override - IMySimpleCodeSystemProvider getCodeSystemProvider(); - - @Test - default void testLookupCode_forCodeSystemWithPropertyInvalidValue_throwsException() { - // test and verify - try { - getService().lookupCode(null, new LookupCodeRequest(CODE_SYSTEM, CODE, LANGUAGE, null)); - fail(); - } catch (InternalErrorException e) { - assertTrue(e.getMessage().contains(getInvalidValueErrorCode() + ": Property type " + getCodeSystemProvider().getPropertyValue().fhirType() + " is not supported")); - } - } - - @Test - default void testCreateConceptProperty_forCodeSystemWithPropertyInvalidValue_throwsException() { - // test and verify - try { - RemoteTerminologyServiceValidationSupport.createConceptProperty("property", getCodeSystemProvider().getPropertyValue()); - fail(); - } catch (InternalErrorException e) { - assertTrue(e.getMessage().contains(getInvalidValueErrorCodeForConvert() + ": Property type " + getCodeSystemProvider().getPropertyValue().fhirType() + " is not supported")); - } - } - } - @Nested interface ILookupCodeSupportedPropertyTest extends IValidationTest { IMyCodeSystemProvider getCodeSystemProvider(); - Stream getEmptyPropertyValues(); + Stream getEmptyPropertyValues(); Stream getPropertyValues(); diff --git a/hapi-fhir-validation/src/test/java/org/hl7/fhir/dstu3/hapi/validation/LookupCodeDstu3Test.java b/hapi-fhir-validation/src/test/java/org/hl7/fhir/dstu3/hapi/validation/LookupCodeDstu3Test.java index 6bf78229f1e..404d971928e 100644 --- a/hapi-fhir-validation/src/test/java/org/hl7/fhir/dstu3/hapi/validation/LookupCodeDstu3Test.java +++ b/hapi-fhir-validation/src/test/java/org/hl7/fhir/dstu3/hapi/validation/LookupCodeDstu3Test.java @@ -4,17 +4,14 @@ import ca.uhn.fhir.context.FhirContext; import ca.uhn.fhir.context.support.IValidationSupport; import ca.uhn.fhir.context.support.IValidationSupport.ConceptDesignation; import ca.uhn.fhir.context.support.IValidationSupport.LookupCodeResult; -import ca.uhn.fhir.i18n.Msg; import ca.uhn.fhir.jpa.model.util.JpaConstants; import ca.uhn.fhir.rest.annotation.Operation; import ca.uhn.fhir.rest.annotation.OperationParam; import ca.uhn.fhir.rest.api.server.RequestDetails; import ca.uhn.fhir.rest.client.interceptor.LoggingInterceptor; -import ca.uhn.fhir.rest.server.exceptions.InternalErrorException; import ca.uhn.fhir.test.utilities.server.RestfulServerExtension; import jakarta.servlet.http.HttpServletRequest; import org.hl7.fhir.common.hapi.validation.ILookupCodeTest.ILookupCodeSupportedPropertyTest; -import org.hl7.fhir.common.hapi.validation.ILookupCodeTest.ILookupCodeUnsupportedPropertyTypeTest; import org.hl7.fhir.common.hapi.validation.ILookupCodeTest.IMyCodeSystemProvider; import org.hl7.fhir.common.hapi.validation.ILookupCodeTest.IMySimpleCodeSystemProvider; import org.hl7.fhir.common.hapi.validation.support.RemoteTerminologyServiceValidationSupport; @@ -29,12 +26,17 @@ import org.hl7.fhir.dstu3.model.Type; import org.hl7.fhir.dstu3.model.UriType; import org.hl7.fhir.instance.model.api.IBaseDatatype; import org.hl7.fhir.instance.model.api.IBaseResource; +import org.hl7.fhir.r4.model.DateTimeType; +import org.hl7.fhir.r4.model.DecimalType; +import org.hl7.fhir.r4.model.InstantType; +import org.hl7.fhir.r4.model.IntegerType; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.TestInstance; import org.junit.jupiter.api.extension.RegisterExtension; import org.junit.jupiter.params.provider.Arguments; +import java.util.Calendar; import java.util.List; import java.util.stream.Stream; @@ -57,40 +59,6 @@ public class LookupCodeDstu3Test { mySvc.addClientInterceptor(new LoggingInterceptor(true)); } - @TestInstance(TestInstance.Lifecycle.PER_CLASS) - @Nested - class LookupCodeUnsupportedPropertyTypeDstu3Test implements ILookupCodeUnsupportedPropertyTypeTest { - private final MySimplePropertyCodeSystemProviderDstu3 myMySimplePropertyCodeSystemProvider = new MySimplePropertyCodeSystemProviderDstu3(); - - @Override - public IMySimpleCodeSystemProvider getCodeSystemProvider() { - return myMySimplePropertyCodeSystemProvider; - } - - @Override - public RemoteTerminologyServiceValidationSupport getService() { - return mySvc; - } - - @Override - public String getInvalidValueErrorCode() { - return "HAPI-2450"; - } - - @Override - public String getInvalidValueErrorCodeForConvert() { - return "HAPI-2451"; - } - - @BeforeEach - public void before() { - // TODO: use another type when "code" is added to the supported types - myMySimplePropertyCodeSystemProvider.myPropertyName = "somePropertyName"; - myMySimplePropertyCodeSystemProvider.myPropertyValue = new CodeType("someCode"); - ourRestfulServerExtension.getRestfulServer().registerProvider(myMySimplePropertyCodeSystemProvider); - } - } - @TestInstance(TestInstance.Lifecycle.PER_CLASS) @Nested class ILookupCodeSupportedPropertyDstu3Test implements ILookupCodeSupportedPropertyTest { @@ -116,8 +84,13 @@ public class LookupCodeDstu3Test { String type = theConceptProperty.getType(); switch (type) { case IValidationSupport.TYPE_STRING -> { - assertTrue(theExpectedValue instanceof StringType); - StringType stringValue = (StringType) theExpectedValue; + if (!(theExpectedValue instanceof StringType stringValue)) { + // TODO: remove this branch to test other property types as per FHIR spec https://github.com/hapifhir/hapi-fhir/issues/5699 + IValidationSupport.StringConceptProperty stringConceptProperty = (IValidationSupport.StringConceptProperty) theConceptProperty; + assertEquals(theExpectedValue.toString(), stringConceptProperty.getValue()); + break; + } + // StringType stringValue = (StringType) theExpectedValue; assertTrue(theConceptProperty instanceof StringConceptProperty); StringConceptProperty stringConceptProperty = (StringConceptProperty) theConceptProperty; assertEquals(stringValue.getValue(), stringConceptProperty.getValue()); @@ -131,8 +104,10 @@ public class LookupCodeDstu3Test { assertEquals(coding.getSystem(), codingConceptProperty.getCodeSystem()); assertEquals(coding.getDisplay(), codingConceptProperty.getDisplay()); } - default -> - throw new InternalErrorException(Msg.code(2451) + "Property type " + type + " is not supported."); + default -> { + IValidationSupport.StringConceptProperty stringConceptProperty = (IValidationSupport.StringConceptProperty) theConceptProperty; + assertEquals(theExpectedValue.toString(), stringConceptProperty.getValue()); + } } } @@ -149,8 +124,27 @@ public class LookupCodeDstu3Test { public Stream getPropertyValues() { return Stream.of( + // FHIR DSTU3 spec types Arguments.arguments(new StringType("value")), - Arguments.arguments(new Coding("code", "system", "display")) + Arguments.arguments(new Coding("code", "system", "display")), + Arguments.arguments(new CodeType("code")), + Arguments.arguments(new BooleanType(true)), + Arguments.arguments(new IntegerType(1)), + Arguments.arguments(new DateTimeType(Calendar.getInstance())), + // other types will also not fail for Remote Terminology + Arguments.arguments(new DecimalType(1.1)), + Arguments.arguments(new InstantType(Calendar.getInstance())), + Arguments.arguments(new Type() { + @Override + protected Type typedCopy() { + return this; + } + + @Override + public String toString() { + return "randomType"; + } + }) ); } diff --git a/hapi-fhir-validation/src/test/java/org/hl7/fhir/r4/validation/LookupCodeR4Test.java b/hapi-fhir-validation/src/test/java/org/hl7/fhir/r4/validation/LookupCodeR4Test.java index 9fb662a8a3b..f01e66c16c2 100644 --- a/hapi-fhir-validation/src/test/java/org/hl7/fhir/r4/validation/LookupCodeR4Test.java +++ b/hapi-fhir-validation/src/test/java/org/hl7/fhir/r4/validation/LookupCodeR4Test.java @@ -2,17 +2,14 @@ package org.hl7.fhir.r4.validation; import ca.uhn.fhir.context.FhirContext; import ca.uhn.fhir.context.support.IValidationSupport; -import ca.uhn.fhir.i18n.Msg; import ca.uhn.fhir.jpa.model.util.JpaConstants; import ca.uhn.fhir.rest.annotation.Operation; import ca.uhn.fhir.rest.annotation.OperationParam; import ca.uhn.fhir.rest.api.server.RequestDetails; import ca.uhn.fhir.rest.client.interceptor.LoggingInterceptor; -import ca.uhn.fhir.rest.server.exceptions.InternalErrorException; import ca.uhn.fhir.test.utilities.server.RestfulServerExtension; import jakarta.servlet.http.HttpServletRequest; import org.hl7.fhir.common.hapi.validation.ILookupCodeTest.ILookupCodeSupportedPropertyTest; -import org.hl7.fhir.common.hapi.validation.ILookupCodeTest.ILookupCodeUnsupportedPropertyTypeTest; import org.hl7.fhir.common.hapi.validation.ILookupCodeTest.IMyCodeSystemProvider; import org.hl7.fhir.common.hapi.validation.ILookupCodeTest.IMySimpleCodeSystemProvider; import org.hl7.fhir.common.hapi.validation.support.RemoteTerminologyServiceValidationSupport; @@ -23,6 +20,10 @@ import org.hl7.fhir.r4.model.BooleanType; import org.hl7.fhir.r4.model.CodeSystem; import org.hl7.fhir.r4.model.CodeType; import org.hl7.fhir.r4.model.Coding; +import org.hl7.fhir.r4.model.DateTimeType; +import org.hl7.fhir.r4.model.DecimalType; +import org.hl7.fhir.r4.model.InstantType; +import org.hl7.fhir.r4.model.IntegerType; import org.hl7.fhir.r4.model.Parameters; import org.hl7.fhir.r4.model.StringType; import org.hl7.fhir.r4.model.Type; @@ -33,6 +34,7 @@ import org.junit.jupiter.api.TestInstance; import org.junit.jupiter.api.extension.RegisterExtension; import org.junit.jupiter.params.provider.Arguments; +import java.util.Calendar; import java.util.List; import java.util.stream.Stream; @@ -52,41 +54,6 @@ public class LookupCodeR4Test { mySvc.addClientInterceptor(new LoggingInterceptor(true)); } - @TestInstance(TestInstance.Lifecycle.PER_CLASS) - @Nested - class LookupCodeUnsupportedPropertyTypeR4Test implements ILookupCodeUnsupportedPropertyTypeTest { - private final MySimplePropertyCodeSystemProviderR4 myMySimplePropertyCodeSystemProvider = new MySimplePropertyCodeSystemProviderR4(); - - @Override - public IMySimpleCodeSystemProvider getCodeSystemProvider() { - return myMySimplePropertyCodeSystemProvider; - } - - @Override - public RemoteTerminologyServiceValidationSupport getService() { - return mySvc; - } - - @Override - public String getInvalidValueErrorCode() { - return "HAPI-2452"; - } - - - @Override - public String getInvalidValueErrorCodeForConvert() { - return "HAPI-2453"; - } - - @BeforeEach - public void before() { - // TODO: use another type when "code" is added to the supported types - myMySimplePropertyCodeSystemProvider.myPropertyName = "somePropertyName"; - myMySimplePropertyCodeSystemProvider.myPropertyValue = new CodeType("someCode"); - ourRestfulServerExtension.getRestfulServer().registerProvider(myMySimplePropertyCodeSystemProvider); - } - } - @TestInstance(TestInstance.Lifecycle.PER_CLASS) @Nested class ILookupCodeSupportedPropertyR4Test implements ILookupCodeSupportedPropertyTest { @@ -113,8 +80,13 @@ public class LookupCodeR4Test { String type = theConceptProperty.getType(); switch (type) { case IValidationSupport.TYPE_STRING -> { - assertTrue(theExpectedValue instanceof StringType); - StringType stringValue = (StringType) theExpectedValue; + if (!(theExpectedValue instanceof StringType stringValue)) { + // TODO: remove this branch to test other property types as per FHIR spec https://github.com/hapifhir/hapi-fhir/issues/5699 + IValidationSupport.StringConceptProperty stringConceptProperty = (IValidationSupport.StringConceptProperty) theConceptProperty; + assertEquals(theExpectedValue.toString(), stringConceptProperty.getValue()); + break; + } + // StringType stringValue = (StringType) theExpectedValue; assertTrue(theConceptProperty instanceof IValidationSupport.StringConceptProperty); IValidationSupport.StringConceptProperty stringConceptProperty = (IValidationSupport.StringConceptProperty) theConceptProperty; assertEquals(stringValue.getValue(), stringConceptProperty.getValue()); @@ -128,8 +100,10 @@ public class LookupCodeR4Test { assertEquals(coding.getSystem(), codingConceptProperty.getCodeSystem()); assertEquals(coding.getDisplay(), codingConceptProperty.getDisplay()); } - default -> - throw new InternalErrorException(Msg.code(2451) + "Property type " + type + " is not supported."); + default -> { + IValidationSupport.StringConceptProperty stringConceptProperty = (IValidationSupport.StringConceptProperty) theConceptProperty; + assertEquals(theExpectedValue.toString(), stringConceptProperty.getValue()); + } } } @@ -146,13 +120,29 @@ public class LookupCodeR4Test { public Stream getPropertyValues() { return Stream.of( + // FHIR R4 spec types Arguments.arguments(new StringType("value")), - Arguments.arguments(new Coding("code", "system", "display")) + Arguments.arguments(new Coding("code", "system", "display")), + Arguments.arguments(new CodeType("code")), + Arguments.arguments(new BooleanType(true)), + Arguments.arguments(new IntegerType(1)), + Arguments.arguments(new DateTimeType(Calendar.getInstance())), + Arguments.arguments(new DecimalType(1.1)), + // other types will also not fail for Remote Terminology + Arguments.arguments(new InstantType(Calendar.getInstance())), + Arguments.arguments(new Type() { + @Override + protected Type typedCopy() { + return this; + } + @Override + public String toString() { + return "randomType"; + } + }) ); } - - public Stream getDesignations() { return Stream.of( Arguments.arguments(new IValidationSupport.ConceptDesignation().setLanguage("en").setUseCode("code1").setUseSystem("system-1").setUseDisplay("display").setValue("some value")), diff --git a/hapi-tinder-plugin/pom.xml b/hapi-tinder-plugin/pom.xml index 5b0ff5ea727..202e0c5e60f 100644 --- a/hapi-tinder-plugin/pom.xml +++ b/hapi-tinder-plugin/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir hapi-fhir - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../pom.xml diff --git a/hapi-tinder-test/pom.xml b/hapi-tinder-test/pom.xml index 1baa86aedee..1bcfe10762e 100644 --- a/hapi-tinder-test/pom.xml +++ b/hapi-tinder-test/pom.xml @@ -4,7 +4,7 @@ ca.uhn.hapi.fhir hapi-fhir - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../pom.xml diff --git a/pom.xml b/pom.xml index b219abc329c..30a683dc67a 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ ca.uhn.hapi.fhir hapi-fhir pom - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT HAPI-FHIR An open-source implementation of the FHIR specification in Java. @@ -1002,7 +1002,7 @@ 1.0.8 - 3.0.0-PRE14 + 3.0.0-PRE17 5.4.1 diff --git a/release-pipeline.yml b/release-pipeline.yml index 6142cc53b91..766456fce09 100644 --- a/release-pipeline.yml +++ b/release-pipeline.yml @@ -140,7 +140,9 @@ jobs: # want to fail fast if there is an issue, and avoid running the tests more than once, so it doesn't take all day. timeoutInMinutes: 360 dependsOn: ['get_release_version', 'get_branch_id'] - container: maven:3.9-eclipse-temurin-21-jammy + container: + image: smilecdr/hapi-build:latest + steps: - task: Cache@2 inputs: @@ -153,7 +155,7 @@ jobs: releaseType: stable - task: Maven@3 env: - JAVA_HOME_11_X64: /usr/java/openjdk + JAVA_HOME_11_X64: /opt/java/openjdk displayName: Checkstyle Build inputs: mavenPomFile: 'hapi-fhir-checkstyle/pom.xml' diff --git a/tests/hapi-fhir-base-test-jaxrsserver-kotlin/pom.xml b/tests/hapi-fhir-base-test-jaxrsserver-kotlin/pom.xml index 5eb7176ab8f..bcccdf8b2dc 100644 --- a/tests/hapi-fhir-base-test-jaxrsserver-kotlin/pom.xml +++ b/tests/hapi-fhir-base-test-jaxrsserver-kotlin/pom.xml @@ -7,7 +7,7 @@ ca.uhn.hapi.fhir hapi-fhir - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../../pom.xml diff --git a/tests/hapi-fhir-base-test-mindeps-client/pom.xml b/tests/hapi-fhir-base-test-mindeps-client/pom.xml index a3a7e4f29f6..b6c7b5b3a09 100644 --- a/tests/hapi-fhir-base-test-mindeps-client/pom.xml +++ b/tests/hapi-fhir-base-test-mindeps-client/pom.xml @@ -4,7 +4,7 @@ ca.uhn.hapi.fhir hapi-fhir - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../../pom.xml diff --git a/tests/hapi-fhir-base-test-mindeps-server/pom.xml b/tests/hapi-fhir-base-test-mindeps-server/pom.xml index 935b0881c29..8d82179e717 100644 --- a/tests/hapi-fhir-base-test-mindeps-server/pom.xml +++ b/tests/hapi-fhir-base-test-mindeps-server/pom.xml @@ -5,7 +5,7 @@ ca.uhn.hapi.fhir hapi-fhir - 7.1.4-SNAPSHOT + 7.1.5-SNAPSHOT ../../pom.xml