From a39bbd9afa814577543a33c35dd27c96ec993e79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominique=20Eifl=C3=A4nder?= Date: Mon, 19 Jul 2021 13:12:20 +0200 Subject: [PATCH] RED-1184: Always find reanaylsis sections with caseinsentive values to remove values if type has changed from caseinsensitive to casesensitive --- .../server/redaction/utils/EntitySearchUtils.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/utils/EntitySearchUtils.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/utils/EntitySearchUtils.java index f14eeb59..0daca578 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/utils/EntitySearchUtils.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/utils/EntitySearchUtils.java @@ -5,6 +5,7 @@ import com.iqser.red.service.redaction.v1.server.redaction.model.DictionaryIncre import com.iqser.red.service.redaction.v1.server.redaction.model.Entity; import com.iqser.red.service.redaction.v1.server.redaction.model.EntityPositionSequence; import com.iqser.red.service.redaction.v1.server.redaction.model.SearchableText; + import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; @@ -17,7 +18,6 @@ import java.util.stream.Collectors; @SuppressWarnings("PMD") public class EntitySearchUtils { - public boolean sectionContainsAny(String sectionText, Set values) { String inputString = sectionText.toLowerCase(Locale.ROOT); @@ -38,9 +38,7 @@ public class EntitySearchUtils { if (startIndex > -1 && (startIndex == 0 || Character.isWhitespace(inputString.charAt(startIndex - 1)) || isSeparator(inputString .charAt(startIndex - 1))) && (stopIndex == inputString.length() || isSeparator(inputString.charAt(stopIndex)))) { - if (value.isCaseinsensitive() || !value.isCaseinsensitive() && sectionText.substring(startIndex, stopIndex).equals(value.getValue())) { - return true; - } + return true; } } while (startIndex > -1); } @@ -98,8 +96,8 @@ public class EntitySearchUtils { .sorted(Comparator.comparing(Entity::getStart)) .collect(Collectors.toList()); Entity firstEntity = orderedEntities.get(0); - List positionSequences = text.getSequences(firstEntity.getWord().trim(), dictionary.isCaseInsensitiveDictionary(firstEntity - .getType()), firstEntity.getTargetSequences()); + List positionSequences = text.getSequences(firstEntity.getWord() + .trim(), dictionary.isCaseInsensitiveDictionary(firstEntity.getType()), firstEntity.getTargetSequences()); for (int i = 0; i <= orderedEntities.size() - 1; i++) { try { @@ -133,6 +131,7 @@ public class EntitySearchUtils { public void addEntitiesWithHigherRank(Set entities, Set found, Dictionary dictionary) { + found.forEach(f -> addEntitiesWithHigherRank(entities, f, dictionary)); } @@ -148,9 +147,11 @@ public class EntitySearchUtils { entities.add(found); } + public void addEntitiesIgnoreRank(Set entities, Set found) { // HashSet keeps old value but we want the new. entities.removeAll(found); entities.addAll(found); } + }