diff --git a/ReleaseNotes.md b/ReleaseNotes.md index a497cba..be984db 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -2,6 +2,11 @@ # Release Notes Gematik Referenzvalidator +## Release 2.1.1 + +### fixed +- while using plugins the validator didn't recognize profiles without the pipe and version for the profile URL. The issue has been fixed. Now both piped and non-piped profile URLs are recognized correctly. + ## Release 2.1.0 ### added diff --git a/cli/pom.xml b/cli/pom.xml index 96f8ede..38a2eec 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -5,7 +5,7 @@ referencevalidator de.gematik.refv - 2.1.0 + 2.1.1 ${basedir}/target/test-classes/pluginloader-integration-test diff --git a/commons/pom.xml b/commons/pom.xml index d22daaa..6934836 100644 --- a/commons/pom.xml +++ b/commons/pom.xml @@ -5,7 +5,7 @@ referencevalidator de.gematik.refv - 2.1.0 + 2.1.1 4.0.0 diff --git a/core/pom.xml b/core/pom.xml index d79df73..a6fe9cc 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -5,7 +5,7 @@ referencevalidator de.gematik.refv - 2.1.0 + 2.1.1 4.0.0 diff --git a/core/src/main/java/de/gematik/refv/plugins/validation/PluginValidationResourceProvider.java b/core/src/main/java/de/gematik/refv/plugins/validation/PluginValidationResourceProvider.java index dd580d6..9ca7997 100644 --- a/core/src/main/java/de/gematik/refv/plugins/validation/PluginValidationResourceProvider.java +++ b/core/src/main/java/de/gematik/refv/plugins/validation/PluginValidationResourceProvider.java @@ -117,6 +117,7 @@ private Map getSupportedProfiles(@NonNull Stri ProfileConfiguration profileConfiguration = new ProfileConfiguration(List.of(fhirPackageName), null); Map profileVersions = new HashMap<>(); profileVersions.put(definition.getVersion(), profileConfiguration); + profileVersions.put("0.0.0", profileConfiguration); SupportedProfileVersions supportedProfileVersions = new SupportedProfileVersions(profileVersions); supportedProfiles.put(definition.getBaseCanonical(), supportedProfileVersions); } diff --git a/core/src/test/java/de/gematik/refv/PluginIT.java b/core/src/test/java/de/gematik/refv/PluginIT.java index 1fa34ef..a431e2d 100644 --- a/core/src/test/java/de/gematik/refv/PluginIT.java +++ b/core/src/test/java/de/gematik/refv/PluginIT.java @@ -15,22 +15,36 @@ */ package de.gematik.refv; +import de.gematik.refv.commons.validation.ValidationModule; import lombok.SneakyThrows; import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; import java.util.zip.ZipFile; class PluginIT { - @Test + + private static ValidationModule pluginModule; + @SneakyThrows - void testValidationUsingPlugin() { + @BeforeAll + static void beforeAll() { Plugin plugin = Plugin.createFromZipFile(new ZipFile("src/test/resources/plugins/minimal-plugin.zip")); - var pluginModule = new ValidationModuleFactory().createValidationModuleFromPlugin(plugin); + pluginModule = new ValidationModuleFactory().createValidationModuleFromPlugin(plugin); Assertions.assertEquals("minimal", pluginModule.getId()); Assertions.assertNotNull(pluginModule.getConfiguration()); - - var result = pluginModule.validateFile("src/test/resources/plugins/simplevalidationmodule.test.patient.valid.json"); + } + @ParameterizedTest() + @ValueSource(strings = { + "src/test/resources/plugins/simplevalidationmodule.test-multiple-profiles.patient.valid.json", + "src/test/resources/plugins/simplevalidationmodule.test.patient.valid.json", + "src/test/resources/plugins/simplevalidationmodule.test-profile-without-version.patient.valid.json" + }) + @SneakyThrows + void testValidationUsingPlugin(String resourcePath) { + var result = pluginModule.validateFile(resourcePath); Assertions.assertTrue(result.isValid()); } } diff --git a/core/src/test/resources/plugins/simplevalidationmodule.test-multiple-profiles.patient.valid.json b/core/src/test/resources/plugins/simplevalidationmodule.test-multiple-profiles.patient.valid.json new file mode 100644 index 0000000..5593ce4 --- /dev/null +++ b/core/src/test/resources/plugins/simplevalidationmodule.test-multiple-profiles.patient.valid.json @@ -0,0 +1,34 @@ +{ + "meta": { + "profile": [ + "http://unknown-profile", + "http://example.gematik.de/fhir/StructureDefinition/patient-with-birthdate" + ] + }, + "id": "66033", + "birthDate": "2023-01-01", + "name": [ + { + "given": [ + "Marie" + ], + "family": "Lux-Brennard" + } + ], + "identifier": [ + { + "system": "urn:oid:1.3.182.4.4", + "value": "1998041799999" + }, + { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:647515ed-0d5e-4c99-b23d-073fbc593f76" + } + ], + "text": { + "status": "generated", + "div": "
\n

\n Marie Lux-Brennardfemale, DoB: 1998-04-17 ( id: 1998041799999)

