Commit 68d1aeb
ValueSet code case sensitivity (#7395)
* fix with test
* Add changelog entry for ValueSet case-sensitive code fix
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <[email protected]>
* Fix ValueSet expansion test to properly validate case-sensitive code matching
Updated testExpandValueSet_CaseSensitiveCodeSystem_CodesWithDifferentCase to use
FRAGMENT content mode and include entire system instead of enumerating specific
concepts. This ensures the test exercises the Hibernate Search code path where
the case-sensitivity bug manifests, providing proper TDD validation.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <[email protected]>
* fix with test
* fix with test
* Fix ValueSet expansion for case-sensitive CodeSystems with FRAGMENT content
When a user persists a CodeSystem that overrides a built-in HL7 CodeSystem,
the JPA-persisted version should take precedence over the built-in default.
This is critical for case-sensitive CodeSystems where codes differ only by
case (e.g., "drug" vs "Drug").
The fix:
- Add removeCodeSystem/removeValueSet methods to DefaultProfileValidationSupport
to selectively remove URLs from the in-memory cache
- At startup, scan JPA for persisted CodeSystem/ValueSet URLs and remove them
from the default profile cache so JPA versions take precedence
- When a CodeSystem or ValueSet is created/updated, remove its URL from the
default profile cache and invalidate validation caches
- Fix lazy initialization issue where removal was silently ignored if the
terminology maps hadn't been initialized yet
- Add null checks for delete operations where the resource may be null
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <[email protected]>
* fix test
* back out first change
* back out first change
* add fix discussed with James
* Add changelog entry for database validation override setting
Adds changelog documenting the new JpaStorageSettings.setAllowDatabaseValidationOverride()
setting which allows database-stored CodeSystem and ValueSet resources to take
precedence over built-in default profile validation resources.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <[email protected]>
* fix version
* Add documentation for allowDatabaseValidationOverride setting
Documents the new JpaStorageSettings.setAllowDatabaseValidationOverride(boolean)
setting in the validation support modules documentation, explaining how it can
be used to give database-stored terminology resources precedence over built-in
HL7 definitions during validation.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <[email protected]>
* doc
* spotless and review feedback
* version bump
---------
Co-authored-by: Ken Stevens <[email protected]>
Co-authored-by: Claude <[email protected]>1 parent 68a150c commit 68d1aeb
File tree
85 files changed
+294
-83
lines changed- hapi-deployable-pom
- hapi-fhir-android
- hapi-fhir-base
- hapi-fhir-bom
- hapi-fhir-checkstyle
- hapi-fhir-client-apache-http5
- hapi-fhir-client-okhttp
- hapi-fhir-client
- hapi-fhir-cli
- hapi-fhir-cli-api
- hapi-fhir-cli-app
- hapi-fhir-converter
- hapi-fhir-dist
- hapi-fhir-docs
- src/main/resources/ca/uhn/hapi/fhir
- changelog/8_8_0
- docs/validation
- hapi-fhir-jacoco
- hapi-fhir-jaxrsserver-base
- hapi-fhir-jpa-hibernate-services
- hapi-fhir-jpaserver-base
- src/main/java/ca/uhn/fhir/jpa/validation
- hapi-fhir-jpaserver-elastic-test-utilities
- hapi-fhir-jpaserver-hfql
- hapi-fhir-jpaserver-ips
- hapi-fhir-jpaserver-mdm
- hapi-fhir-jpaserver-model
- hapi-fhir-jpaserver-searchparam
- hapi-fhir-jpaserver-subscription
- hapi-fhir-jpaserver-test-dstu2
- hapi-fhir-jpaserver-test-dstu3
- hapi-fhir-jpaserver-test-r4b
- hapi-fhir-jpaserver-test-r4
- src/test/java/ca/uhn/fhir/jpa/term
- hapi-fhir-jpaserver-test-r5
- hapi-fhir-jpaserver-test-utilities
- hapi-fhir-jpaserver-uhnfhirtest
- hapi-fhir-jpa
- hapi-fhir-repositories
- hapi-fhir-server-cds-hooks
- hapi-fhir-server-mdm
- hapi-fhir-server-openapi
- hapi-fhir-server
- hapi-fhir-serviceloaders
- hapi-fhir-caching-api
- hapi-fhir-caching-caffeine
- hapi-fhir-caching-guava
- hapi-fhir-caching-testing
- hapi-fhir-spring-boot
- hapi-fhir-spring-boot-autoconfigure
- hapi-fhir-spring-boot-samples
- hapi-fhir-spring-boot-sample-client-apache
- hapi-fhir-spring-boot-sample-client-okhttp
- hapi-fhir-spring-boot-sample-server-jersey
- hapi-fhir-spring-boot-starter
- hapi-fhir-sql-migrate
- hapi-fhir-storage-batch2-jobs
- hapi-fhir-storage-batch2-test-utilities
- hapi-fhir-storage-batch2
- hapi-fhir-storage-mdm
- hapi-fhir-storage-test-utilities
- hapi-fhir-storage
- src/main/java/ca/uhn/fhir/jpa/api/config
- hapi-fhir-structures-dstu2.1
- hapi-fhir-structures-dstu2
- hapi-fhir-structures-dstu3
- hapi-fhir-structures-hl7org-dstu2
- hapi-fhir-structures-r4b
- hapi-fhir-structures-r4
- hapi-fhir-structures-r5
- hapi-fhir-test-utilities
- hapi-fhir-testpage-overlay
- hapi-fhir-validation-resources-dstu2.1
- hapi-fhir-validation-resources-dstu2
- hapi-fhir-validation-resources-dstu3
- hapi-fhir-validation-resources-r4b
- hapi-fhir-validation-resources-r4
- hapi-fhir-validation-resources-r5
- hapi-fhir-validation
- src/main/java/org/hl7/fhir/common/hapi/validation/support
- hapi-tinder-plugin
- hapi-tinder-test
- tests
- hapi-fhir-base-test-jaxrsserver-kotlin
- hapi-fhir-base-test-mindeps-client
- hapi-fhir-base-test-mindeps-server
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
85 files changed
+294
-83
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
| 8 | + | |
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
| 8 | + | |
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
| 8 | + | |
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | | - | |
| 7 | + | |
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
15 | | - | |
| 15 | + | |
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
| 8 | + | |
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | | - | |
| 7 | + | |
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
| 9 | + | |
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
| 8 | + | |
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | | - | |
| 7 | + | |
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | | - | |
| 7 | + | |
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| |||
0 commit comments