From 3fb9bc20f4386c0f96329b094b9aafe99945eb5f Mon Sep 17 00:00:00 2001 From: Grahame Grieve Date: Sat, 20 Apr 2024 23:32:52 +1000 Subject: [PATCH] fix spelling of heirarchy --- .../fhir/convertors/misc/ICD11Generator.java | 2 +- .../terminologies/ValueSetExpanderSimple.java | 32 +++++++---------- .../r4/terminologies/CodeSystemUtilities.java | 2 +- .../terminologies/ValueSetExpanderSimple.java | 35 ++++++++----------- .../terminologies/CodeSystemUtilities.java | 2 +- .../terminologies/ValueSetExpanderSimple.java | 26 +++++++------- .../fhir/r5/renderers/CodeSystemRenderer.java | 6 ++-- .../fhir/r5/renderers/ValueSetRenderer.java | 8 ++--- .../r5/terminologies/CodeSystemUtilities.java | 2 +- .../expansion/ValueSetExpander.java | 22 ++++++------ .../expansion/WorkingContext.java | 10 +++--- .../hl7/fhir/r5/utils/ToolingExtensions.java | 3 +- .../instance/type/CodeSystemValidator.java | 4 +-- 13 files changed, 71 insertions(+), 83 deletions(-) diff --git a/org.hl7.fhir.convertors/src/main/java/org/hl7/fhir/convertors/misc/ICD11Generator.java b/org.hl7.fhir.convertors/src/main/java/org/hl7/fhir/convertors/misc/ICD11Generator.java index c693c6afa..e2e402bce 100644 --- a/org.hl7.fhir.convertors/src/main/java/org/hl7/fhir/convertors/misc/ICD11Generator.java +++ b/org.hl7.fhir.convertors/src/main/java/org/hl7/fhir/convertors/misc/ICD11Generator.java @@ -380,7 +380,7 @@ public class ICD11Generator { cs.setPublisher("WHO"); cs.setCopyright("Consult WHO For terms of use"); cs.setCaseSensitive(true); - cs.setHierarchyMeaning(CodeSystemHierarchyMeaning.ISA); // though we aren't going to have a heirarchy + cs.setHierarchyMeaning(CodeSystemHierarchyMeaning.ISA); // though we aren't going to have a hierarchy // cs.setCompositional(true); // cs.setVersionNeeded(true); cs.setValueSet("http://id.who.int/icd11/ValueSet/all-foundation"); diff --git a/org.hl7.fhir.dstu3/src/main/java/org/hl7/fhir/dstu3/terminologies/ValueSetExpanderSimple.java b/org.hl7.fhir.dstu3/src/main/java/org/hl7/fhir/dstu3/terminologies/ValueSetExpanderSimple.java index 762261f72..3d4e152ac 100644 --- a/org.hl7.fhir.dstu3/src/main/java/org/hl7/fhir/dstu3/terminologies/ValueSetExpanderSimple.java +++ b/org.hl7.fhir.dstu3/src/main/java/org/hl7/fhir/dstu3/terminologies/ValueSetExpanderSimple.java @@ -107,7 +107,7 @@ public class ValueSetExpanderSimple implements ValueSetExpander { private List roots = new ArrayList(); private Map map = new HashMap(); private IWorkerContext context; - private boolean canBeHeirarchy = true; + private boolean canBeHierarchy = true; private Set excludeKeys = new HashSet(); private Set excludeSystems = new HashSet(); private ValueSetExpanderFactory factory; @@ -151,13 +151,13 @@ public class ValueSetExpanderSimple implements ValueSetExpander { String s = key(n); if (map.containsKey(s) || excludeKeys.contains(s)) { - canBeHeirarchy = false; + canBeHierarchy = false; } else { codes.add(n); map.put(s, n); total++; } - if (canBeHeirarchy && parent != null) { + if (canBeHierarchy && parent != null) { parent.getContains().add(n); } else { roots.add(n); @@ -198,7 +198,7 @@ public class ValueSetExpanderSimple implements ValueSetExpander { ValueSetExpansionContainsComponent np = null; boolean abs = CodeSystemUtilities.isNotSelectable(cs, def); boolean inc = CodeSystemUtilities.isInactive(cs, def); - if (canBeHeirarchy || !abs) + if (canBeHierarchy || !abs) np = addCode(system, def.getCode(), def.getDisplay(), parent, def.getDesignation(), profile, abs, inc, filters); for (ConceptDefinitionComponent c : def.getConcept()) addCodeAndDescendents(cs, system, c, np, profile, filters); @@ -280,7 +280,7 @@ public class ValueSetExpanderSimple implements ValueSetExpander { if (source.hasCompose()) handleCompose(source.getCompose(), focus.getExpansion().getParameter(), profile); - if (canBeHeirarchy) { + if (canBeHierarchy) { for (ValueSetExpansionContainsComponent c : roots) { focus.getExpansion().getContains().add(c); } @@ -288,7 +288,7 @@ public class ValueSetExpanderSimple implements ValueSetExpander { for (ValueSetExpansionContainsComponent c : codes) { if (map.containsKey(key(c)) && !c.getAbstract()) { // we may have added abstract codes earlier while we still thought it might be heirarchical, but later we gave up, so now ignore them focus.getExpansion().getContains().add(c); - c.getContains().clear(); // make sure any heirarchy is wiped + c.getContains().clear(); // make sure any hierarchy is wiped } } } @@ -321,12 +321,6 @@ public class ValueSetExpanderSimple implements ValueSetExpander { return res; } - private void addToHeirarchy(List target, List source) { - for (ValueSetExpansionContainsComponent s : source) { - target.add(s); - } - } - private String getCodeDisplay(CodeSystem cs, String code) throws TerminologyServiceException { ConceptDefinitionComponent def = getConceptForCode(cs.getConcept(), code); if (def == null) @@ -350,13 +344,13 @@ public class ValueSetExpanderSimple implements ValueSetExpander { // Exclude comes first because we build up a map of things to exclude for (ConceptSetComponent inc : compose.getExclude()) excludeCodes(inc, params); - canBeHeirarchy = !profile.getExcludeNested() && excludeKeys.isEmpty() && excludeSystems.isEmpty(); + canBeHierarchy = !profile.getExcludeNested() && excludeKeys.isEmpty() && excludeSystems.isEmpty(); boolean first = true; for (ConceptSetComponent inc : compose.getInclude()) { if (first == true) first = false; else - canBeHeirarchy = false; + canBeHierarchy = false; includeCodes(inc, params, profile); } @@ -381,7 +375,7 @@ public class ValueSetExpanderSimple implements ValueSetExpander { if (!existsInParams(params, p.getName(), p.getValue())) params.add(p); } - canBeHeirarchy = false; // if we're importing a value set, we have to be combining, so we won't try for a heirarchy + canBeHierarchy = false; // if we're importing a value set, we have to be combining, so we won't try for a hierarchy return vso.getValueset(); } @@ -406,7 +400,7 @@ public class ValueSetExpanderSimple implements ValueSetExpander { } else { CodeSystem cs = context.fetchCodeSystem(inc.getSystem()); if ((cs == null || cs.getContent() != CodeSystemContentMode.COMPLETE) && context.supportsSystem(inc.getSystem())) { - addCodes(context.expandVS(inc, canBeHeirarchy), params, profile, imports); + addCodes(context.expandVS(inc, canBeHierarchy), params, profile, imports); return; } @@ -430,14 +424,14 @@ public class ValueSetExpanderSimple implements ValueSetExpander { } if (!inc.getConcept().isEmpty()) { - canBeHeirarchy = false; + canBeHierarchy = false; for (ConceptReferenceComponent c : inc.getConcept()) { addCode(inc.getSystem(), c.getCode(), Utilities.noString(c.getDisplay()) ? getCodeDisplay(cs, c.getCode()) : c.getDisplay(), null, convertDesignations(c.getDesignation()), profile, false, CodeSystemUtilities.isInactive(cs, c.getCode()), imports); } } if (inc.getFilter().size() > 1) { - canBeHeirarchy = false; // which will bt the case if we get around to supporting this + canBeHierarchy = false; // which will bt the case if we get around to supporting this throw new TerminologyServiceException("Multiple filters not handled yet"); // need to and them, and this isn't done yet. But this shouldn't arise in non loinc and snomed value sets } if (inc.getFilter().size() == 1) { @@ -457,7 +451,7 @@ public class ValueSetExpanderSimple implements ValueSetExpander { addCodeAndDescendents(cs, inc.getSystem(), c, null, profile, imports); } else if ("display".equals(fc.getProperty()) && fc.getOp() == FilterOperator.EQUAL) { // gg; note: wtf is this: if the filter is display=v, look up the code 'v', and see if it's diplsay is 'v'? - canBeHeirarchy = false; + canBeHierarchy = false; ConceptDefinitionComponent def = getConceptForCode(cs.getConcept(), fc.getValue()); if (def != null) { if (isNotBlank(def.getDisplay()) && isNotBlank(fc.getValue())) { diff --git a/org.hl7.fhir.r4/src/main/java/org/hl7/fhir/r4/terminologies/CodeSystemUtilities.java b/org.hl7.fhir.r4/src/main/java/org/hl7/fhir/r4/terminologies/CodeSystemUtilities.java index 240c29955..ba72ce506 100644 --- a/org.hl7.fhir.r4/src/main/java/org/hl7/fhir/r4/terminologies/CodeSystemUtilities.java +++ b/org.hl7.fhir.r4/src/main/java/org/hl7/fhir/r4/terminologies/CodeSystemUtilities.java @@ -299,7 +299,7 @@ public class CodeSystemUtilities { } // see http://hl7.org/fhir/R4/codesystem.html#hierachy - // returns additional parents not in the heirarchy + // returns additional parents not in the hierarchy public static List getOtherChildren(CodeSystem cs, ConceptDefinitionComponent c) { List res = new ArrayList(); for (ConceptPropertyComponent p : c.getProperty()) { diff --git a/org.hl7.fhir.r4/src/main/java/org/hl7/fhir/r4/terminologies/ValueSetExpanderSimple.java b/org.hl7.fhir.r4/src/main/java/org/hl7/fhir/r4/terminologies/ValueSetExpanderSimple.java index d00127248..9bfbab894 100644 --- a/org.hl7.fhir.r4/src/main/java/org/hl7/fhir/r4/terminologies/ValueSetExpanderSimple.java +++ b/org.hl7.fhir.r4/src/main/java/org/hl7/fhir/r4/terminologies/ValueSetExpanderSimple.java @@ -106,7 +106,7 @@ public class ValueSetExpanderSimple implements ValueSetExpander { private List roots = new ArrayList(); private Map map = new HashMap(); private IWorkerContext context; - private boolean canBeHeirarchy = true; + private boolean canBeHierarchy = true; private Set excludeKeys = new HashSet(); private Set excludeSystems = new HashSet(); private ValueSet focus; @@ -152,13 +152,13 @@ public class ValueSetExpanderSimple implements ValueSetExpander { String s = key(n); if (map.containsKey(s) || excludeKeys.contains(s)) { - canBeHeirarchy = false; + canBeHierarchy = false; } else { codes.add(n); map.put(s, n); total++; } - if (canBeHeirarchy && parent != null) { + if (canBeHierarchy && parent != null) { parent.getContains().add(n); } else { roots.add(n); @@ -227,7 +227,7 @@ public class ValueSetExpanderSimple implements ValueSetExpander { ValueSetExpansionContainsComponent np = null; boolean abs = CodeSystemUtilities.isNotSelectable(cs, def); boolean inc = CodeSystemUtilities.isInactive(cs, def); - if (canBeHeirarchy || !abs) + if (canBeHierarchy || !abs) np = addCode(system, def.getCode(), def.getDisplay(), parent, def.getDesignation(), expParams, abs, inc, filters); for (ConceptDefinitionComponent c : def.getConcept()) @@ -343,7 +343,7 @@ public class ValueSetExpanderSimple implements ValueSetExpander { if (source.hasCompose()) handleCompose(source.getCompose(), focus.getExpansion().getParameter(), expParams, source.getUrl()); - if (canBeHeirarchy) { + if (canBeHierarchy) { for (ValueSetExpansionContainsComponent c : roots) { focus.getExpansion().getContains().add(c); } @@ -353,7 +353,7 @@ public class ValueSetExpanderSimple implements ValueSetExpander { // thought it might be heirarchical, but later we gave up, so // now ignore them focus.getExpansion().getContains().add(c); - c.getContains().clear(); // make sure any heirarchy is wiped + c.getContains().clear(); // make sure any hierarchy is wiped } } } @@ -372,13 +372,6 @@ public class ValueSetExpanderSimple implements ValueSetExpander { return res; } - private void addToHeirarchy(List target, - List source) { - for (ValueSetExpansionContainsComponent s : source) { - target.add(s); - } - } - private String getCodeDisplay(CodeSystem cs, String code) throws TerminologyServiceException { ConceptDefinitionComponent def = getConceptForCode(cs.getConcept(), code); if (def == null) @@ -403,14 +396,14 @@ public class ValueSetExpanderSimple implements ValueSetExpander { // Exclude comes first because we build up a map of things to exclude for (ConceptSetComponent inc : compose.getExclude()) excludeCodes(inc, params, ctxt); - canBeHeirarchy = !expParams.getParameterBool("excludeNested") && excludeKeys.isEmpty() && excludeSystems.isEmpty(); + canBeHierarchy = !expParams.getParameterBool("excludeNested") && excludeKeys.isEmpty() && excludeSystems.isEmpty(); boolean first = true; for (ConceptSetComponent inc : compose.getInclude()) { if (first == true) first = false; else - canBeHeirarchy = false; - includeCodes(inc, params, expParams, canBeHeirarchy); + canBeHierarchy = false; + includeCodes(inc, params, expParams, canBeHierarchy); } } @@ -433,8 +426,8 @@ public class ValueSetExpanderSimple implements ValueSetExpander { if (!existsInParams(params, p.getName(), p.getValue())) params.add(p); } - canBeHeirarchy = false; // if we're importing a value set, we have to be combining, so we won't try for - // a heirarchy + canBeHierarchy = false; // if we're importing a value set, we have to be combining, so we won't try for + // a hierarchy return vso.getValueset(); } @@ -518,7 +511,7 @@ public class ValueSetExpanderSimple implements ValueSetExpander { } if (!inc.getConcept().isEmpty()) { - canBeHeirarchy = false; + canBeHierarchy = false; for (ConceptReferenceComponent c : inc.getConcept()) { c.checkNoModifiers("Code in Code System", "expanding"); addCode(inc.getSystem(), c.getCode(), @@ -528,7 +521,7 @@ public class ValueSetExpanderSimple implements ValueSetExpander { } } if (inc.getFilter().size() > 1) { - canBeHeirarchy = false; // which will bt the case if we get around to supporting this + canBeHierarchy = false; // which will bt the case if we get around to supporting this throw new TerminologyServiceException("Multiple filters not handled yet"); // need to and them, and this isn't // done yet. But this shouldn't arise // in non loinc and snomed value sets @@ -562,7 +555,7 @@ public class ValueSetExpanderSimple implements ValueSetExpander { } else if ("display".equals(fc.getProperty()) && fc.getOp() == FilterOperator.EQUAL) { // gg; note: wtf is this: if the filter is display=v, look up the code 'v', and // see if it's diplsay is 'v'? - canBeHeirarchy = false; + canBeHierarchy = false; ConceptDefinitionComponent def = getConceptForCode(cs.getConcept(), fc.getValue()); if (def != null) { if (isNotBlank(def.getDisplay()) && isNotBlank(fc.getValue())) { diff --git a/org.hl7.fhir.r4b/src/main/java/org/hl7/fhir/r4b/terminologies/CodeSystemUtilities.java b/org.hl7.fhir.r4b/src/main/java/org/hl7/fhir/r4b/terminologies/CodeSystemUtilities.java index 431787811..5832e1800 100644 --- a/org.hl7.fhir.r4b/src/main/java/org/hl7/fhir/r4b/terminologies/CodeSystemUtilities.java +++ b/org.hl7.fhir.r4b/src/main/java/org/hl7/fhir/r4b/terminologies/CodeSystemUtilities.java @@ -420,7 +420,7 @@ public class CodeSystemUtilities { } // see http://hl7.org/fhir/R4/codesystem.html#hierachy - // returns additional parents not in the heirarchy + // returns additional parents not in the hierarchy public static List getOtherChildren(CodeSystem cs, ConceptDefinitionComponent c) { List res = new ArrayList(); for (ConceptPropertyComponent p : c.getProperty()) { diff --git a/org.hl7.fhir.r4b/src/main/java/org/hl7/fhir/r4b/terminologies/ValueSetExpanderSimple.java b/org.hl7.fhir.r4b/src/main/java/org/hl7/fhir/r4b/terminologies/ValueSetExpanderSimple.java index 24ae5af1f..20f4afbf4 100644 --- a/org.hl7.fhir.r4b/src/main/java/org/hl7/fhir/r4b/terminologies/ValueSetExpanderSimple.java +++ b/org.hl7.fhir.r4b/src/main/java/org/hl7/fhir/r4b/terminologies/ValueSetExpanderSimple.java @@ -183,7 +183,7 @@ public class ValueSetExpanderSimple extends ValueSetWorker implements ValueSetEx private List roots = new ArrayList(); private Map map = new HashMap(); private IWorkerContext context; - private boolean canBeHeirarchy = true; + private boolean canBeHierarchy = true; private boolean includeAbstract = true; private Set excludeKeys = new HashSet(); private Set excludeSystems = new HashSet(); @@ -238,13 +238,13 @@ public class ValueSetExpanderSimple extends ValueSetWorker implements ValueSetEx String s = key(n); if (map.containsKey(s) || excludeKeys.contains(s)) { - canBeHeirarchy = false; + canBeHierarchy = false; } else { codes.add(n); map.put(s, n); total++; } - if (canBeHeirarchy && parent != null) { + if (canBeHierarchy && parent != null) { parent.getContains().add(n); } else { roots.add(n); @@ -446,7 +446,7 @@ public class ValueSetExpanderSimple extends ValueSetWorker implements ValueSetEx handleCompose(source.getCompose(), focus.getExpansion(), expParams, source.getUrl(), focus.getExpansion().getExtension()); - if (canBeHeirarchy) { + if (canBeHierarchy) { for (ValueSetExpansionContainsComponent c : roots) { focus.getExpansion().getContains().add(c); } @@ -457,7 +457,7 @@ public class ValueSetExpanderSimple extends ValueSetWorker implements ValueSetEx // might be heirarchical, but later we // gave up, so now ignore them focus.getExpansion().getContains().add(c); - c.getContains().clear(); // make sure any heirarchy is wiped + c.getContains().clear(); // make sure any hierarchy is wiped } } } @@ -493,15 +493,15 @@ public class ValueSetExpanderSimple extends ValueSetWorker implements ValueSetEx // Exclude comes first because we build up a map of things to exclude for (ConceptSetComponent inc : compose.getExclude()) excludeCodes(inc, exp.getParameter(), ctxt); - canBeHeirarchy = !expParams.getParameterBool("excludeNested") && excludeKeys.isEmpty() && excludeSystems.isEmpty(); + canBeHierarchy = !expParams.getParameterBool("excludeNested") && excludeKeys.isEmpty() && excludeSystems.isEmpty(); includeAbstract = !expParams.getParameterBool("excludeNotForUI"); boolean first = true; for (ConceptSetComponent inc : compose.getInclude()) { if (first == true) first = false; else - canBeHeirarchy = false; - includeCodes(inc, exp, expParams, canBeHeirarchy, extensions); + canBeHierarchy = false; + includeCodes(inc, exp, expParams, canBeHierarchy, extensions); } } @@ -540,8 +540,8 @@ public class ValueSetExpanderSimple extends ValueSetWorker implements ValueSetEx exp.getParameter().add(p); } copyExpansion(vso.getValueset().getExpansion().getContains()); - canBeHeirarchy = false; // if we're importing a value set, we have to be combining, so we won't try for - // a heirarchy + canBeHierarchy = false; // if we're importing a value set, we have to be combining, so we won't try for + // a hierarchy return vso.getValueset(); } @@ -681,7 +681,7 @@ public class ValueSetExpanderSimple extends ValueSetWorker implements ValueSetEx } if (!inc.getConcept().isEmpty()) { - canBeHeirarchy = false; + canBeHierarchy = false; for (ConceptReferenceComponent c : inc.getConcept()) { c.checkNoModifiers("Code in Code System", "expanding"); ConceptDefinitionComponent def = CodeSystemUtilities.findCode(cs.getConcept(), c.getCode()); @@ -705,7 +705,7 @@ public class ValueSetExpanderSimple extends ValueSetWorker implements ValueSetEx } } if (inc.getFilter().size() > 1) { - canBeHeirarchy = false; // which will bt the case if we get around to supporting this + canBeHierarchy = false; // which will bt the case if we get around to supporting this throw failTSE("Multiple filters not handled yet"); // need to and them, and this isn't done yet. But this // shouldn't arise in non loinc and snomed value sets } @@ -745,7 +745,7 @@ public class ValueSetExpanderSimple extends ValueSetWorker implements ValueSetEx } else if ("display".equals(fc.getProperty()) && fc.getOp() == FilterOperator.EQUAL) { // gg; note: wtf is this: if the filter is display=v, look up the code 'v', and // see if it's diplsay is 'v'? - canBeHeirarchy = false; + canBeHierarchy = false; ConceptDefinitionComponent def = getConceptForCode(cs.getConcept(), fc.getValue()); if (def != null) { if (isNotBlank(def.getDisplay()) && isNotBlank(fc.getValue())) { diff --git a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/renderers/CodeSystemRenderer.java b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/renderers/CodeSystemRenderer.java index 620b285e1..c633d52b6 100644 --- a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/renderers/CodeSystemRenderer.java +++ b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/renderers/CodeSystemRenderer.java @@ -275,11 +275,11 @@ public class CodeSystemRenderer extends TerminologyRenderer { private void makeHierarchyParam(XhtmlNode x, CodeSystem cs, Enumeration hm) { if (hm.hasValue()) { String s = hm.getValue().getDisplay(); - renderStatus(hm, x).tx(" "+/*!#*/"in a "+s+" heirarchy"); + renderStatus(hm, x).tx(" "+/*!#*/"in a "+s+" hierarchy"); } else if (VersionComparisonAnnotation.hasDeleted(cs, "hierarchyMeaning")) { makeHierarchyParam(x, null, (Enumeration) VersionComparisonAnnotation.getDeleted(cs, "hierarchyMeaning").get(0)); } else if (CodeSystemUtilities.hasHierarchy(cs)) { - x.tx(" "+/*!#*/"in an undefined heirarchy"); + x.tx(" "+/*!#*/"in an undefined hierarchy"); } else { x.tx(""); } @@ -682,7 +682,7 @@ public class CodeSystemRenderer extends TerminologyRenderer { } } for (ConceptDefinitionDesignationComponent cd : c.getDesignation()) { - if (cd.hasLanguage() && !langs.contains(cd.getLanguage()) && !c.getDefinition().equalsIgnoreCase(cd.getValue())) { + if (cd.hasLanguage() && (langs == null || !langs.contains(cd.getLanguage())) && (c.getDefinition() == null || !c.getDefinition().equalsIgnoreCase(cd.getValue()))) { list.add(new Translateable(cd.getLanguage(), cd.getValueElement())); } } diff --git a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/renderers/ValueSetRenderer.java b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/renderers/ValueSetRenderer.java index e235ad9d8..3177810d9 100644 --- a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/renderers/ValueSetRenderer.java +++ b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/renderers/ValueSetRenderer.java @@ -1017,14 +1017,14 @@ public class ValueSetRenderer extends TerminologyRenderer { } private void renderExpansionRules(XhtmlNode x, ConceptSetComponent inc, int index, Map definitions) throws FHIRException, IOException { - String s = /*!#*/"This include specifies a heirarchy for when value sets are generated for use in a User Interface, but the rules are not properly defined"; + String s = /*!#*/"This include specifies a hierarchy for when value sets are generated for use in a User Interface, but the rules are not properly defined"; if (inc.hasExtension(ToolingExtensions.EXT_EXPAND_RULES)) { String rule = inc.getExtensionString(ToolingExtensions.EXT_EXPAND_RULES); if (rule != null) { switch (rule) { - case "all-codes": s = /*!#*/"This include specifies a heirarchy for when value sets are generated for use in a User Interface. The expansion contains all the codes, and also this structure:"; - case "ungrouped": s = /*!#*/"This include specifies a heirarchy for when value sets are generated for use in a User Interface. The expansion contains this structure, and any codes not found in the structure:"; - case "groups-only": s = /*!#*/"This include specifies a heirarchy for when value sets are generated for use in a User Interface. The expansion contains this structure:"; + case "all-codes": s = /*!#*/"This include specifies a hierarchy for when value sets are generated for use in a User Interface. The expansion contains all the codes, and also this structure:"; + case "ungrouped": s = /*!#*/"This include specifies a hierarchy for when value sets are generated for use in a User Interface. The expansion contains this structure, and any codes not found in the structure:"; + case "groups-only": s = /*!#*/"This include specifies a hierarchy for when value sets are generated for use in a User Interface. The expansion contains this structure:"; } } } diff --git a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/terminologies/CodeSystemUtilities.java b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/terminologies/CodeSystemUtilities.java index 6a35595db..bdca7a290 100644 --- a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/terminologies/CodeSystemUtilities.java +++ b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/terminologies/CodeSystemUtilities.java @@ -607,7 +607,7 @@ public class CodeSystemUtilities extends TerminologyUtilities { } // see http://hl7.org/fhir/R4/codesystem.html#hierachy - // returns additional parents not in the heirarchy + // returns additional parents not in the hierarchy public static List getOtherChildren(CodeSystem cs, ConceptDefinitionComponent c) { List res = new ArrayList(); for (ConceptPropertyComponent p : c.getProperty()) { 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 9893a0420..f7298445d 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 @@ -320,7 +320,7 @@ public class ValueSetExpander extends ValueSetProcessBase { String s = key(n); if (wc.getMap().containsKey(s) || wc.getExcludeKeys().contains(s)) { - wc.setCanBeHeirarchy(false); + wc.setCanBeHierarchy(false); } else { wc.getCodes().add(n); wc.getMap().put(s, n); @@ -335,7 +335,7 @@ public class ValueSetExpander extends ValueSetProcessBase { // throw failCostly(context.formatMessage(I18nConstants.VALUESET_TOO_COSTLY, focus.getUrl(), ">" + Integer.toString(maxExpansionSize))); // } } - if (wc.isCanBeHeirarchy() && parent != null) { + if (wc.isCanBeHierarchy() && parent != null) { parent.getContains().add(n); } else if (!wc.getRootMap().containsKey(s)) { wc.getRootMap().put(s, n); @@ -765,7 +765,7 @@ public class ValueSetExpander extends ValueSetProcessBase { } else { throw failCostly(context.formatMessage(I18nConstants.VALUESET_TOO_COSTLY_COUNT, focus.getVersionedUrl(), ">" + MessageFormat.format("{0,number,#}", maxExpansionSize), MessageFormat.format("{0,number,#}", dwc.getTotal()))); } - } else if (dwc.isCanBeHeirarchy() && ((dwc.getCountParam() == 0) || dwc.getCountParam() > dwc.getCodes().size())) { + } else if (dwc.isCanBeHierarchy() && ((dwc.getCountParam() == 0) || dwc.getCountParam() > dwc.getCodes().size())) { for (ValueSetExpansionContainsComponent c : dwc.getRoots()) { focus.getExpansion().getContains().add(c); } @@ -773,7 +773,7 @@ public class ValueSetExpander extends ValueSetProcessBase { int i = 0; int cc = 0; for (ValueSetExpansionContainsComponent c : dwc.getCodes()) { - c.getContains().clear(); // make sure any heirarchy is wiped + c.getContains().clear(); // make sure any hierarchy is wiped if (dwc.getMap().containsKey(key(c)) && (includeAbstract || !c.getAbstract())) { // we may have added abstract codes earlier while we still thought it might be heirarchical, but later we gave up, so now ignore them if (dwc.getOffsetParam() == 0 || i >= dwc.getOffsetParam()) { focus.getExpansion().getContains().add(c); @@ -834,15 +834,15 @@ public class ValueSetExpander extends ValueSetProcessBase { // Exclude comes first because we build up a map of things to exclude for (ConceptSetComponent inc : compose.getExclude()) excludeCodes(dwc, inc, expParams, exp, valueSet); - dwc.setCanBeHeirarchy(!expParams.getParameterBool("excludeNested") && dwc.getExcludeKeys().isEmpty() && dwc.getExcludeSystems().isEmpty() && dwc.getOffsetParam() == 0); + dwc.setCanBeHierarchy(!expParams.getParameterBool("excludeNested") && dwc.getExcludeKeys().isEmpty() && dwc.getExcludeSystems().isEmpty() && dwc.getOffsetParam() == 0); includeAbstract = !expParams.getParameterBool("excludeNotForUI"); boolean first = true; for (ConceptSetComponent inc : compose.getInclude()) { if (first == true) first = false; else - dwc.setCanBeHeirarchy(false); - includeCodes(inc, exp, expParams, dwc.isCanBeHeirarchy(), compose.hasInactive() ? !compose.getInactive() : checkNoInActiveFromParam(expParams), extensions, valueSet); + dwc.setCanBeHierarchy(false); + includeCodes(inc, exp, expParams, dwc.isCanBeHierarchy(), compose.hasInactive() ? !compose.getInactive() : checkNoInActiveFromParam(expParams), extensions, valueSet); } } @@ -910,7 +910,7 @@ public class ValueSetExpander extends ValueSetProcessBase { if (isValueSetUnionImports(valueSet)) { copyExpansion(wc, evs.getContains()); } - wc.setCanBeHeirarchy(false); // if we're importing a value set, we have to be combining, so we won't try for a heirarchy + wc.setCanBeHierarchy(false); // if we're importing a value set, we have to be combining, so we won't try for a hierarchy return vso.getValueset(); } @@ -1109,7 +1109,7 @@ public class ValueSetExpander extends ValueSetProcessBase { } if (!inc.getConcept().isEmpty()) { - dwc.setCanBeHeirarchy(false); + dwc.setCanBeHierarchy(false); for (ConceptReferenceComponent c : inc.getConcept()) { c.checkNoModifiers("Code in Value Set", "expanding"); ConceptDefinitionComponent def = CodeSystemUtilities.findCodeOrAltCode(cs.getConcept(), c.getCode(), null); @@ -1136,7 +1136,7 @@ public class ValueSetExpander extends ValueSetProcessBase { } if (inc.getFilter().size() > 0) { if (inc.getFilter().size() > 1) { - dwc.setCanBeHeirarchy(false); // which will be the case if we get around to supporting this + dwc.setCanBeHierarchy(false); // which will be the case if we get around to supporting this } if (cs.getContent() == CodeSystemContentMode.FRAGMENT) { addFragmentWarning(exp, cs); @@ -1203,7 +1203,7 @@ public class ValueSetExpander extends ValueSetProcessBase { } else if ("display".equals(fc.getProperty()) && fc.getOp() == FilterOperator.EQUAL) { // gg; note: wtf is this: if the filter is display=v, look up the code 'v', and see if it's display is 'v'? - dwc.setCanBeHeirarchy(false); + dwc.setCanBeHierarchy(false); ConceptDefinitionComponent def = getConceptForCode(cs.getConcept(), fc.getValue()); if (def != null) { if (isNotBlank(def.getDisplay()) && isNotBlank(fc.getValue())) { diff --git a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/terminologies/expansion/WorkingContext.java b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/terminologies/expansion/WorkingContext.java index 0961990c9..fafd0dc3b 100644 --- a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/terminologies/expansion/WorkingContext.java +++ b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/terminologies/expansion/WorkingContext.java @@ -18,7 +18,7 @@ class WorkingContext { private Set excludeKeys = new HashSet(); private Set excludeSystems = new HashSet(); - private boolean canBeHeirarchy = true; + private boolean canBeHierarchy = true; private Integer offsetParam; private Integer countParam; // allowed count. Because of internal processing, we allow more private int total; // running count. This might be more than actually seen if we call out to an external server and only get the first 1000 codes @@ -48,12 +48,12 @@ class WorkingContext { return excludeSystems; } - public boolean isCanBeHeirarchy() { - return canBeHeirarchy; + public boolean isCanBeHierarchy() { + return canBeHierarchy; } - public void setCanBeHeirarchy(boolean canBeHeirarchy) { - this.canBeHeirarchy = canBeHeirarchy; + public void setCanBeHierarchy(boolean canBeHierarchy) { + this.canBeHierarchy = canBeHierarchy; } public boolean hasOffsetParam() { diff --git a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/utils/ToolingExtensions.java b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/utils/ToolingExtensions.java index 0aebd1e5e..210f42dc2 100644 --- a/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/utils/ToolingExtensions.java +++ b/org.hl7.fhir.r5/src/main/java/org/hl7/fhir/r5/utils/ToolingExtensions.java @@ -218,7 +218,7 @@ public class ToolingExtensions { public static final String EXT_Q_DISPLAY_CAT = "http://hl7.org/fhir/StructureDefinition/questionnaire-displayCategory"; public static final String EXT_REND_MD = "http://hl7.org/fhir/StructureDefinition/rendering-markdown"; public static final String EXT_CAP_STMT_EXPECT = "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation"; - public static final String EXT_ED_HEIRARCHY = "http://hl7.org/fhir/StructureDefinition/elementdefinition-heirarchy"; + public static final String EXT_ED_HIERARCHY = "http://hl7.org/fhir/StructureDefinition/elementdefinition-hierarchy"; public static final String EXT_SD_IMPOSE_PROFILE = "http://hl7.org/fhir/StructureDefinition/structuredefinition-imposeProfile"; public static final String EXT_SD_COMPLIES_WITH_PROFILE = "http://hl7.org/fhir/StructureDefinition/structuredefinition-compliesWithProfile"; public static final String EXT_DEF_TYPE = "http://hl7.org/fhir/StructureDefinition/elementdefinition-defaulttype"; @@ -272,6 +272,7 @@ public class ToolingExtensions { public static final String EXT_APPLICABLE_VERSION = "http://hl7.org/fhir/StructureDefinition/version-specific-use"; public static final String EXT_APPLICABLE_VERSION_VALUE = "http://hl7.org/fhir/StructureDefinition/version-specific-value"; public static final String EXT_IG_URL = "http://hl7.org/fhir/tools/StructureDefinition/implementationguide-resource-uri"; + public static final String EXT_VS_CS_SUPPL_NEEDED = "http://hl7.org/fhir/StructureDefinition/valueset-supplement"; // specific extension helpers diff --git a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/type/CodeSystemValidator.java b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/type/CodeSystemValidator.java index e153b3f30..bad6d6e29 100644 --- a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/type/CodeSystemValidator.java +++ b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/type/CodeSystemValidator.java @@ -552,7 +552,7 @@ public class CodeSystemValidator extends BaseValidator { hint(errors, NO_RULE_DATE, IssueType.BUSINESSRULE, s.getLiteralPath(), false, I18nConstants.CODESYSTEM_CS_NONHL7_MISSING_ELEMENT, "caseSensitive"); } } - if (Utilities.noString(hierarchyMeaning) && hasHeirarchy(cs)) { + if (Utilities.noString(hierarchyMeaning) && hasHierarchy(cs)) { NodeStack s = stack; Element c = cs.getNamedChild("hierarchyMeaning", false); if (c != null) { @@ -604,7 +604,7 @@ public class CodeSystemValidator extends BaseValidator { } - private boolean hasHeirarchy(Element cs) { + private boolean hasHierarchy(Element cs) { for (Element c : cs.getChildren("concept")) { if (c.hasChildren("concept")) { return true;