diff --git a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/conformance/profile/ProfileUtilities.java b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/conformance/profile/ProfileUtilities.java index a98a69ba2..8840a6cdb 100644 --- a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/conformance/profile/ProfileUtilities.java +++ b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/conformance/profile/ProfileUtilities.java @@ -846,7 +846,7 @@ public class ProfileUtilities extends TranslatingUtilities { for (UriType u : t.getProfile()) { StructureDefinition sd = context.fetchResource(StructureDefinition.class, u.getValue(), derived); if (sd == null) { - if (xver != null && xver.matchingUrl(u.getValue()) && xver.status(u.getValue()) == XVerExtensionStatus.Valid) { + if (makeXVer().matchingUrl(u.getValue()) && xver.status(u.getValue()) == XVerExtensionStatus.Valid) { sd = xver.makeDefinition(u.getValue()); } } @@ -891,6 +891,13 @@ public class ProfileUtilities extends TranslatingUtilities { } } + private XVerExtensionManager makeXVer() { + if (xver == null) { + xver = new XVerExtensionManager(context); + } + return xver; + } + private ElementDefinition getElementInCurrentContext(String path, List list) { for (int i = list.size() -1; i >= 0; i--) { ElementDefinition t = list.get(i); @@ -1759,7 +1766,7 @@ public class ProfileUtilities extends TranslatingUtilities { if (type.hasProfile()) { sd = context.fetchResource(StructureDefinition.class, type.getProfile().get(0).getValue(), src); if (sd == null) { - if (xver != null && xver.matchingUrl(type.getProfile().get(0).getValue()) && xver.status(type.getProfile().get(0).getValue()) == XVerExtensionStatus.Valid) { + if (makeXVer().matchingUrl(type.getProfile().get(0).getValue()) && xver.status(type.getProfile().get(0).getValue()) == XVerExtensionStatus.Valid) { sd = xver.makeDefinition(type.getProfile().get(0).getValue()); generateSnapshot(context.fetchTypeDefinition("Extension"), sd, sd.getUrl(), webUrl, sd.getName()); } @@ -2301,7 +2308,7 @@ public class ProfileUtilities extends TranslatingUtilities { String pu = source.getTypeFirstRep().getProfile().get(0).getValue(); profile = context.fetchResource(StructureDefinition.class, pu, derivedSrc); if (profile == null) { - if (xver.matchingUrl(pu)) { + if (makeXVer().matchingUrl(pu)) { switch (xver.status(pu)) { case BadVersion: throw new FHIRException("Reference to invalid version in extension url " + pu); diff --git a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/context/TerminologyCache.java b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/context/TerminologyCache.java index c165916cf..07f56ec80 100644 --- a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/context/TerminologyCache.java +++ b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/context/TerminologyCache.java @@ -696,8 +696,8 @@ public class TerminologyCache { protected String hashJson(String s) { // s = StringUtils.remove(s, ' '); -// s = StringUtils.remove(s, '\n'); -// s = StringUtils.remove(s, '\r'); + s = StringUtils.remove(s, '\n'); + s = StringUtils.remove(s, '\r'); return String.valueOf(s.hashCode()); } diff --git a/org.hl7.fhir.r5/src/test/java/org/hl7/fhir/r5/context/TerminologyCacheTests.java b/org.hl7.fhir.r5/src/test/java/org/hl7/fhir/r5/context/TerminologyCacheTests.java index 8c4bccb63..96817110c 100644 --- a/org.hl7.fhir.r5/src/test/java/org/hl7/fhir/r5/context/TerminologyCacheTests.java +++ b/org.hl7.fhir.r5/src/test/java/org/hl7/fhir/r5/context/TerminologyCacheTests.java @@ -149,7 +149,7 @@ public class TerminologyCacheTests implements ResourceLoaderTests { assertCanonicalResourceEquals(terminologyCapabilities, terminologyCacheB.getTerminologyCapabilities()); assertCanonicalResourceEquals(capabilityStatement, terminologyCacheB.getCapabilityStatement()); - assertValidationResultEquals(codingResultA, terminologyCacheB.getValidation( terminologyCacheA.generateValidationToken(CacheTestUtils.validationOptions, coding, valueSet, new Parameters()))); + assertValidationResultEquals(codingResultA, terminologyCacheB.getValidation(terminologyCacheA.generateValidationToken(CacheTestUtils.validationOptions, coding, valueSet, new Parameters()))); assertValidationResultEquals(codeableConceptResultA, terminologyCacheB.getValidation(terminologyCacheA.generateValidationToken(CacheTestUtils.validationOptions, concept, valueSet, new Parameters()))); assertExpansionOutcomeEquals(expansionOutcomeA,terminologyCacheB.getExpansion(terminologyCacheA.generateExpandToken(valueSet, true))); } diff --git a/org.hl7.fhir.r5/src/test/resources/txCache/org.hl7.fhir.r5/lang.cache b/org.hl7.fhir.r5/src/test/resources/txCache/org.hl7.fhir.r5/lang.cache index f78b45815..acd76ade6 100644 --- a/org.hl7.fhir.r5/src/test/resources/txCache/org.hl7.fhir.r5/lang.cache +++ b/org.hl7.fhir.r5/src/test/resources/txCache/org.hl7.fhir.r5/lang.cache @@ -12,3 +12,42 @@ e: { "error" : "Cannot invoke \"org.hl7.fhir.r5.terminologies.client.ITerminologyClient.expandValueset(org.hl7.fhir.r5.model.ValueSet, org.hl7.fhir.r5.model.Parameters, java.util.Map)\" because the return value of \"org.hl7.fhir.r5.terminologies.client.TerminologyClientContext.getClient()\" is null" } ------------------------------------------------------------------------------------- +{"hierarchical" : false, "valueSet" :{ + "resourceType" : "ValueSet", + "compose" : { + "inactive" : true, + "include" : [{ + "system" : "urn:ietf:bcp:47" + }] + } +}}#### +e: { + "error" : "Cannot invoke \"org.hl7.fhir.r5.terminologies.client.ITerminologyClient.expandValueset(org.hl7.fhir.r5.model.ValueSet, org.hl7.fhir.r5.model.Parameters, java.util.Map)\" because the return value of \"org.hl7.fhir.r5.terminologies.client.TerminologyClientContext.getClient()\" is null" +} +------------------------------------------------------------------------------------- +{"hierarchical" : false, "valueSet" :{ + "resourceType" : "ValueSet", + "compose" : { + "inactive" : true, + "include" : [{ + "system" : "urn:ietf:bcp:47" + }] + } +}}#### +e: { + "error" : "Cannot invoke \"org.hl7.fhir.r5.terminologies.client.ITerminologyClient.expandValueset(org.hl7.fhir.r5.model.ValueSet, org.hl7.fhir.r5.model.Parameters, java.util.Map)\" because the return value of \"org.hl7.fhir.r5.terminologies.client.TerminologyClientContext.getClient()\" is null" +} +------------------------------------------------------------------------------------- +{"hierarchical" : false, "valueSet" :{ + "resourceType" : "ValueSet", + "compose" : { + "inactive" : true, + "include" : [{ + "system" : "urn:ietf:bcp:47" + }] + } +}}#### +e: { + "error" : "Cannot invoke \"org.hl7.fhir.r5.terminologies.client.ITerminologyClient.expandValueset(org.hl7.fhir.r5.model.ValueSet, org.hl7.fhir.r5.model.Parameters, java.util.Map)\" because the return value of \"org.hl7.fhir.r5.terminologies.client.TerminologyClientContext.getClient()\" is null" +} +------------------------------------------------------------------------------------- diff --git a/org.hl7.fhir.r5/src/test/resources/txCache/org.hl7.fhir.r5/loinc.cache b/org.hl7.fhir.r5/src/test/resources/txCache/org.hl7.fhir.r5/loinc.cache index 0216bd7fe..0b62b88a1 100644 --- a/org.hl7.fhir.r5/src/test/resources/txCache/org.hl7.fhir.r5/loinc.cache +++ b/org.hl7.fhir.r5/src/test/resources/txCache/org.hl7.fhir.r5/loinc.cache @@ -44,3 +44,138 @@ e: { "error" : "Cannot invoke \"org.hl7.fhir.r5.terminologies.client.ITerminologyClient.expandValueset(org.hl7.fhir.r5.model.ValueSet, org.hl7.fhir.r5.model.Parameters, java.util.Map)\" because the return value of \"org.hl7.fhir.r5.terminologies.client.TerminologyClientContext.getClient()\" is null" } ------------------------------------------------------------------------------------- +{"hierarchical" : false, "valueSet" :{ + "resourceType" : "ValueSet", + "compose" : { + "inactive" : true, + "include" : [{ + "system" : "http://loinc.org", + "concept" : [{ + "extension" : [{ + "url" : "http://hl7.org/fhir/StructureDefinition/valueset-label", + "valueString" : "A." + }], + "code" : "LA20752-4", + "display" : "Within 24 hours" + }, + { + "extension" : [{ + "url" : "http://hl7.org/fhir/StructureDefinition/valueset-label", + "valueString" : "B." + }], + "code" : "LA20753-2", + "display" : "After 24 hours but before 3 days" + }, + { + "extension" : [{ + "url" : "http://hl7.org/fhir/StructureDefinition/valueset-label", + "valueString" : "C." + }], + "code" : "LA20754-0", + "display" : "Three days or later" + }, + { + "extension" : [{ + "url" : "http://hl7.org/fhir/StructureDefinition/valueset-label", + "valueString" : "D." + }], + "code" : "LA4489-6", + "display" : "Unknown" + }] + }] + } +}}#### +e: { + "error" : "Cannot invoke \"org.hl7.fhir.r5.terminologies.client.ITerminologyClient.expandValueset(org.hl7.fhir.r5.model.ValueSet, org.hl7.fhir.r5.model.Parameters, java.util.Map)\" because the return value of \"org.hl7.fhir.r5.terminologies.client.TerminologyClientContext.getClient()\" is null" +} +------------------------------------------------------------------------------------- +{"hierarchical" : false, "valueSet" :{ + "resourceType" : "ValueSet", + "compose" : { + "inactive" : true, + "include" : [{ + "system" : "http://loinc.org", + "concept" : [{ + "extension" : [{ + "url" : "http://hl7.org/fhir/StructureDefinition/valueset-label", + "valueString" : "A." + }], + "code" : "LA20752-4", + "display" : "Within 24 hours" + }, + { + "extension" : [{ + "url" : "http://hl7.org/fhir/StructureDefinition/valueset-label", + "valueString" : "B." + }], + "code" : "LA20753-2", + "display" : "After 24 hours but before 3 days" + }, + { + "extension" : [{ + "url" : "http://hl7.org/fhir/StructureDefinition/valueset-label", + "valueString" : "C." + }], + "code" : "LA20754-0", + "display" : "Three days or later" + }, + { + "extension" : [{ + "url" : "http://hl7.org/fhir/StructureDefinition/valueset-label", + "valueString" : "D." + }], + "code" : "LA4489-6", + "display" : "Unknown" + }] + }] + } +}}#### +e: { + "error" : "Cannot invoke \"org.hl7.fhir.r5.terminologies.client.ITerminologyClient.expandValueset(org.hl7.fhir.r5.model.ValueSet, org.hl7.fhir.r5.model.Parameters, java.util.Map)\" because the return value of \"org.hl7.fhir.r5.terminologies.client.TerminologyClientContext.getClient()\" is null" +} +------------------------------------------------------------------------------------- +{"hierarchical" : false, "valueSet" :{ + "resourceType" : "ValueSet", + "compose" : { + "inactive" : true, + "include" : [{ + "system" : "http://loinc.org", + "concept" : [{ + "extension" : [{ + "url" : "http://hl7.org/fhir/StructureDefinition/valueset-label", + "valueString" : "A." + }], + "code" : "LA20752-4", + "display" : "Within 24 hours" + }, + { + "extension" : [{ + "url" : "http://hl7.org/fhir/StructureDefinition/valueset-label", + "valueString" : "B." + }], + "code" : "LA20753-2", + "display" : "After 24 hours but before 3 days" + }, + { + "extension" : [{ + "url" : "http://hl7.org/fhir/StructureDefinition/valueset-label", + "valueString" : "C." + }], + "code" : "LA20754-0", + "display" : "Three days or later" + }, + { + "extension" : [{ + "url" : "http://hl7.org/fhir/StructureDefinition/valueset-label", + "valueString" : "D." + }], + "code" : "LA4489-6", + "display" : "Unknown" + }] + }] + } +}}#### +e: { + "error" : "Cannot invoke \"org.hl7.fhir.r5.terminologies.client.ITerminologyClient.expandValueset(org.hl7.fhir.r5.model.ValueSet, org.hl7.fhir.r5.model.Parameters, java.util.Map)\" because the return value of \"org.hl7.fhir.r5.terminologies.client.TerminologyClientContext.getClient()\" is null" +} +------------------------------------------------------------------------------------- diff --git a/org.hl7.fhir.r5/src/test/resources/txCache/org.hl7.fhir.r5/mimetypes.cache b/org.hl7.fhir.r5/src/test/resources/txCache/org.hl7.fhir.r5/mimetypes.cache index 5aa448890..d9840e042 100644 --- a/org.hl7.fhir.r5/src/test/resources/txCache/org.hl7.fhir.r5/mimetypes.cache +++ b/org.hl7.fhir.r5/src/test/resources/txCache/org.hl7.fhir.r5/mimetypes.cache @@ -12,3 +12,42 @@ e: { "error" : "Cannot invoke \"org.hl7.fhir.r5.terminologies.client.ITerminologyClient.expandValueset(org.hl7.fhir.r5.model.ValueSet, org.hl7.fhir.r5.model.Parameters, java.util.Map)\" because the return value of \"org.hl7.fhir.r5.terminologies.client.TerminologyClientContext.getClient()\" is null" } ------------------------------------------------------------------------------------- +{"hierarchical" : false, "valueSet" :{ + "resourceType" : "ValueSet", + "compose" : { + "inactive" : true, + "include" : [{ + "system" : "urn:ietf:bcp:13" + }] + } +}}#### +e: { + "error" : "Cannot invoke \"org.hl7.fhir.r5.terminologies.client.ITerminologyClient.expandValueset(org.hl7.fhir.r5.model.ValueSet, org.hl7.fhir.r5.model.Parameters, java.util.Map)\" because the return value of \"org.hl7.fhir.r5.terminologies.client.TerminologyClientContext.getClient()\" is null" +} +------------------------------------------------------------------------------------- +{"hierarchical" : false, "valueSet" :{ + "resourceType" : "ValueSet", + "compose" : { + "inactive" : true, + "include" : [{ + "system" : "urn:ietf:bcp:13" + }] + } +}}#### +e: { + "error" : "Cannot invoke \"org.hl7.fhir.r5.terminologies.client.ITerminologyClient.expandValueset(org.hl7.fhir.r5.model.ValueSet, org.hl7.fhir.r5.model.Parameters, java.util.Map)\" because the return value of \"org.hl7.fhir.r5.terminologies.client.TerminologyClientContext.getClient()\" is null" +} +------------------------------------------------------------------------------------- +{"hierarchical" : false, "valueSet" :{ + "resourceType" : "ValueSet", + "compose" : { + "inactive" : true, + "include" : [{ + "system" : "urn:ietf:bcp:13" + }] + } +}}#### +e: { + "error" : "Cannot invoke \"org.hl7.fhir.r5.terminologies.client.ITerminologyClient.expandValueset(org.hl7.fhir.r5.model.ValueSet, org.hl7.fhir.r5.model.Parameters, java.util.Map)\" because the return value of \"org.hl7.fhir.r5.terminologies.client.TerminologyClientContext.getClient()\" is null" +} +------------------------------------------------------------------------------------- diff --git a/org.hl7.fhir.r5/src/test/resources/txCache/org.hl7.fhir.r5/ucum.cache b/org.hl7.fhir.r5/src/test/resources/txCache/org.hl7.fhir.r5/ucum.cache index ee9e71d25..26af816f9 100644 --- a/org.hl7.fhir.r5/src/test/resources/txCache/org.hl7.fhir.r5/ucum.cache +++ b/org.hl7.fhir.r5/src/test/resources/txCache/org.hl7.fhir.r5/ucum.cache @@ -96,3 +96,294 @@ e: { "error" : "Cannot invoke \"org.hl7.fhir.r5.terminologies.client.ITerminologyClient.expandValueset(org.hl7.fhir.r5.model.ValueSet, org.hl7.fhir.r5.model.Parameters, java.util.Map)\" because the return value of \"org.hl7.fhir.r5.terminologies.client.TerminologyClientContext.getClient()\" is null" } ------------------------------------------------------------------------------------- +{"hierarchical" : false, "valueSet" :{ + "resourceType" : "ValueSet", + "compose" : { + "inactive" : true, + "include" : [{ + "system" : "http://unitsofmeasure.org", + "concept" : [{ + "extension" : [{ + "url" : "http://hl7.org/fhir/StructureDefinition/valueset-concept-definition", + "valueString" : "second" + }], + "code" : "s", + "display" : "second", + "designation" : [{ + "language" : "zh", + "value" : "秒" + }] + }, + { + "extension" : [{ + "url" : "http://hl7.org/fhir/StructureDefinition/valueset-concept-definition", + "valueString" : "minute" + }], + "code" : "min", + "display" : "minute", + "designation" : [{ + "language" : "zh", + "value" : "分钟" + }] + }, + { + "extension" : [{ + "url" : "http://hl7.org/fhir/StructureDefinition/valueset-concept-definition", + "valueString" : "hour" + }], + "code" : "h", + "display" : "hour", + "designation" : [{ + "language" : "zh", + "value" : "小时" + }] + }, + { + "extension" : [{ + "url" : "http://hl7.org/fhir/StructureDefinition/valueset-concept-definition", + "valueString" : "day" + }], + "code" : "d", + "display" : "day", + "designation" : [{ + "language" : "zh", + "value" : "天" + }] + }, + { + "extension" : [{ + "url" : "http://hl7.org/fhir/StructureDefinition/valueset-concept-definition", + "valueString" : "week" + }], + "code" : "wk", + "display" : "week", + "designation" : [{ + "language" : "zh", + "value" : "星期" + }] + }, + { + "extension" : [{ + "url" : "http://hl7.org/fhir/StructureDefinition/valueset-concept-definition", + "valueString" : "month - Normal practice is to use the 'mo' code as a calendar month when calculating the next occurrence." + }], + "code" : "mo", + "display" : "month", + "designation" : [{ + "language" : "zh", + "value" : "月" + }] + }, + { + "extension" : [{ + "url" : "http://hl7.org/fhir/StructureDefinition/valueset-concept-definition", + "valueString" : "year" + }], + "code" : "a", + "display" : "year", + "designation" : [{ + "language" : "zh", + "value" : "年" + }] + }] + }] + } +}}#### +e: { + "error" : "Cannot invoke \"org.hl7.fhir.r5.terminologies.client.ITerminologyClient.expandValueset(org.hl7.fhir.r5.model.ValueSet, org.hl7.fhir.r5.model.Parameters, java.util.Map)\" because the return value of \"org.hl7.fhir.r5.terminologies.client.TerminologyClientContext.getClient()\" is null" +} +------------------------------------------------------------------------------------- +{"hierarchical" : false, "valueSet" :{ + "resourceType" : "ValueSet", + "compose" : { + "inactive" : true, + "include" : [{ + "system" : "http://unitsofmeasure.org", + "concept" : [{ + "extension" : [{ + "url" : "http://hl7.org/fhir/StructureDefinition/valueset-concept-definition", + "valueString" : "second" + }], + "code" : "s", + "display" : "second", + "designation" : [{ + "language" : "zh", + "value" : "秒" + }] + }, + { + "extension" : [{ + "url" : "http://hl7.org/fhir/StructureDefinition/valueset-concept-definition", + "valueString" : "minute" + }], + "code" : "min", + "display" : "minute", + "designation" : [{ + "language" : "zh", + "value" : "分钟" + }] + }, + { + "extension" : [{ + "url" : "http://hl7.org/fhir/StructureDefinition/valueset-concept-definition", + "valueString" : "hour" + }], + "code" : "h", + "display" : "hour", + "designation" : [{ + "language" : "zh", + "value" : "小时" + }] + }, + { + "extension" : [{ + "url" : "http://hl7.org/fhir/StructureDefinition/valueset-concept-definition", + "valueString" : "day" + }], + "code" : "d", + "display" : "day", + "designation" : [{ + "language" : "zh", + "value" : "天" + }] + }, + { + "extension" : [{ + "url" : "http://hl7.org/fhir/StructureDefinition/valueset-concept-definition", + "valueString" : "week" + }], + "code" : "wk", + "display" : "week", + "designation" : [{ + "language" : "zh", + "value" : "星期" + }] + }, + { + "extension" : [{ + "url" : "http://hl7.org/fhir/StructureDefinition/valueset-concept-definition", + "valueString" : "month - Normal practice is to use the 'mo' code as a calendar month when calculating the next occurrence." + }], + "code" : "mo", + "display" : "month", + "designation" : [{ + "language" : "zh", + "value" : "月" + }] + }, + { + "extension" : [{ + "url" : "http://hl7.org/fhir/StructureDefinition/valueset-concept-definition", + "valueString" : "year" + }], + "code" : "a", + "display" : "year", + "designation" : [{ + "language" : "zh", + "value" : "年" + }] + }] + }] + } +}}#### +e: { + "error" : "Cannot invoke \"org.hl7.fhir.r5.terminologies.client.ITerminologyClient.expandValueset(org.hl7.fhir.r5.model.ValueSet, org.hl7.fhir.r5.model.Parameters, java.util.Map)\" because the return value of \"org.hl7.fhir.r5.terminologies.client.TerminologyClientContext.getClient()\" is null" +} +------------------------------------------------------------------------------------- +{"hierarchical" : false, "valueSet" :{ + "resourceType" : "ValueSet", + "compose" : { + "inactive" : true, + "include" : [{ + "system" : "http://unitsofmeasure.org", + "concept" : [{ + "extension" : [{ + "url" : "http://hl7.org/fhir/StructureDefinition/valueset-concept-definition", + "valueString" : "second" + }], + "code" : "s", + "display" : "second", + "designation" : [{ + "language" : "zh", + "value" : "秒" + }] + }, + { + "extension" : [{ + "url" : "http://hl7.org/fhir/StructureDefinition/valueset-concept-definition", + "valueString" : "minute" + }], + "code" : "min", + "display" : "minute", + "designation" : [{ + "language" : "zh", + "value" : "分钟" + }] + }, + { + "extension" : [{ + "url" : "http://hl7.org/fhir/StructureDefinition/valueset-concept-definition", + "valueString" : "hour" + }], + "code" : "h", + "display" : "hour", + "designation" : [{ + "language" : "zh", + "value" : "小时" + }] + }, + { + "extension" : [{ + "url" : "http://hl7.org/fhir/StructureDefinition/valueset-concept-definition", + "valueString" : "day" + }], + "code" : "d", + "display" : "day", + "designation" : [{ + "language" : "zh", + "value" : "天" + }] + }, + { + "extension" : [{ + "url" : "http://hl7.org/fhir/StructureDefinition/valueset-concept-definition", + "valueString" : "week" + }], + "code" : "wk", + "display" : "week", + "designation" : [{ + "language" : "zh", + "value" : "星期" + }] + }, + { + "extension" : [{ + "url" : "http://hl7.org/fhir/StructureDefinition/valueset-concept-definition", + "valueString" : "month - Normal practice is to use the 'mo' code as a calendar month when calculating the next occurrence." + }], + "code" : "mo", + "display" : "month", + "designation" : [{ + "language" : "zh", + "value" : "月" + }] + }, + { + "extension" : [{ + "url" : "http://hl7.org/fhir/StructureDefinition/valueset-concept-definition", + "valueString" : "year" + }], + "code" : "a", + "display" : "year", + "designation" : [{ + "language" : "zh", + "value" : "年" + }] + }] + }] + } +}}#### +e: { + "error" : "Cannot invoke \"org.hl7.fhir.r5.terminologies.client.ITerminologyClient.expandValueset(org.hl7.fhir.r5.model.ValueSet, org.hl7.fhir.r5.model.Parameters, java.util.Map)\" because the return value of \"org.hl7.fhir.r5.terminologies.client.TerminologyClientContext.getClient()\" is null" +} +------------------------------------------------------------------------------------- diff --git a/org.hl7.fhir.utilities/src/main/resources/Messages_es.properties b/org.hl7.fhir.utilities/src/main/resources/Messages_es.properties index b209a888d..74f331de3 100644 --- a/org.hl7.fhir.utilities/src/main/resources/Messages_es.properties +++ b/org.hl7.fhir.utilities/src/main/resources/Messages_es.properties @@ -831,4 +831,7 @@ PRIMITIVE_VALUE_ALTERNATIVES_MESSAGE_many = PRIMITIVE_VALUE_ALTERNATIVES_MESSAGE_other = UNICODE_XML_BAD_CHARS_one = UNICODE_XML_BAD_CHARS_many = -UNICODE_XML_BAD_CHARS_other = \ No newline at end of file +UNICODE_XML_BAD_CHARS_other = +Display_Name_WS_for__should_be_one_of__instead_of_one = +Display_Name_WS_for__should_be_one_of__instead_of_many = +Display_Name_WS_for__should_be_one_of__instead_of_other = diff --git a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/InstanceValidator.java b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/InstanceValidator.java index b8200a386..9e341a33c 100644 --- a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/InstanceValidator.java +++ b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/InstanceValidator.java @@ -2024,8 +2024,8 @@ public class InstanceValidator extends BaseValidator implements IResourceValidat return true; } plist.add(p); - } + Collections.sort(plist); // logical paths are a set, but we want a predictable order for error messages for (StructureDefinitionContextComponent ctxt : fixContexts(extUrl, definition.getContext())) { if (ok) {