From 87d64b6d1285eaf7cd5ee3c2fb899f92063bc70f Mon Sep 17 00:00:00 2001 From: aoezyetimoglu Date: Mon, 23 May 2022 17:38:23 +0200 Subject: [PATCH] RED-3674: Fixed force redactions overrides idRemoval with different id --- .../service/EntityRedactionService.java | 3 +- .../v1/server/RedactionIntegrationTest.java | 68 ++++++ .../v1/server/annotate/AnnotateRequest.java | 6 + .../v1/server/annotate/AnnotationService.java | 2 + .../src/test/resources/colors/colors.json | 13 + .../src/test/resources/colors/types.json | 223 ++++++++++++++++++ .../dictionaries/published_information.txt | 1 + .../files/new/PublishedInformationTest.pdf | Bin 0 -> 38541 bytes 8 files changed, 315 insertions(+), 1 deletion(-) create mode 100644 redaction-service-v1/redaction-service-server-v1/src/test/resources/colors/colors.json create mode 100644 redaction-service-v1/redaction-service-server-v1/src/test/resources/colors/types.json create mode 100644 redaction-service-v1/redaction-service-server-v1/src/test/resources/files/new/PublishedInformationTest.pdf 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 070b6837..523137ed 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 @@ -82,9 +82,10 @@ public class EntityRedactionService { var idsToRemove = analyzeRequest.getManualRedactions().getIdsToRemove().stream() .filter(idr -> idr.getStatus() == AnnotationStatus.APPROVED && !idr.isRemoveFromDictionary()) .filter(idr -> idr.getRequestDate() != null) - .filter(idr -> approvedForceRedactions.stream().noneMatch(forceRedact -> forceRedact.getRequestDate().isAfter(idr.getRequestDate()))) + .filter(idr -> approvedForceRedactions.stream().noneMatch(forceRedact -> forceRedact.getAnnotationId().equals(idr.getAnnotationId()) && forceRedact.getRequestDate().isAfter(idr.getRequestDate()))) .map(IdRemoval::getAnnotationId).collect(Collectors.toSet()); + if (reanalysisSection.getImages() != null && !reanalysisSection.getImages() .isEmpty() && analyzeRequest.getManualRedactions().getImageRecategorization() != null) { for (Image image : reanalysisSection.getImages()) { diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RedactionIntegrationTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RedactionIntegrationTest.java index 2403181f..2e74a990 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RedactionIntegrationTest.java +++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RedactionIntegrationTest.java @@ -1,6 +1,7 @@ package com.iqser.red.service.redaction.v1.server; import com.amazonaws.services.s3.AmazonS3; +import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import com.iqser.red.service.persistence.service.v1.api.model.annotations.AnnotationStatus; import com.iqser.red.service.persistence.service.v1.api.model.annotations.Comment; @@ -58,6 +59,7 @@ import java.io.*; import java.net.URL; import java.nio.charset.StandardCharsets; import java.time.OffsetDateTime; +import java.time.ZoneOffset; import java.util.*; import java.util.stream.Collectors; @@ -715,6 +717,72 @@ public class RedactionIntegrationTest { } + @Test + public void testRemovePublishedInformations() throws IOException { + + long start = System.currentTimeMillis(); + + ClassPathResource colorsResource = new ClassPathResource("colors/colors.json"); + var colors = objectMapper.readValue(colorsResource.getInputStream(), Colors.class); + + ClassPathResource typeResource = new ClassPathResource("colors/types.json"); + TypeReference> typeRefForTypes = new TypeReference<>(){}; + List types = objectMapper.readValue(typeResource.getInputStream(), typeRefForTypes); + + + AnalyzeRequest request = prepareStorage("files/new/PublishedInformationTest.pdf"); + analyzeService.analyzeDocumentStructure(new StructureAnalyzeRequest(request.getDossierId(), request.getFileId())); + ManualRedactions manualRedactions = new ManualRedactions(); + manualRedactions.getIdsToRemove().add(IdRemoval.builder() + .annotationId("308dab9015bfafd911568cffe0a7f7de") + .fileId(TEST_FILE_ID) + .status(AnnotationStatus.APPROVED) + .requestDate(OffsetDateTime.of(2022,05,23,8,30,07,475479, ZoneOffset.UTC)) + .processedDate(OffsetDateTime.of(2022,05,23,8,30,07,483651, ZoneOffset.UTC)) + .build()); + + manualRedactions.getForceRedactions().add(ManualForceRedaction.builder() + .annotationId("0b56ea1a87c83f351df177315af94f0d") + .fileId(TEST_FILE_ID) + .status(AnnotationStatus.APPROVED) + .requestDate(OffsetDateTime.of(2022,05,23,9,30,15,4653, ZoneOffset.UTC)) + .processedDate(OffsetDateTime.of(2022,05,23,9,30,15,794, ZoneOffset.UTC)) + .build()); + + manualRedactions.getIdsToRemove().add(IdRemoval.builder() + .annotationId("0b56ea1a87c83f351df177315af94f0d") + .fileId(TEST_FILE_ID) + .status(AnnotationStatus.APPROVED) + .requestDate(OffsetDateTime.of(2022,05,23,8,30,23,961721, ZoneOffset.UTC)) + .processedDate(OffsetDateTime.of(2022,05,23,8,30,23,96528, ZoneOffset.UTC)) + .build()); + + + + request.setManualRedactions(manualRedactions); + + + AnalyzeResult result = analyzeService.analyze(request); + + + AnnotateResponse annotateResponse = annotationService.annotate(AnnotateRequest.builder() + .manualRedactions(manualRedactions) + .colors(colors) + .types(types) + .dossierId(TEST_DOSSIER_ID) + .fileId(TEST_FILE_ID) + .build()); + + try (FileOutputStream fileOutputStream = new FileOutputStream(OsUtils.getTemporaryDirectory() + "/Annotated.pdf")) { + fileOutputStream.write(annotateResponse.getDocument()); + } + long end = System.currentTimeMillis(); + + System.out.println("duration: " + (end - start)); + System.out.println("numberOfPages: " + result.getNumberOfPages()); + } + + @Test public void testTableRedaction() throws IOException { diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/annotate/AnnotateRequest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/annotate/AnnotateRequest.java index 9b9dd2b5..910fade9 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/annotate/AnnotateRequest.java +++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/annotate/AnnotateRequest.java @@ -1,6 +1,10 @@ package com.iqser.red.service.redaction.v1.server.annotate; +import java.util.List; + import com.iqser.red.service.persistence.service.v1.api.model.annotations.ManualRedactions; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.Colors; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.type.Type; import lombok.AllArgsConstructor; import lombok.Builder; @@ -17,4 +21,6 @@ public class AnnotateRequest { private String dossierTemplateId; private String fileId; private ManualRedactions manualRedactions; + private Colors colors; + private List types; } diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/annotate/AnnotationService.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/annotate/AnnotationService.java index 987da9d5..087f545e 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/annotate/AnnotationService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/annotate/AnnotationService.java @@ -46,6 +46,8 @@ public class AnnotationService { .manualRedactions(annotateRequest.getManualRedactions()) .dossierId(annotateRequest.getDossierId()) .dossierTemplateId(annotateRequest.getDossierTemplateId()) + .colors(annotateRequest.getColors()) + .types(annotateRequest.getTypes()) .build()); var sectionsGrid = redactionStorageService.getSectionGrid(annotateRequest.getDossierId(), annotateRequest.getFileId()); diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/colors/colors.json b/redaction-service-v1/redaction-service-server-v1/src/test/resources/colors/colors.json new file mode 100644 index 00000000..d51ddc52 --- /dev/null +++ b/redaction-service-v1/redaction-service-server-v1/src/test/resources/colors/colors.json @@ -0,0 +1,13 @@ +{ + "dossierTemplateId": "31039447-9040-4376-9ca7-614e56b284b9", + "defaultColor": "#9398a0", + "requestAdd": "#04b093", + "requestRemove": "#04b093", + "notRedacted": "#c498fa", + "analysisColor": "#dd4d50", + "updatedColor": "#fdbd00", + "dictionaryRequestColor": "#5b97db", + "manualRedactionColor": "#9398a0", + "previewColor": "#9398a0", + "ignoredHintColor": "#e7d4ff" +} \ No newline at end of file diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/colors/types.json b/redaction-service-v1/redaction-service-server-v1/src/test/resources/colors/types.json new file mode 100644 index 00000000..1a3685c2 --- /dev/null +++ b/redaction-service-v1/redaction-service-server-v1/src/test/resources/colors/types.json @@ -0,0 +1,223 @@ +[ + { + "id": "CBI_address:31039447-9040-4376-9ca7-614e56b284b9", + "type": "CBI_address", + "hexColor": "#9398a0", + "recommendationHexColor": "#8df06c", + "rank": 140, + "isHint": false, + "dossierTemplateId": "31039447-9040-4376-9ca7-614e56b284b9", + "isCaseInsensitive": false, + "isRecommendation": false, + "description": "All site names and addresses, and location (e.g. Syngenta, Monthey, GPS Co-ordinates, Mr Smith of … providing the…). Except addresses in published literature and the applicant address.", + "addToDictionaryAction": true, + "label": "CBI Address", + "hasDictionary": true, + "systemManaged": false, + "autoHideSkipped": false + }, + { + "id": "CBI_author:31039447-9040-4376-9ca7-614e56b284b9", + "type": "CBI_author", + "hexColor": "#9398a0", + "recommendationHexColor": "#8df06c", + "rank": 130, + "isHint": false, + "dossierTemplateId": "31039447-9040-4376-9ca7-614e56b284b9", + "isCaseInsensitive": false, + "isRecommendation": false, + "description": "All authors named in the study documentation. Except names in published literature.", + "addToDictionaryAction": true, + "label": "CBI Author", + "hasDictionary": true, + "systemManaged": false, + "autoHideSkipped": false + }, + { + "id": "PII:31039447-9040-4376-9ca7-614e56b284b9", + "type": "PII", + "hexColor": "#9398a0", + "recommendationHexColor": "#8df06c", + "rank": 150, + "isHint": false, + "dossierTemplateId": "31039447-9040-4376-9ca7-614e56b284b9", + "isCaseInsensitive": false, + "isRecommendation": false, + "description": "Not authors but listed in the document: Names, signatures, telephone, email etc.; e.g. Reg Manager, QA Manager", + "addToDictionaryAction": true, + "label": "PII", + "hasDictionary": true, + "systemManaged": false, + "autoHideSkipped": false + }, + { + "id": "formula:31039447-9040-4376-9ca7-614e56b284b9", + "type": "formula", + "hexColor": "#036ffc", + "recommendationHexColor": "#8df06c", + "rank": 1002, + "isHint": true, + "dossierTemplateId": "31039447-9040-4376-9ca7-614e56b284b9", + "isCaseInsensitive": true, + "isRecommendation": false, + "description": "Empty dictionary used to configure formula colors.", + "addToDictionaryAction": false, + "label": "Formula", + "hasDictionary": false, + "systemManaged": true, + "autoHideSkipped": false + }, + { + "id": "isHint_only:31039447-9040-4376-9ca7-614e56b284b9", + "type": "isHint_only", + "hexColor": "#fa98f7", + "recommendationHexColor": "#8df06c", + "rank": 50, + "isHint": true, + "dossierTemplateId": "31039447-9040-4376-9ca7-614e56b284b9", + "isCaseInsensitive": true, + "isRecommendation": false, + "description": "Entries of this dictionary will be highlighted only", + "addToDictionaryAction": false, + "label": "isHint Only", + "hasDictionary": true, + "systemManaged": false, + "autoHideSkipped": false + }, + { + "id": "image:31039447-9040-4376-9ca7-614e56b284b9", + "type": "image", + "hexColor": "#bdd6ff", + "recommendationHexColor": "#8df06c", + "rank": 999, + "isHint": true, + "dossierTemplateId": "31039447-9040-4376-9ca7-614e56b284b9", + "isCaseInsensitive": true, + "isRecommendation": false, + "description": "Empty dictionary used to configure image colors.", + "addToDictionaryAction": false, + "label": "Image", + "hasDictionary": false, + "systemManaged": true, + "autoHideSkipped": false + }, + { + "id": "logo:31039447-9040-4376-9ca7-614e56b284b9", + "type": "logo", + "hexColor": "#9398a0", + "recommendationHexColor": "#8df06c", + "rank": 1001, + "isHint": false, + "dossierTemplateId": "31039447-9040-4376-9ca7-614e56b284b9", + "isCaseInsensitive": true, + "isRecommendation": false, + "description": "Empty dictionary used to configure logo colors.", + "addToDictionaryAction": false, + "label": "Logo", + "hasDictionary": false, + "systemManaged": true, + "autoHideSkipped": false + }, + { + "id": "must_redact:31039447-9040-4376-9ca7-614e56b284b9", + "type": "must_redact", + "hexColor": "#9398a0", + "recommendationHexColor": "#8df06c", + "rank": 100, + "isHint": false, + "dossierTemplateId": "31039447-9040-4376-9ca7-614e56b284b9", + "isCaseInsensitive": true, + "isRecommendation": false, + "description": "Entries of this dictionary get redacted wherever found.", + "addToDictionaryAction": false, + "label": "Must Redact", + "hasDictionary": true, + "systemManaged": false, + "autoHideSkipped": false + }, + { + "id": "ocr:31039447-9040-4376-9ca7-614e56b284b9", + "type": "ocr", + "hexColor": "#bdd6ff", + "recommendationHexColor": "#8df06c", + "rank": 1000, + "isHint": true, + "dossierTemplateId": "31039447-9040-4376-9ca7-614e56b284b9", + "isCaseInsensitive": true, + "isRecommendation": false, + "description": "Empty dictionary used to configure ocr colors.", + "addToDictionaryAction": false, + "label": "Ocr", + "hasDictionary": false, + "systemManaged": true, + "autoHideSkipped": false + }, + { + "id": "signature:31039447-9040-4376-9ca7-614e56b284b9", + "type": "signature", + "hexColor": "#9398a0", + "recommendationHexColor": "#8df06c", + "rank": 1003, + "isHint": false, + "dossierTemplateId": "31039447-9040-4376-9ca7-614e56b284b9", + "isCaseInsensitive": true, + "isRecommendation": false, + "description": "Empty dictionary used to configure signature colors.", + "addToDictionaryAction": false, + "label": "Signature", + "hasDictionary": false, + "systemManaged": true, + "autoHideSkipped": false + }, + { + "id": "imported_redaction:31039447-9040-4376-9ca7-614e56b284b9", + "type": "imported_redaction", + "hexColor": "#f0f0c0", + "recommendationHexColor": "#8df06c", + "rank": 9999, + "isHint": false, + "dossierTemplateId": "31039447-9040-4376-9ca7-614e56b284b9", + "isCaseInsensitive": false, + "isRecommendation": false, + "description": "Redaction Annotations that were imported from documents", + "addToDictionaryAction": false, + "label": "Imported Redaction", + "hasDictionary": false, + "systemManaged": true, + "autoHideSkipped": true + }, + { + "id": "published_information:31039447-9040-4376-9ca7-614e56b284b9", + "type": "published_information", + "hexColor": "#85ebff", + "recommendationHexColor": "#8df06c", + "rank": 70, + "isHint": true, + "dossierTemplateId": "31039447-9040-4376-9ca7-614e56b284b9", + "isCaseInsensitive": false, + "isRecommendation": false, + "description": "Manual managed list of public journals and papers that need no redaction", + "addToDictionaryAction": true, + "label": "Published Information", + "hasDictionary": true, + "systemManaged": false, + "autoHideSkipped": false + }, + { + "id": "dossier_redaction:31039447-9040-4376-9ca7-614e56b284b9:5dfb2724-74a4-4a1a-a1eb-165e7943ffcd", + "type": "dossier_redaction", + "hexColor": "#9398a0", + "recommendationHexColor": null, + "rank": 1500, + "isHint": false, + "dossierTemplateId": "31039447-9040-4376-9ca7-614e56b284b9", + "isCaseInsensitive": false, + "isRecommendation": false, + "description": "Entries in this dictionary will only be redacted in this dossier", + "addToDictionaryAction": false, + "label": "Dossier Redaction", + "hasDictionary": true, + "systemManaged": true, + "autoHideSkipped": false + } +] \ No newline at end of file diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/dictionaries/published_information.txt b/redaction-service-v1/redaction-service-server-v1/src/test/resources/dictionaries/published_information.txt index b1496e4b..66b5a466 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/resources/dictionaries/published_information.txt +++ b/redaction-service-v1/redaction-service-server-v1/src/test/resources/dictionaries/published_information.txt @@ -86,3 +86,4 @@ Toxicol Sci Toxicol Sci. Toxicol Sci. 1 Test Ignored Hint Published Information +Workshop diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/new/PublishedInformationTest.pdf b/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/new/PublishedInformationTest.pdf new file mode 100644 index 0000000000000000000000000000000000000000..7ebacaa6c85187803f0bd96190650a03e7c15f52 GIT binary patch literal 38541 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