From 2c61dd150b2133396fef472fbea278b25d867a1a Mon Sep 17 00:00:00 2001 From: dotasek Date: Mon, 29 Jan 2024 17:54:03 -0500 Subject: [PATCH] Add tests for base engine use --- .../cli/services/ValidationServiceTest.java | 26 +++- .../tests/ValidationEngineTests.java | 140 ++++++++++++++---- .../4.0.1/all-systems.cache | 125 +++------------- 3 files changed, 158 insertions(+), 133 deletions(-) diff --git a/org.hl7.fhir.validation/src/test/java/org/hl7/fhir/validation/cli/services/ValidationServiceTest.java b/org.hl7.fhir.validation/src/test/java/org/hl7/fhir/validation/cli/services/ValidationServiceTest.java index 945c9b537..ffc52303c 100644 --- a/org.hl7.fhir.validation/src/test/java/org/hl7/fhir/validation/cli/services/ValidationServiceTest.java +++ b/org.hl7.fhir.validation/src/test/java/org/hl7/fhir/validation/cli/services/ValidationServiceTest.java @@ -36,6 +36,7 @@ import org.hl7.fhir.validation.ValidationEngine; import org.hl7.fhir.validation.cli.model.CliContext; import org.hl7.fhir.validation.cli.model.FileInfo; import org.hl7.fhir.validation.cli.model.ValidationRequest; +import org.hl7.fhir.validation.cli.model.ValidationResponse; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -52,8 +53,9 @@ class ValidationServiceTest { final String DUMMY_SV = "1.2.3"; + @DisplayName("Test validation session persists in session cache") @Test - void validateSources() throws Exception { + void validationSessionTest() throws Exception { TestingUtilities.injectCorePackageLoader(); SessionCache sessionCache = Mockito.spy(new PassiveExpiringSessionCache()); ValidationService myService = new ValidationService(sessionCache); @@ -80,6 +82,28 @@ class ValidationServiceTest { } } + @DisplayName("Test validation session will inherit a base validation engine") + @Test + void validationSessionBaseEngineTest() throws Exception { + TestingUtilities.injectCorePackageLoader(); + + ValidationService myService = Mockito.spy(new ValidationService()); + + CliContext baseContext = new CliContext().setBaseEngine("myDummyKey").setSv("4.0.1").setTxServer(FhirSettings.getTxFhirDevelopment()).setTxCache(getTerminologyCacheDirectory("validationService")); + myService.putBaseEngine("myDummyKey", baseContext); + + String resource = IOUtils.toString(getFileFromResourceAsStream("detected_issues.json"), StandardCharsets.UTF_8); + List filesToValidate = new ArrayList<>(); + filesToValidate.add(new FileInfo().setFileName("test_resource.json").setFileContent(resource).setFileType(Manager.FhirFormat.JSON.getExtension())); + + ValidationRequest request = new ValidationRequest().setCliContext(new CliContext()).setFilesToValidate(filesToValidate); + myService.validateSources(request); + + verify(myService, Mockito.times(1)).getBaseEngine("myDummyKey"); + + + } + private InputStream getFileFromResourceAsStream(String fileName) { // The class loader that loaded the class ClassLoader classLoader = getClass().getClassLoader(); diff --git a/org.hl7.fhir.validation/src/test/java/org/hl7/fhir/validation/tests/ValidationEngineTests.java b/org.hl7.fhir.validation/src/test/java/org/hl7/fhir/validation/tests/ValidationEngineTests.java index 2a5c50930..451e4e3a9 100644 --- a/org.hl7.fhir.validation/src/test/java/org/hl7/fhir/validation/tests/ValidationEngineTests.java +++ b/org.hl7.fhir.validation/src/test/java/org/hl7/fhir/validation/tests/ValidationEngineTests.java @@ -1,5 +1,6 @@ package org.hl7.fhir.validation.tests; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.ArrayList; @@ -17,6 +18,7 @@ import org.hl7.fhir.validation.IgLoader; import org.hl7.fhir.validation.ValidationEngine; import org.hl7.fhir.validation.tests.utilities.TestUtilities; import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; public class ValidationEngineTests { @@ -26,6 +28,88 @@ public class ValidationEngineTests { public static boolean inbuild; + @Test + @DisplayName("A ValidationEngine copied from another validation engine shouldn't interfere with the original during validations") + void validateWithParallelCopiedEngine() throws Exception { + + final String INPUT_1 = "patient-duplicate.json"; + final String INPUT_2 = "patient-lang1.json"; + final String INPUT_3 = "patient-id-bad-1.json"; + + final String[] ISSUE_CODES_1 = { "invalid" }; + final String[] ISSUE_CODES_2 = {"business-rule"}; + final String[] ISSUE_CODES_3 = {"invalid", "invariant"}; + + ValidationEngine originalEngine = TestUtilities.getValidationEngine("hl7.fhir.r4.core#4.0.1", DEF_TX, FhirPublication.R4, "4.0.1"); + + final ValidationEngine[] validationEngines = new ValidationEngine[10]; + validationEngines[0] = originalEngine; + + final OperationOutcome[] outcomes = new OperationOutcome[validationEngines.length]; + + for (int i = 1; i < validationEngines.length; i++) { + validationEngines[i] = new ValidationEngine(originalEngine); + } + + final String[] testInputs = { + INPUT_1, + INPUT_1, + INPUT_2, + INPUT_3, + INPUT_1, + INPUT_2, + INPUT_3, + INPUT_1, + INPUT_2, + INPUT_3 + }; + // Pick 3 validation cases + final String[][] testCodes = { + ISSUE_CODES_1, + ISSUE_CODES_1, + ISSUE_CODES_2, + ISSUE_CODES_3, + ISSUE_CODES_1, + ISSUE_CODES_2, + ISSUE_CODES_3, + ISSUE_CODES_1, + ISSUE_CODES_2, + ISSUE_CODES_3 + }; + + + List threads = new ArrayList<>(); + for (int i = 0; i < validationEngines.length; i++) { + final int index = i; + Thread t = new Thread(() -> { + try { + final String testInput = testInputs[index]; + outcomes[index] = validationEngines[index].validate(FhirFormat.JSON, TestingUtilities.loadTestResourceStream("validator", testInput), null); + } catch (Exception e) { + e.printStackTrace(); + System.err.println("Thread " + index + " failed"); + } + }); + t.start(); + threads.add(t); + } + threads.forEach(t -> { + try { + t.join(); + } catch (InterruptedException e) { + + } + }); + + for (int i = 0; i < outcomes.length; i++) { + assertEquals(testCodes[i].length, outcomes[i].getIssue().size()); + for (int j = 0; j < outcomes[i].getIssue().size(); j++) { + System.out.print(i + " " + j); + assertEquals(testCodes[i][j], outcomes[i].getIssue().get(j).getCode().toCode()); + } + } + } + @Test public void test401Xml() throws Exception { if (!TestUtilities.silent) @@ -43,9 +127,9 @@ public class ValidationEngineTests { System.out.println(" " + iss.getDetails().getText()); } } - Assertions.assertEquals(0, e); - Assertions.assertEquals(0, w); - Assertions.assertEquals(1, h); + assertEquals(0, e); + assertEquals(0, w); + assertEquals(1, h); assertTrue(logger.verifyHasNoRequests(), "Unexpected request to TX server"); } @@ -60,9 +144,9 @@ public class ValidationEngineTests { int e = errors(op); int w = warnings(op); int h = hints(op); - Assertions.assertEquals(0, e); - Assertions.assertEquals(0, w); - Assertions.assertEquals(1, h); + assertEquals(0, e); + assertEquals(0, w); + assertEquals(1, h); assertTrue(logger.verifyHasNoRequests(), "Unexpected request to TX server"); if (!TestUtilities.silent) System.out.println(" .. done: " + Integer.toString(e) + " errors, " + Integer.toString(w) + " warnings, " + Integer.toString(h) + " information messages"); @@ -85,9 +169,9 @@ public class ValidationEngineTests { System.out.println(" " + iss.getDetails().getText()); } } - Assertions.assertEquals(0, e); - Assertions.assertEquals(0, w); - Assertions.assertEquals(1, h); + assertEquals(0, e); + assertEquals(0, w); + assertEquals(1, h); assertTrue(logger.verifyHasNoRequests(), "Unexpected request to TX server"); } @@ -108,9 +192,9 @@ public class ValidationEngineTests { System.out.println(" " + iss.getDetails().getText()); } } - Assertions.assertEquals(0, e); - Assertions.assertEquals(0, w); - Assertions.assertEquals(1, h); + assertEquals(0, e); + assertEquals(0, w); + assertEquals(1, h); assertTrue(logger.verifyHasNoRequests(), "Unexpected request to TX server"); if (!TestUtilities.silent) System.out.println(" .. done: " + Integer.toString(e) + " errors, " + Integer.toString(w) + " warnings, " + Integer.toString(h) + " information messages"); @@ -135,9 +219,9 @@ public class ValidationEngineTests { int e = errors(op); int w = warnings(op); int h = hints(op); - Assertions.assertEquals(2, e); - Assertions.assertEquals(0, w); - Assertions.assertEquals(0, h); + assertEquals(2, e); + assertEquals(0, w); + assertEquals(0, h); assertTrue(logger.verifyHasNoRequests(), "Unexpected request to TX server"); if (!TestUtilities.silent) System.out.println(" .. done: " + Integer.toString(e) + " errors, " + Integer.toString(w) + " warnings, " + Integer.toString(h) + " information messages"); @@ -163,9 +247,9 @@ public class ValidationEngineTests { int e = errors(op); int w = warnings(op); int h = hints(op); - Assertions.assertEquals(2, e); - Assertions.assertEquals(0, w); - Assertions.assertEquals(0, h); + assertEquals(2, e); + assertEquals(0, w); + assertEquals(0, h); assertTrue(logger.verifyHasNoRequests(), "Unexpected request to TX server"); if (!TestUtilities.silent) System.out.println(" .. done: " + Integer.toString(e) + " errors, " + Integer.toString(w) + " warnings, " + Integer.toString(h) + " information messages"); @@ -191,9 +275,9 @@ public class ValidationEngineTests { int e = errors(op); int w = warnings(op); int h = hints(op); - Assertions.assertEquals(1, e); - Assertions.assertEquals(2, w); - Assertions.assertEquals(2, h); + assertEquals(1, e); + assertEquals(2, w); + assertEquals(2, h); assertTrue(logger.verifyHasNoRequests(), "Unexpected request to TX server"); if (!TestUtilities.silent) System.out.println(" .. done: " + Integer.toString(e) + " errors, " + Integer.toString(w) + " warnings, " + Integer.toString(h) + " information messages"); @@ -216,7 +300,7 @@ public class ValidationEngineTests { int e = errors(op); int w = warnings(op); int h = hints(op); - Assertions.assertEquals(0, e); + assertEquals(0, e); assertTrue(logger.verifyHasNoRequests(), "Unexpected request to TX server"); if (!TestUtilities.silent) System.out.println(" .. done: " + Integer.toString(e) + " errors, " + Integer.toString(w) + " warnings, " + Integer.toString(h) + " information messages"); @@ -242,9 +326,9 @@ public class ValidationEngineTests { int e = errors(op); int w = warnings(op); int h = hints(op); - Assertions.assertEquals(1, e); - Assertions.assertEquals(0, w); - Assertions.assertEquals(0, h); + assertEquals(1, e); + assertEquals(0, w); + assertEquals(0, h); assertTrue(logger.verifyHasNoRequests(), "Unexpected request to TX server"); if (!TestUtilities.silent) System.out.println(" .. done: " + Integer.toString(e) + " errors, " + Integer.toString(w) + " warnings, " + Integer.toString(h) + " information messages"); @@ -269,9 +353,9 @@ public class ValidationEngineTests { int e = errors(op); int w = warnings(op); int h = hints(op); - Assertions.assertEquals(0, e); - Assertions.assertEquals(6, w); - Assertions.assertEquals(2, h); + assertEquals(0, e); + assertEquals(6, w); + assertEquals(2, h); assertTrue(logger.verifyHasNoRequests(), "Unexpected request to TX server"); if (!TestUtilities.silent) System.out.println(" .. done: " + Integer.toString(e) + " errors, " + Integer.toString(w) + " warnings, " + Integer.toString(h) + " information messages"); diff --git a/org.hl7.fhir.validation/src/test/resources/txCache/org.hl7.fhir.validation/4.0.1/all-systems.cache b/org.hl7.fhir.validation/src/test/resources/txCache/org.hl7.fhir.validation/4.0.1/all-systems.cache index f7f0e1275..f0971df16 100644 --- a/org.hl7.fhir.validation/src/test/resources/txCache/org.hl7.fhir.validation/4.0.1/all-systems.cache +++ b/org.hl7.fhir.validation/src/test/resources/txCache/org.hl7.fhir.validation/4.0.1/all-systems.cache @@ -13,7 +13,6 @@ v: { "code" : "application/octet-stream", "system" : "urn:ietf:bcp:13", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -34,7 +33,6 @@ v: { "code" : "de-CH", "system" : "urn:ietf:bcp:47", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -55,7 +53,6 @@ v: { "code" : "application/pdf", "system" : "urn:ietf:bcp:13", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -77,7 +74,6 @@ v: { "system" : "http://unitsofmeasure.org", "version" : "2.0.1", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -99,7 +95,6 @@ v: { "system" : "http://unitsofmeasure.org", "version" : "2.0.1", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -120,7 +115,6 @@ v: { "code" : "image/*", "system" : "urn:ietf:bcp:13", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -142,7 +136,6 @@ v: { "system" : "http://unitsofmeasure.org", "version" : "2.0.1", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -163,7 +156,6 @@ v: { "code" : "en-IN", "system" : "urn:ietf:bcp:47", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -184,7 +176,6 @@ v: { "code" : "image/jpg", "system" : "urn:ietf:bcp:13", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -205,7 +196,6 @@ v: { "code" : "de-CH", "system" : "urn:ietf:bcp:47", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -226,7 +216,6 @@ v: { "code" : "de-CH", "system" : "urn:ietf:bcp:47", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -248,7 +237,6 @@ v: { "system" : "http://unitsofmeasure.org", "version" : "2.0.1", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -270,7 +258,6 @@ v: { "system" : "http://unitsofmeasure.org", "version" : "2.0.1", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -292,7 +279,6 @@ v: { "system" : "http://unitsofmeasure.org", "version" : "2.0.1", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -314,7 +300,6 @@ v: { "system" : "http://unitsofmeasure.org", "version" : "2.0.1", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -337,7 +322,6 @@ v: { "error" : "The provided code 'http://unitsofmeasure.org#cm' was not found in the value set 'http://hl7.org/fhir/ValueSet/ucum-bodyweight|4.0.1'", "class" : "UNKNOWN", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome", "issue" : [{ @@ -376,7 +360,6 @@ v: { "system" : "http://unitsofmeasure.org", "version" : "2.0.1", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -399,7 +382,6 @@ v: { "error" : "The provided code 'http://unitsofmeasure.org#kg/m2' was not found in the value set 'http://hl7.org/fhir/ValueSet/ucum-bodyweight|4.0.1'", "class" : "UNKNOWN", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome", "issue" : [{ @@ -440,7 +422,6 @@ v: { "system" : "http://snomed.info/sct", "version" : "http://snomed.info/sct/900000000000207008/version/20230901", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -463,7 +444,6 @@ v: { "error" : "The provided code 'http://unitsofmeasure.org#kg' was not found in the value set 'http://hl7.org/fhir/ValueSet/ucum-bodylength|4.0.1'", "class" : "UNKNOWN", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome", "issue" : [{ @@ -503,7 +483,6 @@ v: { "error" : "The provided code 'http://unitsofmeasure.org#kg/m2' was not found in the value set 'http://hl7.org/fhir/ValueSet/ucum-bodylength|4.0.1'", "class" : "UNKNOWN", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome", "issue" : [{ @@ -542,7 +521,6 @@ v: { "system" : "http://unitsofmeasure.org", "version" : "2.0.1", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -566,7 +544,6 @@ v: { "system" : "http://snomed.info/sct", "version" : "http://snomed.info/sct/900000000000207008/version/20230901", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -590,7 +567,6 @@ v: { "system" : "http://snomed.info/sct", "version" : "http://snomed.info/sct/900000000000207008/version/20230901", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -611,7 +587,6 @@ v: { "code" : "application/pdf", "system" : "urn:ietf:bcp:13", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -635,7 +610,6 @@ v: { "system" : "http://snomed.info/sct", "version" : "http://snomed.info/sct/900000000000207008/version/20230901", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -659,7 +633,6 @@ v: { "system" : "http://snomed.info/sct", "version" : "http://snomed.info/sct/900000000000207008/version/20230901", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -682,7 +655,6 @@ v: { "error" : "The provided code 'http://unitsofmeasure.org#min' was not found in the value set 'http://hl7.org/fhir/ValueSet/ucum-bodyweight|4.0.1'", "class" : "UNKNOWN", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome", "issue" : [{ @@ -722,7 +694,6 @@ v: { "error" : "The provided code 'http://unitsofmeasure.org#min' was not found in the value set 'http://hl7.org/fhir/ValueSet/ucum-bodylength|4.0.1'", "class" : "UNKNOWN", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome", "issue" : [{ @@ -762,7 +733,6 @@ v: { "error" : "The provided code 'http://unitsofmeasure.org#min' was not found in the value set 'https://mednet.swiss/fhir/ValueSet/mni-timeOfGestation|0.5.0'", "class" : "UNKNOWN", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome", "issue" : [{ @@ -802,7 +772,6 @@ v: { "error" : "The provided code 'http://unitsofmeasure.org#mmol/L' was not found in the value set 'http://hl7.org/fhir/ValueSet/ucum-bodyweight|4.0.1'", "class" : "UNKNOWN", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome", "issue" : [{ @@ -842,7 +811,6 @@ v: { "error" : "The provided code 'http://unitsofmeasure.org#mmol/L' was not found in the value set 'http://hl7.org/fhir/ValueSet/ucum-bodylength|4.0.1'", "class" : "UNKNOWN", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome", "issue" : [{ @@ -882,7 +850,6 @@ v: { "error" : "The provided code 'http://unitsofmeasure.org#mmol/L' was not found in the value set 'https://mednet.swiss/fhir/ValueSet/mni-timeOfGestation|0.5.0'", "class" : "UNKNOWN", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome", "issue" : [{ @@ -922,7 +889,6 @@ v: { "error" : "The provided code 'http://unitsofmeasure.org#%' was not found in the value set 'http://hl7.org/fhir/ValueSet/ucum-bodyweight|4.0.1'", "class" : "UNKNOWN", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome", "issue" : [{ @@ -962,7 +928,6 @@ v: { "error" : "The provided code 'http://unitsofmeasure.org#%' was not found in the value set 'http://hl7.org/fhir/ValueSet/ucum-bodylength|4.0.1'", "class" : "UNKNOWN", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome", "issue" : [{ @@ -1002,7 +967,6 @@ v: { "error" : "The provided code 'http://unitsofmeasure.org#%' was not found in the value set 'https://mednet.swiss/fhir/ValueSet/mni-timeOfGestation|0.5.0'", "class" : "UNKNOWN", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome", "issue" : [{ @@ -1042,7 +1006,6 @@ v: { "error" : "The provided code 'http://unitsofmeasure.org#wk' was not found in the value set 'http://hl7.org/fhir/ValueSet/ucum-bodyweight|4.0.1'", "class" : "UNKNOWN", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome", "issue" : [{ @@ -1082,7 +1045,6 @@ v: { "error" : "The provided code 'http://unitsofmeasure.org#wk' was not found in the value set 'http://hl7.org/fhir/ValueSet/ucum-bodylength|4.0.1'", "class" : "UNKNOWN", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome", "issue" : [{ @@ -1122,7 +1084,6 @@ v: { "error" : "The provided code 'http://unitsofmeasure.org#kg' was not found in the value set 'https://mednet.swiss/fhir/ValueSet/mni-timeOfGestation|0.5.0'", "class" : "UNKNOWN", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome", "issue" : [{ @@ -1161,7 +1122,6 @@ v: { "system" : "http://unitsofmeasure.org", "version" : "2.0.1", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -1184,7 +1144,6 @@ v: { "error" : "The provided code 'http://unitsofmeasure.org#cm' was not found in the value set 'https://mednet.swiss/fhir/ValueSet/mni-timeOfGestation|0.5.0'", "class" : "UNKNOWN", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome", "issue" : [{ @@ -1223,7 +1182,6 @@ v: { "system" : "http://unitsofmeasure.org", "version" : "2.0.1", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -1246,7 +1204,6 @@ v: { "error" : "The provided code 'http://unitsofmeasure.org#kg/m2' was not found in the value set 'https://mednet.swiss/fhir/ValueSet/mni-timeOfGestation|0.5.0'", "class" : "UNKNOWN", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome", "issue" : [{ @@ -1285,7 +1242,6 @@ v: { "system" : "http://unitsofmeasure.org", "version" : "2.0.1", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -1307,7 +1263,6 @@ v: { "system" : "http://unitsofmeasure.org", "version" : "2.0.1", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -1328,7 +1283,6 @@ v: { "code" : "json", "system" : "urn:ietf:bcp:13", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -1349,7 +1303,6 @@ v: { "code" : "xml", "system" : "urn:ietf:bcp:13", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -1370,7 +1323,6 @@ v: { "code" : "application/fhir+json", "system" : "urn:ietf:bcp:13", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -1391,7 +1343,6 @@ v: { "code" : "en-US", "system" : "urn:ietf:bcp:47", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -1412,7 +1363,6 @@ v: { "code" : "en", "system" : "urn:ietf:bcp:47", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -1433,7 +1383,6 @@ v: { "code" : "text/plain", "system" : "urn:ietf:bcp:13", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -1457,7 +1406,6 @@ v: { "system" : "http://snomed.info/sct", "version" : "http://snomed.info/sct/900000000000207008/version/20230901", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -1480,7 +1428,6 @@ v: { "system" : "urn:iso:std:iso:3166", "version" : "2018", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -1501,7 +1448,6 @@ v: { "code" : "text/css", "system" : "urn:ietf:bcp:13", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -1522,7 +1468,6 @@ v: { "code" : "de-CH", "system" : "urn:ietf:bcp:47", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -1547,7 +1492,6 @@ v: { "error" : "The provided code 'http://ihe.net/fhir/ihe.formatcode.fhir/CodeSystem/formatcode#urn:ihe:iti:xds:2017:mimeTypeSufficient ('MimeType sufficient')' was not found in the value set 'http://hl7.org/fhir/ValueSet/formatcodes|4.0.1'", "class" : "UNKNOWN", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome", "issue" : [{ @@ -1646,7 +1590,6 @@ v: { "system" : "http://loinc.org", "version" : "2.74", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -1667,7 +1610,6 @@ v: { "code" : "en-US", "system" : "urn:ietf:bcp:47", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -1746,7 +1688,6 @@ v: { "code" : "en-NZ", "system" : "urn:ietf:bcp:47", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -1768,7 +1709,6 @@ v: { "system" : "http://unitsofmeasure.org", "version" : "2.0.1", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -1790,7 +1730,6 @@ v: { "system" : "http://unitsofmeasure.org", "version" : "2.0.1", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -1812,7 +1751,6 @@ v: { "system" : "http://unitsofmeasure.org", "version" : "2.0.1", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -1834,7 +1772,6 @@ v: { "system" : "http://unitsofmeasure.org", "version" : "2.0.1", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -1856,7 +1793,6 @@ v: { "system" : "urn:iso:std:iso:3166", "version" : "2018", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -1880,7 +1816,6 @@ v: { "error" : "The provided code 'http://snomed.info/sct#26643006' was not found in the value set 'http://terminology.hl7.org/ValueSet/snomed-intl-ips|20211027'", "class" : "UNKNOWN", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome", "issue" : [{ @@ -1921,7 +1856,6 @@ v: { "error" : "The provided code 'http://snomed.info/sct#767525000' was not found in the value set 'http://terminology.hl7.org/ValueSet/snomed-intl-ips|20211027'", "class" : "UNKNOWN", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome", "issue" : [{ @@ -1961,7 +1895,6 @@ v: { "system" : "http://snomed.info/sct", "version" : "http://snomed.info/sct/900000000000207008/version/20230131", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -1984,7 +1917,6 @@ v: { "system" : "http://snomed.info/sct", "version" : "http://snomed.info/sct/900000000000207008/version/20230131", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -2008,7 +1940,6 @@ v: { "error" : "The provided code 'http://snomed.info/sct#109081006' was not found in the value set 'http://terminology.hl7.org/ValueSet/snomed-intl-ips|20211027'", "class" : "UNKNOWN", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome", "issue" : [{ @@ -2048,7 +1979,6 @@ v: { "system" : "http://snomed.info/sct", "version" : "http://snomed.info/sct/900000000000207008/version/20230131", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -2072,7 +2002,6 @@ v: { "error" : "The provided code 'http://snomed.info/sct#292954005' was not found in the value set 'http://terminology.hl7.org/ValueSet/snomed-intl-ips|20211027'", "class" : "UNKNOWN", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome", "issue" : [{ @@ -2112,7 +2041,6 @@ v: { "system" : "http://snomed.info/sct", "version" : "http://snomed.info/sct/900000000000207008/version/20230131", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -2136,7 +2064,6 @@ v: { "error" : "The provided code 'http://snomed.info/sct#428673006' was not found in the value set 'http://terminology.hl7.org/ValueSet/snomed-intl-ips|20211027'", "class" : "UNKNOWN", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome", "issue" : [{ @@ -2176,7 +2103,6 @@ v: { "system" : "http://snomed.info/sct", "version" : "http://snomed.info/sct/900000000000207008/version/20230131", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -2200,7 +2126,6 @@ v: { "error" : "The provided code 'http://snomed.info/sct#7947003' was not found in the value set 'http://terminology.hl7.org/ValueSet/snomed-intl-ips|20211027'", "class" : "UNKNOWN", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome", "issue" : [{ @@ -2241,7 +2166,6 @@ v: { "error" : "The provided code 'http://snomed.info/sct#81464008' was not found in the value set 'http://terminology.hl7.org/ValueSet/snomed-intl-ips|20211027'", "class" : "UNKNOWN", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome", "issue" : [{ @@ -2282,7 +2206,6 @@ v: { "error" : "The provided code 'http://snomed.info/sct#48546005' was not found in the value set 'http://terminology.hl7.org/ValueSet/snomed-intl-ips|20211027'", "class" : "UNKNOWN", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome", "issue" : [{ @@ -2322,7 +2245,6 @@ v: { "system" : "http://snomed.info/sct", "version" : "http://snomed.info/sct/900000000000207008/version/20230131", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -2346,7 +2268,6 @@ v: { "error" : "The provided code 'http://snomed.info/sct#158965000' was not found in the value set 'http://terminology.hl7.org/ValueSet/snomed-intl-ips|20211027'", "class" : "UNKNOWN", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome", "issue" : [{ @@ -2387,7 +2308,6 @@ v: { "error" : "The provided code 'http://snomed.info/sct#96309000' was not found in the value set 'http://terminology.hl7.org/ValueSet/snomed-intl-ips|20211027'", "class" : "UNKNOWN", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome", "issue" : [{ @@ -2428,7 +2348,6 @@ v: { "error" : "The provided code 'http://snomed.info/sct#714081009' was not found in the value set 'http://terminology.hl7.org/ValueSet/snomed-intl-ips|20211027'", "class" : "UNKNOWN", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome", "issue" : [{ @@ -2469,7 +2388,6 @@ v: { "error" : "The provided code 'http://snomed.info/sct#25246002' was not found in the value set 'http://terminology.hl7.org/ValueSet/snomed-intl-ips|20211027'", "class" : "UNKNOWN", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome", "issue" : [{ @@ -2510,7 +2428,6 @@ v: { "error" : "The provided code 'http://snomed.info/sct#96067005' was not found in the value set 'http://terminology.hl7.org/ValueSet/snomed-intl-ips|20211027'", "class" : "UNKNOWN", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome", "issue" : [{ @@ -2550,7 +2467,6 @@ v: { "system" : "http://snomed.info/sct", "version" : "http://snomed.info/sct/900000000000207008/version/20230131", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -2574,7 +2490,6 @@ v: { "error" : "The provided code 'http://snomed.info/sct#34206005' was not found in the value set 'http://terminology.hl7.org/ValueSet/snomed-intl-ips|20211027'", "class" : "UNKNOWN", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome", "issue" : [{ @@ -2615,7 +2530,6 @@ v: { "error" : "The provided code 'http://snomed.info/sct#108537001' was not found in the value set 'http://terminology.hl7.org/ValueSet/snomed-intl-ips|20211027'", "class" : "UNKNOWN", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome", "issue" : [{ @@ -2656,7 +2570,6 @@ v: { "error" : "The provided code 'http://snomed.info/sct#126212009' was not found in the value set 'http://terminology.hl7.org/ValueSet/snomed-intl-ips|20211027'", "class" : "UNKNOWN", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome", "issue" : [{ @@ -2697,7 +2610,6 @@ v: { "error" : "The provided code 'http://snomed.info/sct#292360004' was not found in the value set 'http://terminology.hl7.org/ValueSet/snomed-intl-ips|20211027'", "class" : "UNKNOWN", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome", "issue" : [{ @@ -2738,7 +2650,6 @@ v: { "error" : "The provided code 'http://snomed.info/sct#16217701000119102' was not found in the value set 'http://terminology.hl7.org/ValueSet/snomed-intl-ips|20211027'", "class" : "UNKNOWN", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome", "issue" : [{ @@ -2779,7 +2690,6 @@ v: { "error" : "The provided code 'http://snomed.info/sct#287903004' was not found in the value set 'http://terminology.hl7.org/ValueSet/snomed-intl-ips|20211027'", "class" : "UNKNOWN", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome", "issue" : [{ @@ -2817,7 +2727,6 @@ v: { "code" : "application/xml", "system" : "urn:ietf:bcp:13", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -2838,7 +2747,6 @@ v: { "code" : "text/xml", "system" : "urn:ietf:bcp:13", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -2919,7 +2827,6 @@ v: { "system" : "urn:iso:std:iso:3166", "version" : "2018", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -2940,7 +2847,6 @@ v: { "code" : "text/cql.identifier", "system" : "urn:ietf:bcp:13", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -3021,7 +2927,6 @@ v: { "system" : "http://unitsofmeasure.org", "version" : "2.0.1", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -3046,7 +2951,6 @@ v: { "error" : "The provided code 'urn:iso:std:iso:11073:10101#150456 ('MDC_PULS_OXIM_SAT_O2')' was not found in the value set 'http://hl7.org/fhir/ValueSet/observation-vitalsignresult|4.0.1'", "class" : "UNKNOWN", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome", "issue" : [{ @@ -3102,7 +3006,6 @@ v: { "error" : "The provided code 'http://snomed.info/sct#276885007' was not found in the value set 'http://hl7.org/fhir/ValueSet/observation-vitalsignresult|4.0.1'", "class" : "UNKNOWN", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome", "issue" : [{ @@ -3141,7 +3044,6 @@ v: { "system" : "http://unitsofmeasure.org", "version" : "2.0.1", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -3162,7 +3064,6 @@ v: { "code" : "en-AU", "system" : "urn:ietf:bcp:47", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -3183,7 +3084,6 @@ v: { "code" : "en", "system" : "urn:ietf:bcp:47", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -3204,7 +3104,6 @@ v: { "code" : "en-US", "system" : "urn:ietf:bcp:47", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -3227,7 +3126,6 @@ v: { "system" : "urn:iso:std:iso:3166", "version" : "2018", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -3249,7 +3147,6 @@ v: { "system" : "http://unitsofmeasure.org", "version" : "2.0.1", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome" } @@ -3271,7 +3168,6 @@ v: { "error" : "The provided code 'urn:ietf:bcp:13#[%payloadFormat%]' was not found in the value set 'http://hl7.org/fhir/ValueSet/mimetypes|4.0.1'; Unknown code '[%payloadFormat%]' in the CodeSystem 'urn:ietf:bcp:13' version ''", "class" : "UNKNOWN", "server" : "http://tx-dev.fhir.org/r4", - "unknown-systems" : "", "issues" : { "resourceType" : "OperationOutcome", "issue" : [{ @@ -3312,3 +3208,24 @@ v: { } ------------------------------------------------------------------------------------- +{"code" : { + "code" : "en-AU" +}, "url": "http://hl7.org/fhir/ValueSet/languages", "version": "4.0.1", "langs":"en-AU", "useServer":"true", "useClient":"true", "guessSystem":"true", "activeOnly":"false", "membershipOnly":"false", "displayWarningMode":"false", "versionFlexible":"true", "profile": { + "resourceType" : "Parameters", + "parameter" : [{ + "name" : "profile-url", + "valueString" : "http://hl7.org/fhir/ExpansionProfile/dc8fd4bc-091a-424a-8a3b-6198ef146891" + }] +}}#### +v: { + "display" : "English (Region=Australia)", + "code" : "en-AU", + "system" : "urn:ietf:bcp:47", + "server" : "http://tx-dev.fhir.org/r4", + "unknown-systems" : "", + "issues" : { + "resourceType" : "OperationOutcome" +} + +} +-------------------------------------------------------------------------------------