diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/RedactionLogMergeService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/RedactionLogMergeService.java index c8b6b4dc..34d6c872 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/RedactionLogMergeService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/RedactionLogMergeService.java @@ -76,10 +76,17 @@ public class RedactionLogMergeService { Set excludedPages, List types, Colors colors) { var skippedImportedRedactions = new HashSet<>(); - + var validSourceIds = new HashSet<>(); log.info("Merging Redaction log with manual redactions"); if (manualRedactions != null) { + // entries that have been added to dictionaries + validSourceIds.addAll(manualRedactions.getEntriesToAdd().stream() + .filter(entry -> entry.getSourceId() != null) + .filter(entry -> entry.isAddToDictionary() || entry.isAddToDossierDictionary()) + .filter(entry -> entry.getStatus() == AnnotationStatus.APPROVED) + .filter(entry -> entry.getProcessedDate() != null) + .map(ManualRedactionEntry::getSourceId).collect(Collectors.toList())); var manualRedactionLogEntries = addManualAddEntries(sectionGrid, manualRedactions.getEntriesToAdd(), manualRedactions.getComments(), colors, types); @@ -112,6 +119,11 @@ public class RedactionLogMergeService { Set processedIds = new HashSet<>(); redactionLog.getRedactionLogEntry().removeIf(entry -> { + + if(validSourceIds.contains(entry.getId())){ + return true; + } + if (entry.getImportedRedactionIntersections() != null) { entry.getImportedRedactionIntersections().removeAll(skippedImportedRedactions); if (!entry.getImportedRedactionIntersections().isEmpty() && (!entry.isImage() || entry.isImage() && !(entry.getType().equals("image") || entry.getType().equals("ocr")))) {