\n
\n \n \n \n \n \n
Other Id:id: urn:uuid:647515ed-0d5e-4c99-b23d-073fbc593f76
\n
" + }, + "gender": "male", + "resourceType": "Patient" +} \ No newline at end of file diff --git a/core/src/test/resources/plugins/simplevalidationmodule.test-profile-without-version.patient.valid.json b/core/src/test/resources/plugins/simplevalidationmodule.test-profile-without-version.patient.valid.json new file mode 100644 index 0000000..f4b3e00 --- /dev/null +++ b/core/src/test/resources/plugins/simplevalidationmodule.test-profile-without-version.patient.valid.json @@ -0,0 +1,33 @@ +{ + "meta": { + "profile": [ + "http://example.gematik.de/fhir/StructureDefinition/patient-with-birthdate" + ] + }, + "id": "66033", + "birthDate": "2023-01-01", + "name": [ + { + "given": [ + "Marie" + ], + "family": "Lux-Brennard" + } + ], + "identifier": [ + { + "system": "urn:oid:1.3.182.4.4", + "value": "1998041799999" + }, + { + "system": "urn:ietf:rfc:3986", + "value": "urn:uuid:647515ed-0d5e-4c99-b23d-073fbc593f76" + } + ], + "text": { + "status": "generated", + "div": "
\n

\n Marie Lux-Brennardfemale, DoB: 1998-04-17 ( id: 1998041799999)

\n
\n \n \n \n \n \n
Other Id:id: urn:uuid:647515ed-0d5e-4c99-b23d-073fbc593f76
\n
" + }, + "gender": "male", + "resourceType": "Patient" +} \ No newline at end of file diff --git a/pom.xml b/pom.xml index 120e55f..c505a59 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ de.gematik.refv referencevalidator pom - 2.1.0 + 2.1.1 gematik Referenzvalidator Der Referenzvalidator ermöglicht eine erweiterte Validierung von FHIR-Ressourcen, die in den Anwendungen der Telematikinfrastruktur (TI) verwendet werden. Der Referenzvalidator liefert autoritative Antworten zur Validität von übertragenen Datensätzen und ist somit eine Referenz für eventuell sonst im Rahmen einer TI-Anwendung eingesetzte FHIR-Validatoren. https://github.com/gematik/app-referencevalidator diff --git a/snapshot-generator/pom.xml b/snapshot-generator/pom.xml index 2a75885..edd9d68 100644 --- a/snapshot-generator/pom.xml +++ b/snapshot-generator/pom.xml @@ -6,7 +6,7 @@ de.gematik.refv referencevalidator - 2.1.0 + 2.1.1 snapshot-generator diff --git a/valmodule-base/pom.xml b/valmodule-base/pom.xml index 1171976..3c2816e 100644 --- a/valmodule-base/pom.xml +++ b/valmodule-base/pom.xml @@ -5,7 +5,7 @@ referencevalidator de.gematik.refv - 2.1.0 + 2.1.1 4.0.0 diff --git a/valmodule-core/pom.xml b/valmodule-core/pom.xml index 4d0b5a3..4fdd1b8 100644 --- a/valmodule-core/pom.xml +++ b/valmodule-core/pom.xml @@ -6,7 +6,7 @@ de.gematik.refv referencevalidator - 2.1.0 + 2.1.1 de.gematik.refv.valmodule diff --git a/valmodule-eau/pom.xml b/valmodule-eau/pom.xml index f4b35b5..1f694ef 100644 --- a/valmodule-eau/pom.xml +++ b/valmodule-eau/pom.xml @@ -5,7 +5,7 @@ referencevalidator de.gematik.refv - 2.1.0 + 2.1.1 4.0.0 diff --git a/valmodule-erp-perf-tests/pom.xml b/valmodule-erp-perf-tests/pom.xml index 685de62..6c15bdb 100644 --- a/valmodule-erp-perf-tests/pom.xml +++ b/valmodule-erp-perf-tests/pom.xml @@ -4,7 +4,7 @@ de.gematik.refv referencevalidator - 2.1.0 + 2.1.1 de.gematik.fhir diff --git a/valmodule-erp/pom.xml b/valmodule-erp/pom.xml index eee69ba..6ec9a90 100644 --- a/valmodule-erp/pom.xml +++ b/valmodule-erp/pom.xml @@ -5,7 +5,7 @@ referencevalidator de.gematik.refv - 2.1.0 + 2.1.1 4.0.0 diff --git a/valmodule-erpta7-perf-tests/pom.xml b/valmodule-erpta7-perf-tests/pom.xml index ab1edb2..e3291be 100644 --- a/valmodule-erpta7-perf-tests/pom.xml +++ b/valmodule-erpta7-perf-tests/pom.xml @@ -4,7 +4,7 @@ de.gematik.refv referencevalidator - 2.1.0 + 2.1.1 de.gematik.fhir diff --git a/valmodule-erpta7/pom.xml b/valmodule-erpta7/pom.xml index 1fa16a9..2eebb3d 100644 --- a/valmodule-erpta7/pom.xml +++ b/valmodule-erpta7/pom.xml @@ -6,7 +6,7 @@ de.gematik.refv referencevalidator - 2.1.0 + 2.1.1 de.gematik.refv.plugins