Support for negation in search operations #815.

This commit is contained in:
Łukasz Dywicki 2017-12-30 00:52:03 +01:00
parent d375977410
commit 66b6149bf6
1 changed files with 10 additions and 2 deletions

View File

@ -1223,7 +1223,11 @@ public class SearchBuilder implements ISearchBuilder {
*/ */
if (StringUtils.isNotBlank(system)) { if (StringUtils.isNotBlank(system)) {
singleCodePredicates.add(theBuilder.equal(theFrom.get("mySystem"), system)); if (modifier != null && modifier == TokenParamModifier.NOT) {
singleCodePredicates.add(theBuilder.notEqual(theFrom.get("mySystem"), system));
} else {
singleCodePredicates.add(theBuilder.equal(theFrom.get("mySystem"), system));
}
} else if (system == null) { } else if (system == null) {
// don't check the system // don't check the system
} else { } else {
@ -1232,7 +1236,11 @@ public class SearchBuilder implements ISearchBuilder {
} }
if (StringUtils.isNotBlank(code)) { if (StringUtils.isNotBlank(code)) {
singleCodePredicates.add(theBuilder.equal(theFrom.get("myValue"), code)); if (modifier != null && modifier == TokenParamModifier.NOT) {
singleCodePredicates.add(theBuilder.notEqual(theFrom.get("myValue"), code));
} else {
singleCodePredicates.add(theBuilder.equal(theFrom.get("myValue"), code));
}
} else { } else {
/* /*
* As of HAPI FHIR 1.5, if the client searched for a token with a system but no specified value this means to * As of HAPI FHIR 1.5, if the client searched for a token with a system but no specified value this means to