From 9a965dd68a72285af6bf6a28ec6aa67358c35dba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thierry=20G=C3=B6ckel?= Date: Fri, 2 Oct 2020 17:54:02 +0200 Subject: [PATCH] Make sure section and table char indices match --- .../classification/model/TextBlock.java | 2 +- .../parsing/model/TextPositionSequence.java | 3 + .../v1/server/redaction/model/CellValue.java | 25 +++-- .../redaction/model/SearchableText.java | 4 +- .../v1/server/redaction/model/Section.java | 14 +-- .../service/EntityRedactionService.java | 10 +- .../v1/server/tableextraction/model/Cell.java | 10 +- .../v1/server/RedactionIntegrationTest.java | 88 ++++++++++-------- .../service/EntityRedactionServiceTest.java | 36 ++++++- .../Minimal Examples/nested_redaction.pdf | Bin 0 -> 106794 bytes 10 files changed, 115 insertions(+), 77 deletions(-) create mode 100644 redaction-service-v1/redaction-service-server-v1/src/test/resources/files/Minimal Examples/nested_redaction.pdf diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/TextBlock.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/TextBlock.java index b5574168..85af6350 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/TextBlock.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/TextBlock.java @@ -131,7 +131,7 @@ public class TextBlock extends AbstractTextContainer { TextPositionSequence previous = null; for (TextPositionSequence word : sequences) { if (previous != null) { - if (Math.abs(previous.getY1() - word.getY1()) > word.getTextHeight()) { + if (Math.abs(previous.getRotationAdjustedY() - word.getRotationAdjustedY()) > word.getTextHeight()) { sb.append('\n'); } else { sb.append(' '); diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/parsing/model/TextPositionSequence.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/parsing/model/TextPositionSequence.java index b109b54a..df58c9d1 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/parsing/model/TextPositionSequence.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/parsing/model/TextPositionSequence.java @@ -101,6 +101,9 @@ public class TextPositionSequence implements CharSequence { } } + public float getRotationAdjustedY() { + return textPositions.get(0).getY(); + } public float getY1() { diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/CellValue.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/CellValue.java index 632de0fc..7855a750 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/CellValue.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/CellValue.java @@ -4,36 +4,33 @@ import com.iqser.red.service.redaction.v1.server.classification.model.TextBlock; import com.iqser.red.service.redaction.v1.server.parsing.model.TextPositionSequence; import com.iqser.red.service.redaction.v1.server.redaction.utils.TextNormalizationUtilities; -import lombok.RequiredArgsConstructor; import lombok.Value; @Value -@RequiredArgsConstructor public class CellValue { TextBlock textBlock; int rowSpanStart; + @Override public String toString() { StringBuilder sb = new StringBuilder(); - - TextPositionSequence previous = null; - for (TextPositionSequence word : textBlock.getSequences()) { - - if (previous != null) { - if (Math.abs(previous.getY1() - word.getY1()) > word.getTextHeight()) { - sb.append('\n'); - } else { - sb.append(' '); - } + TextPositionSequence previous = null; + for (TextPositionSequence word : textBlock.getSequences()) { + if (previous != null) { + if (Math.abs(previous.getRotationAdjustedY() - word.getRotationAdjustedY()) > word.getTextHeight()) { + sb.append('\n'); + } else { + sb.append(' '); } - sb.append(word.toString()); - previous = word; } + sb.append(word.toString()); + previous = word; + } return TextNormalizationUtilities.removeHyphenLineBreaks(sb.toString()) .replaceAll("\n", " ") diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/SearchableText.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/SearchableText.java index 4313cb17..20c85f98 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/SearchableText.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/SearchableText.java @@ -179,7 +179,7 @@ public class SearchableText { for (TextPositionSequence word : sequences) { if (previous != null) { - if (Math.abs(previous.getY1() - word.getY1()) > word.getTextHeight()) { + if (Math.abs(previous.getRotationAdjustedY() - word.getRotationAdjustedY()) > word.getTextHeight()) { sb.append('\n'); } else { sb.append(' '); @@ -203,7 +203,7 @@ public class SearchableText { for (TextPositionSequence word : sequences) { if (previous != null) { - if (Math.abs(previous.getY1() - word.getY1()) > word.getTextHeight()) { + if (Math.abs(previous.getRotationAdjustedY() - word.getRotationAdjustedY()) > word.getTextHeight()) { sb.append('\n'); } else { sb.append(' '); diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/Section.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/Section.java index 68e7140b..84730d63 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/Section.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/Section.java @@ -210,9 +210,13 @@ public class Section { if (value == null) { log.warn("Could not find any data for {}.", cellHeader); } else { - Entity entity = new Entity(value.toString(), type, value.getRowSpanStart(), - value.getRowSpanStart() + value.toString() - .length(), headline, sectionNumber); + String word = value.toString(); + Entity entity = new Entity(word, + type, + value.getRowSpanStart(), + value.getRowSpanStart() + word.length(), + headline, + sectionNumber); entity.setRedaction(redact); entity.setMatchedRule(ruleNumber); entity.setRedactionReason(reason); @@ -220,9 +224,7 @@ public class Section { .getSequences()); // Make sure no other cells with same content are highlighted // HashSet keeps the older value, but we want the new only. - if (entities.contains(entity)) { - entities.remove(entity); - } + entities.remove(entity); entities.add(entity); entities = removeEntitiesContainedInLarger(entities); 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 0be28bdc..d23a5e7c 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 @@ -70,7 +70,7 @@ public class EntityRedactionService { .replaceAll("-", ""); tabularData.put(headerName, new CellValue(cell.getTextBlocks().get(0), cellStart)); }); - start = start + cell.toString().length(); + start = start + cell.toString().length() + 1; // include automatically appended white space for (TextBlock textBlock : cell.getTextBlocks()) { searchableRow.addAll(textBlock.getSequences()); } @@ -143,17 +143,17 @@ public class EntityRedactionService { private Set findEntities(SearchableText searchableText, String headline, int sectionNumber) { Set found = new HashSet<>(); - if (StringUtils.isEmpty(searchableText.toString())) { + String searchableString = searchableText.toString(); + if (StringUtils.isEmpty(searchableString)) { return found; } - String inputString = searchableText.toString(); - String lowercaseInputString = inputString.toLowerCase(); + String lowercaseInputString = searchableString.toLowerCase(); for (Map.Entry> entry : dictionaryService.getDictionary().entrySet()) { if (dictionaryService.getCaseInsensitiveTypes().contains(entry.getKey())) { found.addAll(find(lowercaseInputString, entry.getValue(), entry.getKey(), headline, sectionNumber)); } else { - found.addAll(find(inputString, entry.getValue(), entry.getKey(), headline, sectionNumber)); + found.addAll(find(searchableString, entry.getValue(), entry.getKey(), headline, sectionNumber)); } } diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/model/Cell.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/model/Cell.java index e6989939..d5efa982 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/model/Cell.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/model/Cell.java @@ -41,14 +41,11 @@ public class Cell extends Rectangle { StringBuilder sb = new StringBuilder(); - TextPositionSequence previous = null; for (TextBlock textBlock : textBlocks) { - - + TextPositionSequence previous = null; for (TextPositionSequence word : textBlock.getSequences()) { - if (previous != null) { - if (Math.abs(previous.getY1() - word.getY1()) > word.getTextHeight()) { + if (Math.abs(previous.getRotationAdjustedY() - word.getRotationAdjustedY()) > word.getTextHeight()) { sb.append('\n'); } else { sb.append(' '); @@ -64,5 +61,4 @@ public class Cell extends Rectangle { .replaceAll(" {2}", " "); } -} - +} \ No newline at end of file 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 5c942080..5004d74a 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 @@ -93,8 +93,8 @@ public class RedactionIntegrationTest { KieFileSystem kieFileSystem = kieServices.newKieFileSystem(); InputStream input = new ByteArrayInputStream(RULES.getBytes(StandardCharsets.UTF_8)); - kieFileSystem.write("src/test/resources/drools/rules.drl", kieServices.getResources() - .newInputStreamResource(input)); + kieFileSystem.write("src/test/resources/drools/rules.drl", + kieServices.getResources().newInputStreamResource(input)); KieBuilder kieBuilder = kieServices.newKieBuilder(kieFileSystem); kieBuilder.buildAll(); KieModule kieModule = kieBuilder.getKieModule(); @@ -119,8 +119,10 @@ public class RedactionIntegrationTest { when(dictionaryClient.getDictionaryForType(ADDRESS_CODE)).thenReturn(getDictionaryResponse(ADDRESS_CODE)); when(dictionaryClient.getDictionaryForType(NAME_CODE)).thenReturn(getDictionaryResponse(NAME_CODE)); when(dictionaryClient.getDictionaryForType(SPONSOR)).thenReturn(getDictionaryResponse(SPONSOR)); - when(dictionaryClient.getDictionaryForType(NO_REDACTION_INDICATOR)).thenReturn(getDictionaryResponse(NO_REDACTION_INDICATOR)); - when(dictionaryClient.getDictionaryForType(REDACTION_INDICATOR)).thenReturn(getDictionaryResponse(REDACTION_INDICATOR)); + when(dictionaryClient.getDictionaryForType(NO_REDACTION_INDICATOR)).thenReturn(getDictionaryResponse( + NO_REDACTION_INDICATOR)); + when(dictionaryClient.getDictionaryForType(REDACTION_INDICATOR)).thenReturn(getDictionaryResponse( + REDACTION_INDICATOR)); when(dictionaryClient.getDictionaryForType(HINT_ONLY)).thenReturn(getDictionaryResponse(HINT_ONLY)); when(dictionaryClient.getDictionaryForType(MUST_REDACT)).thenReturn(getDictionaryResponse(MUST_REDACT)); when(dictionaryClient.getDefaultColor()).thenReturn(new DefaultColor(new float[]{1f, 0.502f, 0f})); @@ -131,44 +133,44 @@ public class RedactionIntegrationTest { dictionary.computeIfAbsent(NAME_CODE, v -> new ArrayList<>()) .addAll(ResourceLoader.load("dictionaries/names.txt") - .stream() - .map(this::cleanDictionaryEntry) - .collect(Collectors.toSet())); + .stream() + .map(this::cleanDictionaryEntry) + .collect(Collectors.toSet())); dictionary.computeIfAbsent(SPONSOR, v -> new ArrayList<>()) .addAll(ResourceLoader.load("dictionaries/sponsor_companies.txt") - .stream() - .map(this::cleanDictionaryEntry) - .collect(Collectors.toSet())); + .stream() + .map(this::cleanDictionaryEntry) + .collect(Collectors.toSet())); dictionary.computeIfAbsent(VERTEBRATES_CODE, v -> new ArrayList<>()) .addAll(ResourceLoader.load("dictionaries/vertebrates.txt") - .stream() - .map(this::cleanDictionaryEntry) - .collect(Collectors.toSet())); + .stream() + .map(this::cleanDictionaryEntry) + .collect(Collectors.toSet())); dictionary.computeIfAbsent(ADDRESS_CODE, v -> new ArrayList<>()) .addAll(ResourceLoader.load("dictionaries/addresses.txt") - .stream() - .map(this::cleanDictionaryEntry) - .collect(Collectors.toSet())); + .stream() + .map(this::cleanDictionaryEntry) + .collect(Collectors.toSet())); dictionary.computeIfAbsent(NO_REDACTION_INDICATOR, v -> new ArrayList<>()) .addAll(ResourceLoader.load("dictionaries/no_redaction_indicator.txt") - .stream() - .map(this::cleanDictionaryEntry) - .collect(Collectors.toSet())); + .stream() + .map(this::cleanDictionaryEntry) + .collect(Collectors.toSet())); dictionary.computeIfAbsent(REDACTION_INDICATOR, v -> new ArrayList<>()) .addAll(ResourceLoader.load("dictionaries/redaction_indicator.txt") - .stream() - .map(this::cleanDictionaryEntry) - .collect(Collectors.toSet())); + .stream() + .map(this::cleanDictionaryEntry) + .collect(Collectors.toSet())); dictionary.computeIfAbsent(HINT_ONLY, v -> new ArrayList<>()) .addAll(ResourceLoader.load("dictionaries/hint_only.txt") - .stream() - .map(this::cleanDictionaryEntry) - .collect(Collectors.toSet())); + .stream() + .map(this::cleanDictionaryEntry) + .collect(Collectors.toSet())); dictionary.computeIfAbsent(MUST_REDACT, v -> new ArrayList<>()) .addAll(ResourceLoader.load("dictionaries/must_redact.txt") - .stream() - .map(this::cleanDictionaryEntry) - .collect(Collectors.toSet())); + .stream() + .map(this::cleanDictionaryEntry) + .collect(Collectors.toSet())); } @@ -280,7 +282,8 @@ public class RedactionIntegrationTest { System.out.println("redactionTest"); long start = System.currentTimeMillis(); - ClassPathResource pdfFileResource = new ClassPathResource("files/Metolachlor/S-Metolachlor_RAR_02_Volume_2_2018-09-06.pdf"); + ClassPathResource pdfFileResource = new ClassPathResource( + "files/Metolachlor/S-Metolachlor_RAR_02_Volume_2_2018-09-06.pdf"); RedactionRequest request = RedactionRequest.builder() .document(IOUtils.toByteArray(pdfFileResource.getInputStream())) @@ -304,7 +307,8 @@ public class RedactionIntegrationTest { System.out.println("testTableRedaction"); long start = System.currentTimeMillis(); - ClassPathResource pdfFileResource = new ClassPathResource("files/Metolachlor/S-Metolachlor_RAR_02_Volume_2_2018-09-06.pdf"); + ClassPathResource pdfFileResource = new ClassPathResource( + "files/Metolachlor/S-Metolachlor_RAR_02_Volume_2_2018-09-06.pdf"); RedactionRequest request = RedactionRequest.builder() .document(IOUtils.toByteArray(pdfFileResource.getInputStream())) @@ -336,7 +340,14 @@ public class RedactionIntegrationTest { manualRedactionEntry.setType("name"); manualRedactionEntry.setValue("O'Loughlin C.K."); manualRedactionEntry.setReason("Manual Redaction"); - manualRedactionEntry.setPositions(List.of(new Rectangle(new Point(375.61096f, 241.282f), 7.648041f, 43.72262f, 1), new Rectangle(new Point(384.83517f, 241.282f), 7.648041f, 17.043358f, 1))); + manualRedactionEntry.setPositions(List.of(new Rectangle(new Point(375.61096f, 241.282f), + 7.648041f, + 43.72262f, + 1), + new Rectangle(new Point(384.83517f, 241.282f), + 7.648041f, + 17.043358f, + 1))); manualRedactions.getEntriesToAdd().add(manualRedactionEntry); @@ -361,8 +372,8 @@ public class RedactionIntegrationTest { public void classificationTest() throws IOException { System.out.println("classificationTest"); - ClassPathResource pdfFileResource = new ClassPathResource("files/Fludioxonil/51 " + - "Fludioxonil_RAR_02_Volume_2_2018-02-21.pdf"); + ClassPathResource pdfFileResource = new ClassPathResource( + "files/Fludioxonil/51 Fludioxonil_RAR_02_Volume_2_2018-02-21.pdf"); RedactionRequest request = RedactionRequest.builder() .document(IOUtils.toByteArray(pdfFileResource.getInputStream())) @@ -381,7 +392,7 @@ public class RedactionIntegrationTest { System.out.println("sectionsTest"); ClassPathResource pdfFileResource = new ClassPathResource("files/Fludioxonil/51 " + - "Fludioxonil_RAR_02_Volume_2_2018-02-21.pdf"); + "Fludioxonil_RAR_02_Volume_2_2018-02-21.pdf"); RedactionRequest request = RedactionRequest.builder() .document(IOUtils.toByteArray(pdfFileResource.getInputStream())) @@ -399,7 +410,8 @@ public class RedactionIntegrationTest { public void htmlTablesTest() throws IOException { System.out.println("htmlTablesTest"); - ClassPathResource pdfFileResource = new ClassPathResource("files/Metolachlor/S-Metolachlor_RAR_02_Volume_2_2018-09-06.pdf"); + ClassPathResource pdfFileResource = new ClassPathResource( + "files/Metolachlor/S-Metolachlor_RAR_02_Volume_2_2018-09-06.pdf"); RedactionRequest request = RedactionRequest.builder() .document(IOUtils.toByteArray(pdfFileResource.getInputStream())) @@ -417,8 +429,8 @@ public class RedactionIntegrationTest { public void htmlTableRotationTest() throws IOException { System.out.println("htmlTableRotationTest"); - ClassPathResource pdfFileResource = new ClassPathResource("files/Metolachlor/S" + - "-Metolachlor_RAR_02_Volume_2_2018-09-06.pdf"); + ClassPathResource pdfFileResource = new ClassPathResource( + "files/Metolachlor/S-Metolachlor_RAR_02_Volume_2_2018-09-06.pdf"); RedactionRequest request = RedactionRequest.builder() .document(IOUtils.toByteArray(pdfFileResource.getInputStream())) @@ -482,7 +494,7 @@ public class RedactionIntegrationTest { throw new IllegalArgumentException("could not load classpath resource: drools/rules.drl"); } try (BufferedReader br = new BufferedReader(new InputStreamReader(resource.openStream(), - StandardCharsets.UTF_8))) { + StandardCharsets.UTF_8))) { StringBuilder sb = new StringBuilder(); String str; while ((str = br.readLine()) != null) { diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/redaction/service/EntityRedactionServiceTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/redaction/service/EntityRedactionServiceTest.java index d2e8a8cb..77116f34 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/redaction/service/EntityRedactionServiceTest.java +++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/redaction/service/EntityRedactionServiceTest.java @@ -134,7 +134,35 @@ public class EntityRedactionServiceTest { Document classifiedDoc = pdfSegmentationService.parseDocument(pdDocument); entityRedactionService.processDocument(classifiedDoc, null); assertThat(classifiedDoc.getEntities()).hasSize(1); // one page - assertThat(classifiedDoc.getEntities().get(1)).hasSize(7);// 3 names, 1 address, 1 Y and 2 N entities + assertThat(classifiedDoc.getEntities().get(1)).hasSize(7);// 3 author cells, 1 address, 1 Y and 2 N entities + } + } + + + @Test + public void testNestedRedaction() throws IOException { + + ClassPathResource pdfFileResource = new ClassPathResource("files/Minimal Examples/nested_redaction.pdf"); + + RedactionRequest redactionRequest = RedactionRequest.builder() + .document(IOUtils.toByteArray(pdfFileResource.getInputStream())) + .build(); + + DictionaryResponse dictionaryResponse = DictionaryResponse.builder() + .entries(Arrays.asList("Casey, H.W.", "O’Loughlin, C.K.", "Salamon, C.M.", "Smith, S.H.")) + .build(); + when(dictionaryClient.getVersion()).thenReturn(DICTIONARY_VERSION.incrementAndGet()); + when(dictionaryClient.getDictionaryForType(NAME_CODE)).thenReturn(dictionaryResponse); + DictionaryResponse addressResponse = DictionaryResponse.builder() + .entries(Collections.singletonList("Toxigenics, Inc., Decatur, IL 62526, USA")) + .build(); + when(dictionaryClient.getDictionaryForType(ADDRESS_CODE)).thenReturn(addressResponse); + + try (PDDocument pdDocument = PDDocument.load(new ByteArrayInputStream(redactionRequest.getDocument()))) { + Document classifiedDoc = pdfSegmentationService.parseDocument(pdDocument); + entityRedactionService.processDocument(classifiedDoc, null); + assertThat(classifiedDoc.getEntities()).hasSize(1); // one page + assertThat(classifiedDoc.getEntities().get(1)).hasSize(7);// 3 author cells, 1 address, 1 Y and 2 N entities } } @@ -273,7 +301,7 @@ public class EntityRedactionServiceTest { entityRedactionService.processDocument(classifiedDoc, null); assertThat(classifiedDoc.getEntities()).hasSize(2); // two pages assertThat(classifiedDoc.getEntities().get(1).stream().filter(entity -> entity.getMatchedRule() == 9).count()).isEqualTo(8); - assertThat(classifiedDoc.getEntities().get(2).stream().filter(entity -> entity.getMatchedRule() == 9).count()).isEqualTo(4); + assertThat(classifiedDoc.getEntities().get(2).stream().filter(entity -> entity.getMatchedRule() == 9).count()).isEqualTo(5); // 2 names, 1 address, 2 Y } pdfFileResource = new ClassPathResource("files/Minimal Examples/Header Propagation2.pdf"); @@ -335,7 +363,7 @@ public class EntityRedactionServiceTest { " when\n" + " Section(rowEquals(\"Vertebrate study Y/N\", \"N\") || rowEquals(\"Vertebrate study Y/N\", \"No\"))\n" + " then\n" + - " section.redactNot(\"name\", 8, \"Not redacted because row is not a vertebrate study\");\n" + + " section.redactNotCell(\"Author(s)\", 8, \"name\", \"Not redacted because row is not a vertebrate study\");\n" + " section.redactNot(\"address\", 8, \"Not redacted because row is not a vertebrate study\");\n" + " section.highlightCell(\"Vertebrate study Y/N\", 8, \"hint_only\");\n" + " end\n" + @@ -344,7 +372,7 @@ public class EntityRedactionServiceTest { " Section(rowEquals(\"Vertebrate study Y/N\", \"Y\") || rowEquals(\"Vertebrate study Y/N\", " + "\"Yes\"))\n" + " then\n" + - " section.redact(\"name\", 9, \"Redacted because row is a vertebrate study\");\n" + + " section.redactCell(\"Author(s)\", 9, \"name\", \"Redacted because row is a vertebrate study\");\n" + " section.redact(\"address\", 9, \"Redacted because row is a vertebrate study\");\n" + " section.highlightCell(\"Vertebrate study Y/N\", 9, \"must_redact\");\n" + " end"; diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/Minimal Examples/nested_redaction.pdf b/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/Minimal Examples/nested_redaction.pdf new file mode 100644 index 0000000000000000000000000000000000000000..6906f19bae57f60ee1af524aeda0c905161a3d52 GIT binary patch literal 106794 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

Bn#}b?6y#rfOBhF$S z8XKJ%9Xc^ez$%-qoIE*7NcRb64aH2W!&iiF3e%qpLtN(%;YNFVJ8UO~RB*Zvu{I%T zQpEPrQ-@t;gCNv{gynfb!VnvQM#2 zTT^3a#9@xb7H(c}(U*5!eqmb?UUKL=kbV0NXxqIiSx9=eN|6o40$+q4a*kt zgsL6Q>ckBv6J;^Ecx!0rXa#4YBLatT;|M6sP9Ny$DHbq_T#(HdhYKHLK4!Rw887TB zOcywARq?$ri!l6R#n-Oh+>u_v7Jc84P2#S%Kr%rtt)tVxZq zu~DMU5-=+k84DOr&#-sgyU$BY-U%<|eLvIBV)J`CU&QTmJtcNge$kGar)|~AnK4|3 z1^?mr=rQ!jh&&2}J_6w!nG7Ve44+CQ`HT#*4BDi*gbW)DjWU=kU;>8PF@)nVA{_RC zofnB(mWLBD;?gN2R}y;jjNfh zrYC_Lgz4LB5S`||h~HUo!2)0-O)ZDhqiO)+;4KOO0d3Gk5n72mnghqW0$>g%930O5 zrErkXL3}nxs4F^-W2Ra4SqR< z#I#V^tA)xEDG;$}MUj^Ebwj=wWc|kVu1md}d>h1#0S?kemNW7egJ(Ir zi@KNHX}L$ZEBsaJY4MQjr_`JFUkInEKhrMfFgMJPpr_kq{1*2;`za1_I?j40MH?}m zun139v>KOEJ;pw1fEqAfPK{B!T)X@ayS`@pnrVtZWSlg8m--!b+;ZCF=8thmjXuUv zqqxO$heNR@IhMPfaRb%s!MEyimYthCJ3MusL9#Yhk#YRX=onGoL3=ySCRw!pAPXQxjSdp!fY><4h_#7Bzh;h= zEn2Q@MIZc{o&9NSYQhbs5&MJsUQqw8wrA4!O!}UY>}fV**(3PNe%VpB$|S%UX3vw- z2L}gTtnb|G4k$tkyq<)T)T3H{0XJ{nx#6yyo*X-`99=+_*BRGc)RuqBoFlgKyNqP3$hen!|p_m@T;7L*-nn=)xj(j zY%Jt$8OW1(Sf>r=x;Zg|+MERS^}ty6c|GG)Gx706#0P*qW1oV-{Z1CwF*-RdOjnMc z6i(_)X&Q^uFAJ~Ye=m~^!5ShT0d{f@K&NWq3>!yR;xmvSB4jZJLLyg_+jv7W6Ko{o zX#W>PzP8zNjdd3E7T%zrKYCP;p$=*bKP^A(c{oWgrWae5`R}6dvKSs=U?I0d!LM1} z!|yRZDm?0#%ozn1(Wy-ho3d1hw;hb|pN+zU5pIg+H7OR^6L~2@MI7;j4`%z3@~bvv zoDP=fOacP%DR}XL-ALh`qW-!cHe{!upjp!y=(Ib8&)V%Uj)C>S@Nki|9UXdGspxII ziL{zGq!cG?5QF$8+lX!2cFe}w{Eg4kEX~!zwRE6db+Z13oG#S7Gjw8%SX{fhX2!ZI zGf1;7)Z&btiIm%$On8zBZ#o20?sy3PQ-mQBlI9shagau=)PhU?*D7b>m#tud32Ako}yyS}3s@wKdwq-0(TeL%0Ad3-$D7>}nHUrudU*0t-K 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 literal 0 HcmV?d00001