* Add fallback for versioned base FHIR StructureDefinition lookups
Problem:
Implementation Guides (e.g., ch-core) may reference base FHIR resources
with explicit versions like "http://hl7.org/fhir/StructureDefinition/Organization|4.0.1".
These lookups fail because base FHIR StructureDefinitions are intentionally
cached without version (see hapi-fhir PR #7236).
This causes validation errors like:
- "Unable to resolve the profile reference '...|4.0.1'"
- "Invalid Resource target type. Found Organization, but expected one of ([])"
Solution:
Add VersionedUrlFallbackValidationSupport that intercepts versioned lookups
for base FHIR StructureDefinitions (http://hl7.org/fhir/StructureDefinition/*)
and falls back to:
1. Major.minor version (e.g., 4.0.1 -> 4.0)
2. Non-versioned URL
The fallback logs a warning when triggered, allowing visibility into
which IGs reference versioned base resources.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Remove duplicates
* formatting
* removing unneeded thread local
* corrected according to review
* cleanup
* removed not needed const
* tests include some chain now
* Update src/test/java/ca/uhn/fhir/jpa/starter/validation/VersionedUrlFallbackValidationSupportTest.java
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* updated doc
* adding tests
* Add TODO comment for core fix in validation support
Added a comment indicating a TODO for future improvement.
* Update TODO comment for core fix in validation support
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Add TestContainerHelper for PostgreSQL and Elasticsearch integration testing
* Add configuration files for Elasticsearch and PostgreSQL integration testing
* Refactor integration tests to utilize TestContainerHelper for PostgreSQL and Elasticsearch
* Add Elasticsearch configuration section to application.yaml
* Add configuration for reindexing resources upon search parameter change
* Add Elasticsearch client configuration for testing
* Update logback dependencies because of a security issue and enable resource filtering in pom.xml
* Add application name and tester configuration to application.yaml. Refactor hibernate properties
* Add custom Elasticsearch configuration to create ElasticsearchClient bean
* Add index prefix configuration for Elasticsearch indices
* Fix Elasticsearch URI format in test initialization
* Refactor ElasticsearchConfig for improved readability and code style consistency (spotless:apply)
* Refactor ElasticsearchConfig for improved readability and code style consistency (spotless:apply)
* Update index prefix in application.yaml for Elasticsearch configuration
* Enhance index prefix validation and add sanitization method for Elasticsearch index names
* Merged with master in upstream
* Refactor ElasticsearchBootSvcImpl and ElasticsearchConfig for improved readability (mvn spotless)
* Comment out custom_content_path in application.yaml for clarity
* - Refactor application.yaml for improved structure and readability;
- Add PostgresLucenePatientIT integration test; and
- Update testcontainers dependencies to avoid compatibility issues with newer Docker APIs.
* Refactor PostgresLucenePatientIT to use external configuration file for test properties
* Add integration tests for PostgreSQL and Elasticsearch with dynamic configuration
* Increase socket timeout in CdsHooksServletIT for improved stability during tests
* Remove deprecated tester configuration from application.yaml