Fix bug processing value set includes / excludes that are just value sets (no system value)
This commit is contained in:
parent
9f9e9dfb8a
commit
51934de457
|
@ -934,10 +934,14 @@ public abstract class BaseWorkerContext extends I18nBase implements IWorkerConte
|
|||
throw new Error(formatMessage(I18nConstants.NO_VALUE_SET_IN_URL));
|
||||
}
|
||||
for (ConceptSetComponent inc : vs.getCompose().getInclude()) {
|
||||
codeSystemsUsed.add(inc.getSystem());
|
||||
if (inc.hasSystem()) {
|
||||
codeSystemsUsed.add(inc.getSystem());
|
||||
}
|
||||
}
|
||||
for (ConceptSetComponent inc : vs.getCompose().getExclude()) {
|
||||
codeSystemsUsed.add(inc.getSystem());
|
||||
if (inc.hasSystem()) {
|
||||
codeSystemsUsed.add(inc.getSystem());
|
||||
}
|
||||
}
|
||||
|
||||
CacheToken cacheToken = txCache.generateExpandToken(vs, hierarchical);
|
||||
|
|
|
@ -606,33 +606,35 @@ public class ValueSetExpander extends ValueSetProcessBase {
|
|||
excludeCodes(wc, importValueSetForExclude(wc, imp.getValue(), exp, expParams, false, vs).getExpansion());
|
||||
}
|
||||
|
||||
CodeSystem cs = context.fetchSupplementedCodeSystem(exc.getSystem());
|
||||
if ((cs == null || cs.getContent() != CodeSystemContentMode.COMPLETE) && context.supportsSystem(exc.getSystem(), opContext.getOptions().getFhirVersion())) {
|
||||
ValueSetExpansionOutcome vse = context.expandVS(exc, false, false);
|
||||
ValueSet valueset = vse.getValueset();
|
||||
if (valueset == null)
|
||||
throw failTSE("Error Expanding ValueSet: "+vse.getError());
|
||||
excludeCodes(wc, valueset.getExpansion());
|
||||
return;
|
||||
}
|
||||
|
||||
for (ConceptReferenceComponent c : exc.getConcept()) {
|
||||
excludeCode(wc, exc.getSystem(), c.getCode());
|
||||
}
|
||||
|
||||
if (exc.getFilter().size() > 0) {
|
||||
if (cs.getContent() == CodeSystemContentMode.FRAGMENT) {
|
||||
addFragmentWarning(exp, cs);
|
||||
if (exc.hasSystem()) {
|
||||
CodeSystem cs = context.fetchSupplementedCodeSystem(exc.getSystem());
|
||||
if ((cs == null || cs.getContent() != CodeSystemContentMode.COMPLETE) && context.supportsSystem(exc.getSystem(), opContext.getOptions().getFhirVersion())) {
|
||||
ValueSetExpansionOutcome vse = context.expandVS(exc, false, false);
|
||||
ValueSet valueset = vse.getValueset();
|
||||
if (valueset == null)
|
||||
throw failTSE("Error Expanding ValueSet: "+vse.getError());
|
||||
excludeCodes(wc, valueset.getExpansion());
|
||||
return;
|
||||
}
|
||||
List<WorkingContext> filters = new ArrayList<>();
|
||||
for (int i = 1; i < exc.getFilter().size(); i++) {
|
||||
WorkingContext wc1 = new WorkingContext();
|
||||
filters.add(wc1);
|
||||
processFilter(exc, exp, expParams, null, cs, false, exc.getFilter().get(i), wc1, null, true);
|
||||
|
||||
for (ConceptReferenceComponent c : exc.getConcept()) {
|
||||
excludeCode(wc, exc.getSystem(), c.getCode());
|
||||
}
|
||||
|
||||
if (exc.getFilter().size() > 0) {
|
||||
if (cs.getContent() == CodeSystemContentMode.FRAGMENT) {
|
||||
addFragmentWarning(exp, cs);
|
||||
}
|
||||
List<WorkingContext> filters = new ArrayList<>();
|
||||
for (int i = 1; i < exc.getFilter().size(); i++) {
|
||||
WorkingContext wc1 = new WorkingContext();
|
||||
filters.add(wc1);
|
||||
processFilter(exc, exp, expParams, null, cs, false, exc.getFilter().get(i), wc1, null, true);
|
||||
}
|
||||
ConceptSetFilterComponent fc = exc.getFilter().get(0);
|
||||
WorkingContext wc1 = dwc;
|
||||
processFilter(exc, exp, expParams, null, cs, false, fc, wc1, filters, true);
|
||||
}
|
||||
ConceptSetFilterComponent fc = exc.getFilter().get(0);
|
||||
WorkingContext wc1 = dwc;
|
||||
processFilter(exc, exp, expParams, null, cs, false, fc, wc1, filters, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -728,7 +730,6 @@ public class ValueSetExpander extends ValueSetProcessBase {
|
|||
expParams = makeDefaultExpansion();
|
||||
altCodeParams.seeParameters(expParams);
|
||||
altCodeParams.seeValueSet(source);
|
||||
|
||||
source.checkNoModifiers("ValueSet", "expanding");
|
||||
focus = source.copy();
|
||||
focus.setIdBase(null);
|
||||
|
|
Loading…
Reference in New Issue