diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/Dictionary.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/Dictionary.java index 3879bb80..b436cbd2 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/Dictionary.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/Dictionary.java @@ -1,5 +1,7 @@ package com.iqser.red.service.redaction.v1.server.redaction.model; +import static java.util.stream.Collectors.toSet; + import lombok.Data; import lombok.Getter; @@ -8,6 +10,8 @@ import java.util.List; import java.util.Map; import java.util.Set; +import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.DictionaryEntry; + @Data public class Dictionary { @@ -61,7 +65,7 @@ public class Dictionary { public boolean containsValue(String type, String value) { return localAccessMap.containsKey(type) && localAccessMap.get(type) - .getEntries() + .getEntries().stream().map(DictionaryEntry::getValue).collect(toSet()) .contains(value) || localAccessMap.containsKey(type) && localAccessMap.get(type) .getLocalEntries() .contains(value) || localAccessMap.containsKey(RECOMMENDATION_PREFIX + type) && localAccessMap.get(RECOMMENDATION_PREFIX + type) 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 a8dd3f88..9c42aebd 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 @@ -89,7 +89,7 @@ public class EntityRedactionService { String imageId = IdBuilder.buildId(image.getPosition(), image.getPage()); for (ManualImageRecategorization imageRecategorization : analyzeRequest.getManualRedactions() .getImageRecategorization()) { - if (imageRecategorization.getStatus().equals(AnnotationStatus.APPROVED) && imageRecategorization.getId() + if (imageRecategorization.getStatus().equals(AnnotationStatus.APPROVED) && imageRecategorization.getId().getId() .equals(imageId)) { image.setType(imageRecategorization.getType()); } 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 d45eb959..55584a7a 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 @@ -240,7 +240,7 @@ public class RedactionLogMergeService { RedactionLogEntry redactionLogEntry = createRedactionLogEntry(manualRedactionEntry, manualRedactionEntry .getId().getId(), dossierTemplateId); redactionLogEntry.setPositions(convertPositions(manualRedactionEntry.getPositions())); - redactionLogEntry.setComments(comments.get(manualRedactionEntry.getId())); + redactionLogEntry.setComments(comments.get(manualRedactionEntry.getId().getId())); redactionLogEntries.add(redactionLogEntry); } } 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 1cd9d6d0..921788a5 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 @@ -140,7 +140,12 @@ public class EntitySearchUtils { public void addEntitiesWithHigherRank(Set entities, Entity found, Dictionary dictionary) { if (entities.contains(found)) { - Entity existing = entities.stream().filter(entity -> entity.equals(found)).findFirst().get(); + Optional existingOptional = entities.stream().filter(entity -> entity.equals(found)).findFirst(); + if(existingOptional.isPresent()){ + return; + } + var existing = existingOptional.get(); + if (dictionary.getDictionaryRank(existing.getType()) <= dictionary.getDictionaryRank(found.getType())) { entities.remove(found); entities.add(found); @@ -164,7 +169,11 @@ public class EntitySearchUtils { for(Entity toAdd: toBeAdded){ if (existing.contains(toAdd)) { - Entity existingEntity = existing.stream().filter(entity -> entity.equals(toAdd)).findFirst().get(); + Optional existingOptional = existing.stream().filter(entity -> entity.equals(toAdd)).findFirst(); + if(existingOptional.isPresent()){ + return; + } + var existingEntity = existingOptional.get(); existingEntity.getEngines().addAll(toAdd.getEngines()); } else { existing.add(toAdd); diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/segmentation/PdfSegmentationService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/segmentation/PdfSegmentationService.java index 22643b0b..7def2595 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/segmentation/PdfSegmentationService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/segmentation/PdfSegmentationService.java @@ -57,9 +57,10 @@ public class PdfSegmentationService { public Document parseDocument(InputStream documentInputStream, boolean ignoreImages) throws IOException { PDDocument pdDocument = null; + File tempFile = null; try { //create tempFile - File tempFile = File.createTempFile("document", ".pdf"); + tempFile = File.createTempFile("document", ".pdf"); IOUtils.copy(documentInputStream, new FileOutputStream(tempFile)); // initialize required variables @@ -127,13 +128,18 @@ public class PdfSegmentationService { IOUtils.close(pdDocument); - tempFile.delete(); + if (!tempFile.delete()) { + log.warn("TempFile could not be deleted"); + } return document; } finally { if (pdDocument != null) { pdDocument.close(); } + if (tempFile != null && tempFile.exists() && !tempFile.delete()) { + log.warn("TempFile could not be deleted"); + } } }