From e11f03bd8a2b0f9fed0cefdcde0bd895ec47b65a Mon Sep 17 00:00:00 2001 From: Grahame Grieve Date: Tue, 22 Aug 2023 12:08:53 +1000 Subject: [PATCH] Fix erroneous handling of designations with a matching language to the base display --- .../fhir/r5/terminologies/expansion/ValueSetExpander.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/terminologies/expansion/ValueSetExpander.java b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/terminologies/expansion/ValueSetExpander.java index bb6c813ea..d5db1aa38 100644 --- a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/terminologies/expansion/ValueSetExpander.java +++ b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/terminologies/expansion/ValueSetExpander.java @@ -207,7 +207,12 @@ public class ValueSetExpander extends ValueSetProcessBase { String dstLang = focus.getLanguage(); boolean usedDisplay = false; - ConceptDefinitionDesignationComponent tu = expParams.hasParameter("displayLanguage") ? getMatchingLang(designations, expParams.getParameterString("displayLanguage")) : null; + ConceptDefinitionDesignationComponent tu; + if (LanguageUtils.langsMatch(dstLang, dispLang)) { + tu = null; // use display + } else { + tu = expParams.hasParameter("displayLanguage") ? getMatchingLang(designations, expParams.getParameterString("displayLanguage")) : null; + } if (tu != null) { n.setDisplay(tu.getValue()); } else if (display != null && (srcLang == null || dstLang == null || LanguageUtils.langsMatch(dstLang, srcLang))) {