Add fallback for versioned base FHIR StructureDefinition lookups (#911)

* 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>
This commit is contained in:
Jens Kristian Villadsen
2026-02-05 15:28:02 +01:00
committed by GitHub
parent fc395b613a
commit 63256fe1d2
4 changed files with 599 additions and 0 deletions

1
.gitignore vendored
View File

@@ -167,3 +167,4 @@ Temporary Items
# Helm Chart dependencies
**/charts/*.tgz
.claude