Fixed expend filter issue
This commit is contained in:
parent
d15a300486
commit
78f730c4ca
|
@ -222,7 +222,7 @@ public class FhirResourceDaoValueSetR4 extends BaseHapiFhirResourceDao<ValueSet>
|
||||||
private void addFilterIfPresent(String theFilter, ConceptSetComponent include) {
|
private void addFilterIfPresent(String theFilter, ConceptSetComponent include) {
|
||||||
if (ElementUtil.isEmpty(include.getConcept())) {
|
if (ElementUtil.isEmpty(include.getConcept())) {
|
||||||
if (isNotBlank(theFilter)) {
|
if (isNotBlank(theFilter)) {
|
||||||
include.addFilter().setProperty(JpaConstants.VALUESET_FILTER_DISPLAY).setOp(FilterOperator.EQUAL).setValue(theFilter);
|
include.addFilter().setProperty(JpaConstants.VALUESET_FILTER_DISPLAY).setOp(FilterOperator.EXISTS).setValue(theFilter);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1194,6 +1194,47 @@ public class ResourceProviderR4ValueSetNoVerCSNoVerTest extends BaseResourceProv
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testExpandByValueSetWithFilterContainsPartialValue() throws IOException {
|
||||||
|
loadAndPersistCodeSystem();
|
||||||
|
|
||||||
|
ValueSet toExpand = loadResourceFromClasspath(ValueSet.class, "/extensional-case-3-vs.xml");
|
||||||
|
|
||||||
|
Parameters respParam = myClient
|
||||||
|
.operation()
|
||||||
|
.onType(ValueSet.class)
|
||||||
|
.named("expand")
|
||||||
|
.withParameter(Parameters.class, "valueSet", toExpand)
|
||||||
|
.andParameter("filter", new StringType("loo"))
|
||||||
|
.execute();
|
||||||
|
ValueSet expanded = (ValueSet) respParam.getParameter().get(0).getResource();
|
||||||
|
|
||||||
|
String resp = myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(expanded);
|
||||||
|
ourLog.info(resp);
|
||||||
|
assertThat(resp, stringContainsInOrder("<code value=\"11378-7\"/>", "<display value=\"Systolic blood pressure at First encounter\"/>"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testExpandByValueSetWithFilterNotContainsAnyValue() throws IOException {
|
||||||
|
loadAndPersistCodeSystem();
|
||||||
|
|
||||||
|
ValueSet toExpand = loadResourceFromClasspath(ValueSet.class, "/extensional-case-3-vs.xml");
|
||||||
|
|
||||||
|
Parameters respParam = myClient
|
||||||
|
.operation()
|
||||||
|
.onType(ValueSet.class)
|
||||||
|
.named("expand")
|
||||||
|
.withParameter(Parameters.class, "valueSet", toExpand)
|
||||||
|
.andParameter("filter", new StringType("loood"))
|
||||||
|
.execute();
|
||||||
|
ValueSet expanded = (ValueSet) respParam.getParameter().get(0).getResource();
|
||||||
|
|
||||||
|
String resp = myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(expanded);
|
||||||
|
ourLog.info(resp);
|
||||||
|
|
||||||
|
assertThat(resp, not(stringContainsInOrder("<code value=\"11378-7\"/>","<display value=\"Systolic blood pressure at First encounter\"/>")));
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testExpandByUrlWithFilter() throws Exception {
|
public void testExpandByUrlWithFilter() throws Exception {
|
||||||
loadAndPersistCodeSystemAndValueSet();
|
loadAndPersistCodeSystemAndValueSet();
|
||||||
|
|
Loading…
Reference in New Issue