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)) {
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) {
// don't check the system
} else {
@ -1232,7 +1236,11 @@ public class SearchBuilder implements ISearchBuilder {
}
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 {
/*
* As of HAPI FHIR 1.5, if the client searched for a token with a system but no specified value this means to