Rel 7 0 mb 2 (#5714)
* 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 <long@smilecdr.com>
* 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 <etienne.poirier@smilecdr.com>
* 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 <etienne.poirier@smilecdr.com>
* simple fix (#5630)
Co-authored-by: Long Ma <long@smilecdr.com>
* 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 <michaelabuckley@gmail.com>
* Code review feedback.
---------
Co-authored-by: Michael Buckley <michaelabuckley@gmail.com>
* 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 <juan.marchionatto@smilecdr.com>
* 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 46c672b338
.
* 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 <michaelabuckley@gmail.com>
Co-authored-by: James Agnew <jamesagnew@gmail.com>
* pom bump, doc add, version enum add (#5616)
Co-authored-by: Long Ma <long@smilecdr.com>
* fix default partition setting on resource (#5618)
* fix default partition setting on resource
* Handle DEFAULT partition in rule checker.
Co-authored-by: Ken Stevens <khstevens@gmail.com>
* 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 <juan.marchionatto@smilecdr.com>
* 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 <ohe@trifork.com>
Co-authored-by: Ken Stevens <khstevens@gmail.com>
Co-authored-by: Michael Buckley <michaelabuckley@gmail.com>
Co-authored-by: James Agnew <jamesagnew@gmail.com>
Co-authored-by: longma1 <32119004+longma1@users.noreply.github.com>
Co-authored-by: Long Ma <long@smilecdr.com>
Co-authored-by: jmarchionatto <60409882+jmarchionatto@users.noreply.github.com>
Co-authored-by: juan.marchionatto <juan.marchionatto@smilecdr.com>
* $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 <garygrantgraham@gmail.com>
---------
Co-authored-by: Tadgh <garygrantgraham@gmail.com>
* 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 <long@smilecdr.com>
Co-authored-by: Tadgh <garygrantgraham@gmail.com>
Co-authored-by: Etienne Poirier <33007955+epeartree@users.noreply.github.com>
Co-authored-by: peartree <etienne.poirier@smilecdr.com>
Co-authored-by: Nathan Doef <n.doef@protonmail.com>
Co-authored-by: volodymyr-korzh <132366313+volodymyr-korzh@users.noreply.github.com>
Co-authored-by: Luke deGruchy <luke.degruchy@smilecdr.com>
Co-authored-by: Michael Buckley <michaelabuckley@gmail.com>
Co-authored-by: Martha Mitran <martha.mitran@smilecdr.com>
Co-authored-by: JP <jonathan.i.percival@gmail.com>
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 <juan.marchionatto@smilecdr.com>
Co-authored-by: Ole Hedegaard <ohe@trifork.com>
Co-authored-by: Ken Stevens <khstevens@gmail.com>
Co-authored-by: James Agnew <jamesagnew@gmail.com>
Co-authored-by: markiantorno <markiantorno@gmail.com>
This commit is contained in:
parent
e759bc0958
commit
28a1a4d4df
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -136,7 +136,6 @@ public enum VersionEnum {
|
|||
|
||||
V7_0_0,
|
||||
V7_0_1,
|
||||
|
||||
V7_1_0,
|
||||
V7_2_0;
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir-bom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<packaging>pom</packaging>
|
||||
<name>HAPI FHIR BOM</name>
|
||||
|
@ -12,7 +12,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir-cli</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -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."
|
|
@ -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."
|
|
@ -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."
|
|
@ -11,7 +11,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<parent>
|
||||
<artifactId>hapi-fhir-serviceloaders</artifactId>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<parent>
|
||||
<artifactId>hapi-fhir-serviceloaders</artifactId>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
@ -21,7 +21,7 @@
|
|||
<dependency>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir-caching-api</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
</dependency>
|
||||
<dependency>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<parent>
|
||||
<artifactId>hapi-fhir-serviceloaders</artifactId>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<parent>
|
||||
<artifactId>hapi-fhir</artifactId>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir-spring-boot-samples</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>hapi-fhir-spring-boot-sample-client-apache</artifactId>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir-spring-boot-samples</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir-spring-boot-samples</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir-spring-boot</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
</parent>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -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<p>**Allocation:**<br/>The member was enrolled with a medical benefit throughout the Participation Period.</p><p>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).</p><p>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.</p><p>**Reporting:**<br/>For Medicare plans, the SES stratifications are mutually exclusive. NCQA calculates a total rate for Medicare plans by adding all six Medicare stratifications.</p><p>SES and product line stratifications are not included in the measure calculation logic and need to be programmed manually.</p><p>**Stratification:**<br/>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.</p>",
|
||||
"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"
|
||||
},
|
||||
|
|
|
@ -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": {
|
||||
|
|
|
@ -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"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
|
@ -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": [
|
||||
{
|
||||
|
|
|
@ -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"
|
||||
},
|
||||
|
|
|
@ -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"
|
||||
},
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-deployable-pom</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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<Arguments> getEmptyPropertyValues();
|
||||
Stream<Arguments> getEmptyPropertyValues();
|
||||
|
||||
Stream<Arguments> getPropertyValues();
|
||||
|
||||
|
|
|
@ -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<Arguments> 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";
|
||||
}
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -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<Arguments> 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<Arguments> getDesignations() {
|
||||
return Stream.of(
|
||||
Arguments.arguments(new IValidationSupport.ConceptDesignation().setLanguage("en").setUseCode("code1").setUseSystem("system-1").setUseDisplay("display").setValue("some value")),
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
4
pom.xml
4
pom.xml
|
@ -9,7 +9,7 @@
|
|||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<name>HAPI-FHIR</name>
|
||||
<description>An open-source implementation of the FHIR specification in Java.</description>
|
||||
|
@ -1002,7 +1002,7 @@
|
|||
<ucum_version>1.0.8</ucum_version>
|
||||
|
||||
<!-- CQL Support -->
|
||||
<clinical-reasoning.version>3.0.0-PRE14</clinical-reasoning.version>
|
||||
<clinical-reasoning.version>3.0.0-PRE17</clinical-reasoning.version>
|
||||
|
||||
<!-- Site properties -->
|
||||
<fontawesomeVersion>5.4.1</fontawesomeVersion>
|
||||
|
|
|
@ -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'
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||
<artifactId>hapi-fhir</artifactId>
|
||||
<version>7.1.4-SNAPSHOT</version>
|
||||
<version>7.1.5-SNAPSHOT</version>
|
||||
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
|
Loading…
Reference in New Issue