diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/EntityRedactionService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/EntityRedactionService.java index 371fbb6e..1d97e674 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/EntityRedactionService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/EntityRedactionService.java @@ -7,7 +7,6 @@ import java.util.List; import java.util.Map; import java.util.Set; import java.util.concurrent.atomic.AtomicInteger; -import java.util.regex.Pattern; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -290,47 +289,13 @@ public class EntityRedactionService { String lowercaseInputString = searchableString.toLowerCase(); for (DictionaryModel model : dictionary.getDictionaryModels()) { if (model.isCaseInsensitive()) { - found.addAll(find(lowercaseInputString, model.getValues(local), model.getType(), headline, sectionNumber, local)); + found.addAll(EntitySearchUtils.find(lowercaseInputString, model.getValues(local), model.getType(), headline, sectionNumber, local)); } else { - found.addAll(find(searchableString, model.getValues(local), model.getType(), headline, sectionNumber, local)); + found.addAll(EntitySearchUtils.find(searchableString, model.getValues(local), model.getType(), headline, sectionNumber, local)); } } return EntitySearchUtils.clearAndFindPositions(found, searchableText, dictionary); - - } - - - private Set find(String inputString, Set values, String type, String headline, int sectionNumber, - boolean local) { - - Set found = new HashSet<>(); - - for (String value : values) { - - if (value.trim().length() <= 2) { - continue; - } - - int startIndex; - int stopIndex = 0; - do { - startIndex = inputString.indexOf(value, stopIndex); - stopIndex = startIndex + value.length(); - - if (startIndex > -1 && (startIndex == 0 || Character.isWhitespace(inputString.charAt(startIndex - 1)) || isSeparator(inputString - .charAt(startIndex - 1))) && (stopIndex == inputString.length() || isSeparator(inputString.charAt(stopIndex)))) { - found.add(new Entity(inputString.substring(startIndex, stopIndex), type, startIndex, stopIndex, headline, sectionNumber, !local)); - } - } while (startIndex > -1); - } - return found; - } - - - private boolean isSeparator(char c) { - - return Character.isWhitespace(c) || Pattern.matches("\\p{Punct}", String.valueOf(c)) || c == '\"' || c == '‘' || c == '’'; } diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/visualization/service/AnnotationHighlightService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/visualization/service/AnnotationHighlightService.java index 1673bfa8..39e52c79 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/visualization/service/AnnotationHighlightService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/visualization/service/AnnotationHighlightService.java @@ -125,7 +125,7 @@ public class AnnotationHighlightService { if (manualRemoval.getId().equals(entityPositionSequence.getId())) { comments = manualRedactions.getComments().get(manualRemoval.getId()); String manualOverrideReason = null; - if (manualRemoval.getStatus().equals(Status.APPROVED) && manualRemoval.isRemoveFromDictionary()) { + if (manualRemoval.getStatus().equals(Status.APPROVED)) { entity.setRedaction(false); redactionLogEntry.setRedacted(false); redactionLogEntry.setStatus(Status.APPROVED);