Fix bug calculating value set expansion size for multiple imports
This commit is contained in:
parent
256c494d91
commit
7be94402a5
|
@ -987,14 +987,19 @@ public class ValueSetExpander extends ValueSetProcessBase {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void copyImportContains(List<ValueSetExpansionContainsComponent> list, ValueSetExpansionContainsComponent parent, Parameters expParams, List<ValueSet> filter, boolean noInactive, List<ValueSetExpansionPropertyComponent> vsProps, ValueSet vsSrc, ValueSetExpansionComponent exp) throws FHIRException, ETooCostly {
|
private int copyImportContains(List<ValueSetExpansionContainsComponent> list, ValueSetExpansionContainsComponent parent, Parameters expParams, List<ValueSet> filter, boolean noInactive, List<ValueSetExpansionPropertyComponent> vsProps, ValueSet vsSrc, ValueSetExpansionComponent exp) throws FHIRException, ETooCostly {
|
||||||
|
int count = 0;
|
||||||
opContext.deadCheck();
|
opContext.deadCheck();
|
||||||
for (ValueSetExpansionContainsComponent c : list) {
|
for (ValueSetExpansionContainsComponent c : list) {
|
||||||
c.checkNoModifiers("Imported Expansion in Code System", "expanding");
|
c.checkNoModifiers("Imported Expansion in Code System", "expanding");
|
||||||
ValueSetExpansionContainsComponent np = addCode(dwc, c.getSystem(), c.getCode(), c.getDisplay(), vsSrc.getLanguage(), parent, null, expParams, c.getAbstract(), c.getInactive(),
|
ValueSetExpansionContainsComponent np = addCode(dwc, c.getSystem(), c.getCode(), c.getDisplay(), vsSrc.getLanguage(), parent, null, expParams, c.getAbstract(), c.getInactive(),
|
||||||
filter, noInactive, false, vsProps, makeCSProps(c.getExtensionString(ToolingExtensions.EXT_DEFINITION), null), null, c.getProperty(), null, c.getExtension(), exp, false);
|
filter, noInactive, false, vsProps, makeCSProps(c.getExtensionString(ToolingExtensions.EXT_DEFINITION), null), null, c.getProperty(), null, c.getExtension(), exp, false);
|
||||||
copyImportContains(c.getContains(), np, expParams, filter, noInactive, vsProps, vsSrc, exp);
|
if (np != null) {
|
||||||
|
count++;
|
||||||
}
|
}
|
||||||
|
count = count + copyImportContains(c.getContains(), np, expParams, filter, noInactive, vsProps, vsSrc, exp);
|
||||||
|
}
|
||||||
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void includeCodes(ConceptSetComponent inc, ValueSetExpansionComponent exp, Parameters expParams, boolean heirarchical, boolean noInactive, List<Extension> extensions, ValueSet valueSet) throws ETooCostly, FileNotFoundException, IOException, FHIRException, CodeSystemProviderExtension {
|
private void includeCodes(ConceptSetComponent inc, ValueSetExpansionComponent exp, Parameters expParams, boolean heirarchical, boolean noInactive, List<Extension> extensions, ValueSet valueSet) throws ETooCostly, FileNotFoundException, IOException, FHIRException, CodeSystemProviderExtension {
|
||||||
|
@ -1008,11 +1013,12 @@ public class ValueSetExpander extends ValueSetProcessBase {
|
||||||
if (!inc.hasSystem()) {
|
if (!inc.hasSystem()) {
|
||||||
if (imports.isEmpty()) // though this is not supposed to be the case
|
if (imports.isEmpty()) // though this is not supposed to be the case
|
||||||
return;
|
return;
|
||||||
|
dwc.resetTotal();
|
||||||
ValueSet base = imports.get(0);
|
ValueSet base = imports.get(0);
|
||||||
checkCanonical(exp, base, focus);
|
checkCanonical(exp, base, focus);
|
||||||
imports.remove(0);
|
imports.remove(0);
|
||||||
base.checkNoModifiers("Imported ValueSet", "expanding");
|
base.checkNoModifiers("Imported ValueSet", "expanding");
|
||||||
copyImportContains(base.getExpansion().getContains(), null, expParams, imports, noInactive, base.getExpansion().getProperty(), base, exp);
|
dwc.incTotal(copyImportContains(base.getExpansion().getContains(), null, expParams, imports, noInactive, base.getExpansion().getProperty(), base, exp));
|
||||||
} else {
|
} else {
|
||||||
CodeSystem cs = context.fetchSupplementedCodeSystem(inc.getSystem());
|
CodeSystem cs = context.fetchSupplementedCodeSystem(inc.getSystem());
|
||||||
if (ValueSetUtilities.isServerSide(inc.getSystem()) || (cs == null || (cs.getContent() != CodeSystemContentMode.COMPLETE && cs.getContent() != CodeSystemContentMode.FRAGMENT))) {
|
if (ValueSetUtilities.isServerSide(inc.getSystem()) || (cs == null || (cs.getContent() != CodeSystemContentMode.COMPLETE && cs.getContent() != CodeSystemContentMode.FRAGMENT))) {
|
||||||
|
|
Loading…
Reference in New Issue