diff --git a/redaction-service-v1/redaction-service-api-v1/pom.xml b/redaction-service-v1/redaction-service-api-v1/pom.xml
index c82f4d40..35d87a66 100644
--- a/redaction-service-v1/redaction-service-api-v1/pom.xml
+++ b/redaction-service-v1/redaction-service-api-v1/pom.xml
@@ -12,7 +12,7 @@
redaction-service-api-v1
- 1.254.0
+ 1.299.0
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/controller/RedactionController.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/controller/RedactionController.java
index 11497a05..54f24af5 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/controller/RedactionController.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/controller/RedactionController.java
@@ -48,7 +48,7 @@ public class RedactionController implements RedactionResource {
var storedObjectStream = redactionStorageService.getStoredObject(RedactionStorageService.StorageIdUtils.getStorageId(redactionRequest.getDossierId(), redactionRequest.getFileId(), FileType.ORIGIN));
try {
- Document classifiedDoc = pdfSegmentationService.parseDocument(storedObjectStream, null);
+ Document classifiedDoc = pdfSegmentationService.parseDocument(redactionRequest.getDossierId(), redactionRequest.getFileId(), storedObjectStream, null);
storedObjectStream = redactionStorageService.getStoredObject(RedactionStorageService.StorageIdUtils.getStorageId(redactionRequest.getDossierId(), redactionRequest.getFileId(), FileType.ORIGIN));
try (PDDocument pdDocument = PDDocument.load(storedObjectStream)) {
@@ -74,7 +74,7 @@ public class RedactionController implements RedactionResource {
var storedObjectStream = redactionStorageService.getStoredObject(RedactionStorageService.StorageIdUtils.getStorageId(redactionRequest.getDossierId(), redactionRequest.getFileId(), FileType.ORIGIN));
try {
- Document classifiedDoc = pdfSegmentationService.parseDocument(storedObjectStream, null);
+ Document classifiedDoc = pdfSegmentationService.parseDocument(redactionRequest.getDossierId(), redactionRequest.getFileId(), storedObjectStream, null);
storedObjectStream = redactionStorageService.getStoredObject(RedactionStorageService.StorageIdUtils.getStorageId(redactionRequest.getDossierId(), redactionRequest.getFileId(), FileType.ORIGIN));
try (PDDocument pdDocument = PDDocument.load(storedObjectStream)) {
@@ -101,7 +101,7 @@ public class RedactionController implements RedactionResource {
try {
var storedObjectStream = redactionStorageService.getStoredObject(RedactionStorageService.StorageIdUtils.getStorageId(redactionRequest.getDossierId(), redactionRequest.getFileId(), FileType.ORIGIN));
- classifiedDoc = pdfSegmentationService.parseDocument(storedObjectStream, null);
+ classifiedDoc = pdfSegmentationService.parseDocument(redactionRequest.getDossierId(), redactionRequest.getFileId(), storedObjectStream, null);
} catch (Exception e) {
throw new RedactionException(e);
}
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/PdfTable.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/PdfTable.java
new file mode 100644
index 00000000..b55fde7f
--- /dev/null
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/PdfTable.java
@@ -0,0 +1,17 @@
+package com.iqser.red.service.redaction.v1.server.redaction.model;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import lombok.Data;
+import lombok.NonNull;
+import lombok.RequiredArgsConstructor;
+
+@Data
+@RequiredArgsConstructor
+public class PdfTable {
+
+ @NonNull
+ private List tableCells = new ArrayList<>();
+
+}
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/PdfTableCell.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/PdfTableCell.java
new file mode 100644
index 00000000..df3ca322
--- /dev/null
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/PdfTableCell.java
@@ -0,0 +1,21 @@
+package com.iqser.red.service.redaction.v1.server.redaction.model;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.RequiredArgsConstructor;
+
+@Data
+@Builder
+@AllArgsConstructor
+@RequiredArgsConstructor
+public class PdfTableCell {
+
+ private float x0;
+ private float y0;
+ private float x1;
+ private float y1;
+ private float width;
+ private float height;
+
+}
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/table/PageInfo.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/table/PageInfo.java
new file mode 100644
index 00000000..f2ec8d6b
--- /dev/null
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/table/PageInfo.java
@@ -0,0 +1,16 @@
+package com.iqser.red.service.redaction.v1.server.redaction.model.table;
+
+import com.dslplatform.json.CompiledJson;
+
+import lombok.Data;
+
+@Data
+@CompiledJson
+public class PageInfo {
+
+ private int number;
+ private int rotation;
+ private float width;
+ private float height;
+
+}
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/table/TableCells.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/table/TableCells.java
new file mode 100644
index 00000000..00f0a138
--- /dev/null
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/table/TableCells.java
@@ -0,0 +1,18 @@
+package com.iqser.red.service.redaction.v1.server.redaction.model.table;
+
+import com.dslplatform.json.CompiledJson;
+
+import lombok.Data;
+
+@Data
+@CompiledJson
+public class TableCells {
+
+ private float x0;
+ private float y0;
+ private float x1;
+ private float y1;
+ private float width;
+ private float height;
+
+}
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/table/TableData.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/table/TableData.java
new file mode 100644
index 00000000..ac5c01a9
--- /dev/null
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/table/TableData.java
@@ -0,0 +1,17 @@
+package com.iqser.red.service.redaction.v1.server.redaction.model.table;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.dslplatform.json.CompiledJson;
+
+import lombok.Data;
+
+@Data
+@CompiledJson
+public class TableData {
+
+ private PageInfo pageInfo;
+ private List tableCells = new ArrayList<>();
+
+}
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/table/TableServiceResponse.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/table/TableServiceResponse.java
new file mode 100644
index 00000000..435938c0
--- /dev/null
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/table/TableServiceResponse.java
@@ -0,0 +1,21 @@
+package com.iqser.red.service.redaction.v1.server.redaction.model.table;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.dslplatform.json.CompiledJson;
+
+import lombok.Data;
+
+@Data
+@CompiledJson
+public class TableServiceResponse {
+ private String dossierId;
+ private String fileId;
+ private String operation;
+ private String targetFileExtension;
+ private String responseFileExtension;
+
+ private List data = new ArrayList<>();
+
+}
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/AnalyzeService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/AnalyzeService.java
index 76cc1b33..9f5fa3e2 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/AnalyzeService.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/AnalyzeService.java
@@ -96,7 +96,8 @@ public class AnalyzeService {
if (redactionServiceSettings.isEnableImageClassification()) {
pdfImages = imageService.convertImages(analyzeRequest.getDossierId(), analyzeRequest.getFileId());
}
- classifiedDoc = pdfSegmentationService.parseDocument(storedObjectStream, pdfImages);
+
+ classifiedDoc = pdfSegmentationService.parseDocument(analyzeRequest.getDossierId(), analyzeRequest.getFileId(), storedObjectStream, pdfImages);
pageCount = classifiedDoc.getPages().size();
} catch (Exception e) {
throw new RedactionException(e);
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 efbf1b5e..c98bf6c6 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
@@ -9,6 +9,7 @@ import java.nio.file.attribute.FileAttribute;
import java.nio.file.attribute.PosixFilePermission;
import java.nio.file.attribute.PosixFilePermissions;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -29,6 +30,8 @@ import com.iqser.red.service.redaction.v1.server.classification.service.Classifi
import com.iqser.red.service.redaction.v1.server.parsing.PDFLinesTextStripper;
import com.iqser.red.service.redaction.v1.server.parsing.model.TextPositionSequence;
import com.iqser.red.service.redaction.v1.server.redaction.model.PdfImage;
+import com.iqser.red.service.redaction.v1.server.redaction.model.PdfTableCell;
+import com.iqser.red.service.redaction.v1.server.settings.RedactionServiceSettings;
import com.iqser.red.service.redaction.v1.server.tableextraction.model.AbstractTextContainer;
import com.iqser.red.service.redaction.v1.server.tableextraction.model.CleanRulings;
import com.iqser.red.service.redaction.v1.server.tableextraction.service.RulingCleaningService;
@@ -42,15 +45,17 @@ import lombok.extern.slf4j.Slf4j;
@RequiredArgsConstructor
public class PdfSegmentationService {
+ private final RedactionServiceSettings redactionServiceSettings;
private final RulingCleaningService rulingCleaningService;
private final TableExtractionService tableExtractionService;
private final BlockificationService blockificationService;
private final ClassificationService classificationService;
private final SectionsBuilderService sectionsBuilderService;
private final ImageService imageService;
+ private final TableService tableService;
- public Document parseDocument(InputStream documentInputStream, Map> pdfImages) throws IOException {
+ public Document parseDocument(String dossierId, String fileId, InputStream documentInputStream, Map> pdfImages) throws IOException {
PDDocument pdDocument = null;
try {
@@ -67,6 +72,11 @@ public class PdfSegmentationService {
tempFile.setExecutable(true, true);
}
+ Map> pdfTableCells = new HashMap<>();
+ if (redactionServiceSettings.isCvServiceEnabled()) {
+ pdfTableCells = tableService.convertTables(dossierId, fileId);
+ }
+
try (var fos = new FileOutputStream(tempFile)) {
IOUtils.copy(documentInputStream, fos);
@@ -94,12 +104,8 @@ public class PdfSegmentationService {
int rotation = pdPage.getRotation();
boolean isRotated = rotation != 0 && rotation != 360;
- CleanRulings cleanRulings = rulingCleaningService.getCleanRulings(stripper.getRulings(), stripper.getMinCharWidth(), stripper
- .getMaxCharHeight());
-
- Page page = blockificationService.blockify(stripper.getTextPositionSequences(), cleanRulings.getHorizontal(), cleanRulings
- .getVertical());
-
+ CleanRulings cleanRulings = rulingCleaningService.getCleanRulings(pdfTableCells.get(pageNumber), stripper.getRulings(), stripper.getMinCharWidth(), stripper.getMaxCharHeight());
+ Page page = blockificationService.blockify(stripper.getTextPositionSequences(), cleanRulings.getHorizontal(), cleanRulings.getVertical());
PDRectangle cropbox = pdPage.getCropBox();
float cropboxArea = cropbox.getHeight() * cropbox.getWidth();
@@ -109,7 +115,6 @@ public class PdfSegmentationService {
page.setLandscape(isLandscape || isRotated);
page.setPageNumber(pageNumber);
-
tableExtractionService.extractTables(cleanRulings, page);
buildPageStatistics(page);
increaseDocumentStatistics(page, document);
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/segmentation/TableService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/segmentation/TableService.java
new file mode 100644
index 00000000..658cc6b0
--- /dev/null
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/segmentation/TableService.java
@@ -0,0 +1,54 @@
+package com.iqser.red.service.redaction.v1.server.segmentation;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.stereotype.Service;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileType;
+import com.iqser.red.service.redaction.v1.server.redaction.model.PdfTableCell;
+import com.iqser.red.service.redaction.v1.server.redaction.model.table.TableCells;
+import com.iqser.red.service.redaction.v1.server.redaction.model.table.TableServiceResponse;
+import com.iqser.red.service.redaction.v1.server.storage.RedactionStorageService;
+
+import lombok.RequiredArgsConstructor;
+import lombok.SneakyThrows;
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+@Service
+@RequiredArgsConstructor
+public class TableService {
+
+ private final ObjectMapper objectMapper;
+ private final RedactionStorageService redactionStorageService;
+
+
+ @SneakyThrows
+ public Map> convertTables(String dossierId, String fileId) {
+
+ var tableClassificationStream = redactionStorageService.getStoredObject(RedactionStorageService.StorageIdUtils.getStorageId(dossierId, fileId, FileType.TABLES));
+
+ TableServiceResponse tableServiceResponse = objectMapper.readValue(tableClassificationStream, TableServiceResponse.class);
+
+ Map> tableCells = new HashMap<>();
+ tableServiceResponse.getData().forEach(tableData -> tableCells.computeIfAbsent(tableData.getPageInfo().getNumber(), tableCell -> new ArrayList<>()).addAll(convertTableCells(tableData.getTableCells())));
+
+ return tableCells;
+ }
+
+
+ private Collection extends PdfTableCell> convertTableCells(List tableCells) {
+
+ List pdfTableCells = new ArrayList<>();
+
+ tableCells.forEach(t -> pdfTableCells.add(PdfTableCell.builder().y0(t.getY0()).x1(t.getX1()).y1(t.getY1()).x0(t.getX0()).width(t.getWidth()).height(t.getHeight()).build()));
+
+ return pdfTableCells;
+ }
+
+}
\ No newline at end of file
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/settings/RedactionServiceSettings.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/settings/RedactionServiceSettings.java
index 07e59d54..210c5768 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/settings/RedactionServiceSettings.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/settings/RedactionServiceSettings.java
@@ -14,6 +14,8 @@ public class RedactionServiceSettings {
private boolean enableImageClassification = true;
+ private boolean cvServiceEnabled = true;
+
private float maxImageCropboxRatio = 0.9f;
private int analysisVersion = 1;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/service/RulingCleaningService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/service/RulingCleaningService.java
index 6f6ea80a..f8447f55 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/service/RulingCleaningService.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/service/RulingCleaningService.java
@@ -1,18 +1,29 @@
package com.iqser.red.service.redaction.v1.server.tableextraction.service;
-import com.iqser.red.service.redaction.v1.server.tableextraction.model.CleanRulings;
-import com.iqser.red.service.redaction.v1.server.tableextraction.model.Ruling;
-import com.iqser.red.service.redaction.v1.server.tableextraction.utils.Utils;
-import org.springframework.stereotype.Service;
-
import java.awt.geom.Line2D;
import java.awt.geom.Point2D;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import org.springframework.stereotype.Service;
+
+import com.iqser.red.service.redaction.v1.server.redaction.model.PdfTableCell;
+import com.iqser.red.service.redaction.v1.server.tableextraction.model.CleanRulings;
+import com.iqser.red.service.redaction.v1.server.tableextraction.model.Ruling;
+import com.iqser.red.service.redaction.v1.server.tableextraction.utils.Utils;
+
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
@Service
public class RulingCleaningService {
- public CleanRulings getCleanRulings(List rulings, float minCharWidth, float maxCharHeight) {
+ public CleanRulings getCleanRulings(List pdfTableCells, List rulings, float minCharWidth, float maxCharHeight) {
if (!rulings.isEmpty()) {
snapPoints(rulings, minCharWidth, maxCharHeight);
@@ -24,6 +35,7 @@ public class RulingCleaningService {
vrs.add(vr);
}
}
+ vrs.addAll(extractVerticalRulings(pdfTableCells));
List verticalRulingLines = collapseOrientedRulings(vrs);
List hrs = new ArrayList<>();
@@ -32,6 +44,7 @@ public class RulingCleaningService {
hrs.add(hr);
}
}
+ hrs.addAll(extractHorizontalRulings(pdfTableCells));
List horizontalRulingLines = collapseOrientedRulings(hrs);
return CleanRulings.builder().vertical(verticalRulingLines).horizontal(horizontalRulingLines).build();
@@ -113,6 +126,39 @@ public class RulingCleaningService {
}
+ private Collection extends Ruling> extractVerticalRulings(List pdfTableCells) {
+
+ List vrs = new ArrayList<>();
+
+ if (pdfTableCells != null) {
+ for (PdfTableCell pdfTableCell : pdfTableCells) {
+ Ruling leftLine = new Ruling(new Point2D.Float(pdfTableCell.getX0(), pdfTableCell.getY0()), new Point2D.Float(pdfTableCell.getX0(), pdfTableCell.getY1()));
+ Ruling rightLine = new Ruling(new Point2D.Float(pdfTableCell.getX1(), pdfTableCell.getY0()), new Point2D.Float(pdfTableCell.getX1(), pdfTableCell.getY1()));
+ vrs.add(leftLine);
+ vrs.add(rightLine);
+ }
+ }
+ return vrs;
+ }
+
+
+ private Collection extends Ruling> extractHorizontalRulings(List pdfTableCells) {
+
+ List hrs = new ArrayList<>();
+
+ if (pdfTableCells != null) {
+ for (PdfTableCell pdfTableCell : pdfTableCells) {
+ Ruling topLine = new Ruling(new Point2D.Float(pdfTableCell.getX0(), pdfTableCell.getY1()), new Point2D.Float(pdfTableCell.getX1(), pdfTableCell.getY1()));
+ Ruling baseLine = new Ruling(new Point2D.Float(pdfTableCell.getX0(), pdfTableCell.getY0()), new Point2D.Float(pdfTableCell.getX1(), pdfTableCell.getY0()));
+ hrs.add(topLine);
+ hrs.add(baseLine);
+ }
+ }
+
+ return hrs;
+ }
+
+
private List collapseOrientedRulings(List lines) {
int COLINEAR_OR_PARALLEL_PIXEL_EXPAND_AMOUNT = 1;
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 fe31be8b..1f32e9be 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,36 +1,29 @@
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;
-import com.iqser.red.service.persistence.service.v1.api.model.annotations.ManualRedactions;
-import com.iqser.red.service.persistence.service.v1.api.model.annotations.Rectangle;
-import com.iqser.red.service.persistence.service.v1.api.model.annotations.entitymapped.*;
-import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimitive;
-import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.Colors;
-import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileType;
-import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.type.DictionaryEntry;
-import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.type.Type;
-import com.iqser.red.service.redaction.v1.model.*;
-import com.iqser.red.service.redaction.v1.server.annotate.AnnotateRequest;
-import com.iqser.red.service.redaction.v1.server.annotate.AnnotateResponse;
-import com.iqser.red.service.redaction.v1.server.annotate.AnnotationService;
-import com.iqser.red.service.redaction.v1.server.classification.model.SectionText;
-import com.iqser.red.service.redaction.v1.server.client.DictionaryClient;
-import com.iqser.red.service.redaction.v1.server.client.LegalBasisClient;
-import com.iqser.red.service.redaction.v1.server.client.RulesClient;
-import com.iqser.red.service.redaction.v1.server.controller.RedactionController;
-import com.iqser.red.service.redaction.v1.server.redaction.service.AnalyzeService;
-import com.iqser.red.service.redaction.v1.server.redaction.service.ManualRedactionSurroundingTextService;
-import com.iqser.red.service.redaction.v1.server.redaction.utils.OsUtils;
-import com.iqser.red.service.redaction.v1.server.redaction.utils.ResourceLoader;
-import com.iqser.red.service.redaction.v1.server.redaction.utils.TextNormalizationUtilities;
-import com.iqser.red.service.redaction.v1.server.storage.RedactionStorageService;
-import com.iqser.red.storage.commons.StorageAutoConfiguration;
-import com.iqser.red.storage.commons.service.StorageService;
-import lombok.SneakyThrows;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Mockito.when;
+
+import java.io.BufferedReader;
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.nio.charset.StandardCharsets;
+import java.time.OffsetDateTime;
+import java.time.ZoneOffset;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
+import java.util.stream.Collectors;
+
import org.junit.After;
import org.junit.Before;
import org.junit.Ignore;
@@ -55,16 +48,49 @@ import org.springframework.context.annotation.Primary;
import org.springframework.core.io.ClassPathResource;
import org.springframework.test.context.junit4.SpringRunner;
-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;
+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;
+import com.iqser.red.service.persistence.service.v1.api.model.annotations.ManualRedactions;
+import com.iqser.red.service.persistence.service.v1.api.model.annotations.Rectangle;
+import com.iqser.red.service.persistence.service.v1.api.model.annotations.entitymapped.IdRemoval;
+import com.iqser.red.service.persistence.service.v1.api.model.annotations.entitymapped.ManualForceRedaction;
+import com.iqser.red.service.persistence.service.v1.api.model.annotations.entitymapped.ManualImageRecategorization;
+import com.iqser.red.service.persistence.service.v1.api.model.annotations.entitymapped.ManualLegalBasisChange;
+import com.iqser.red.service.persistence.service.v1.api.model.annotations.entitymapped.ManualRedactionEntry;
+import com.iqser.red.service.persistence.service.v1.api.model.annotations.entitymapped.ManualResizeRedaction;
+import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimitive;
+import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.Colors;
+import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileType;
+import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.type.DictionaryEntry;
+import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.type.Type;
+import com.iqser.red.service.redaction.v1.model.AnalyzeRequest;
+import com.iqser.red.service.redaction.v1.model.AnalyzeResult;
+import com.iqser.red.service.redaction.v1.model.FileAttribute;
+import com.iqser.red.service.redaction.v1.model.RedactionLogEntry;
+import com.iqser.red.service.redaction.v1.model.RedactionRequest;
+import com.iqser.red.service.redaction.v1.model.RedactionResult;
+import com.iqser.red.service.redaction.v1.model.StructureAnalyzeRequest;
+import com.iqser.red.service.redaction.v1.server.annotate.AnnotateRequest;
+import com.iqser.red.service.redaction.v1.server.annotate.AnnotateResponse;
+import com.iqser.red.service.redaction.v1.server.annotate.AnnotationService;
+import com.iqser.red.service.redaction.v1.server.classification.model.SectionText;
+import com.iqser.red.service.redaction.v1.server.client.DictionaryClient;
+import com.iqser.red.service.redaction.v1.server.client.LegalBasisClient;
+import com.iqser.red.service.redaction.v1.server.client.RulesClient;
+import com.iqser.red.service.redaction.v1.server.controller.RedactionController;
+import com.iqser.red.service.redaction.v1.server.redaction.service.AnalyzeService;
+import com.iqser.red.service.redaction.v1.server.redaction.service.ManualRedactionSurroundingTextService;
+import com.iqser.red.service.redaction.v1.server.redaction.utils.OsUtils;
+import com.iqser.red.service.redaction.v1.server.redaction.utils.ResourceLoader;
+import com.iqser.red.service.redaction.v1.server.redaction.utils.TextNormalizationUtilities;
+import com.iqser.red.service.redaction.v1.server.storage.RedactionStorageService;
+import com.iqser.red.storage.commons.StorageAutoConfiguration;
+import com.iqser.red.storage.commons.service.StorageService;
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.Mockito.when;
+import lombok.SneakyThrows;
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@@ -268,9 +294,8 @@ public class RedactionIntegrationTest {
public void testMergedImages() throws IOException {
long start = System.currentTimeMillis();
- ClassPathResource pdfFileResource = new ClassPathResource("files/Minimal Examples/merge_images.pdf");
- AnalyzeRequest request = prepareStorage(pdfFileResource.getInputStream());
+ AnalyzeRequest request = prepareStorage("files/Minimal Examples/merge_images.pdf");
analyzeService.analyzeDocumentStructure(new StructureAnalyzeRequest(request.getDossierId(), request.getFileId()));
AnalyzeResult result = analyzeService.analyze(request);
@@ -313,8 +338,7 @@ public class RedactionIntegrationTest {
// F. Lastname, J. Doe, M. Mustermann
// Lastname M., Doe J., Mustermann M.
- ClassPathResource pdfFileResource = new ClassPathResource("files/Minimal Examples/ExpansionTest.pdf");
- AnalyzeRequest request = prepareStorage(pdfFileResource.getInputStream());
+ AnalyzeRequest request = prepareStorage("files/Minimal Examples/ExpansionTest.pdf");
analyzeService.analyzeDocumentStructure(new StructureAnalyzeRequest(request.getDossierId(), request.getFileId()));
AnalyzeResult result = analyzeService.analyze(request);
@@ -334,8 +358,7 @@ public class RedactionIntegrationTest {
@Test
public void titleExtraction() throws IOException {
- ClassPathResource pdfFileResource = new ClassPathResource("files/RSS/32 - Emamectin Benzoate Technical - Acute Oral Toxicity - Mouse.pdf");
- AnalyzeRequest request = prepareStorage(pdfFileResource.getInputStream());
+ AnalyzeRequest request = prepareStorage("files/RSS/32 - Emamectin Benzoate Technical - Acute Oral Toxicity - Mouse.pdf");
analyzeService.analyzeDocumentStructure(new StructureAnalyzeRequest(request.getDossierId(), request.getFileId()));
AnalyzeResult result = analyzeService.analyze(request);
@@ -367,8 +390,7 @@ public class RedactionIntegrationTest {
System.out.println("testIgnoreHint");
- ClassPathResource pdfFileResource = new ClassPathResource("files/new/test-ignore-hint.pdf");
- AnalyzeRequest request = prepareStorage(pdfFileResource.getInputStream());
+ AnalyzeRequest request = prepareStorage("files/new/test-ignore-hint.pdf");
analyzeService.analyzeDocumentStructure(new StructureAnalyzeRequest(request.getDossierId(), request.getFileId()));
analyzeService.analyze(request);
@@ -426,7 +448,7 @@ public class RedactionIntegrationTest {
}
for (File path : input) {
- AnalyzeRequest request = prepareStorage(new FileInputStream((path)));
+ AnalyzeRequest request = prepareStorage(path.getPath());
System.out.println("Redacting file : " + path.getName());
analyzeService.analyzeDocumentStructure(new StructureAnalyzeRequest(request.getDossierId(), request.getFileId()));
@@ -471,8 +493,7 @@ public class RedactionIntegrationTest {
String outputFileName = OsUtils.getTemporaryDirectory() + "/AnnotatedRedactionTestSeparatedRedaction.pdf";
long start = System.currentTimeMillis();
- ClassPathResource pdfFileResource = new ClassPathResource(fileName);
- AnalyzeRequest request = prepareStorage(pdfFileResource.getInputStream());
+ AnalyzeRequest request = prepareStorage(fileName);
request.setExcludedPages(Set.of(1));
request.setFileAttributes(List.of(FileAttribute.builder()
@@ -582,8 +603,7 @@ public class RedactionIntegrationTest {
String fileName = "files/new/test1S1T1.pdf";
String outputFileName = OsUtils.getTemporaryDirectory() + "/Annotated.pdf";
- ClassPathResource pdfFileResource = new ClassPathResource(fileName);
- AnalyzeRequest request = prepareStorage(pdfFileResource.getInputStream());
+ AnalyzeRequest request = prepareStorage(fileName);
analyzeService.analyzeDocumentStructure(new StructureAnalyzeRequest(request.getDossierId(), request.getFileId()));
analyzeService.analyze(request);
@@ -637,8 +657,7 @@ public class RedactionIntegrationTest {
storageService.storeObject(RedactionStorageService.StorageIdUtils.getStorageId(TEST_DOSSIER_ID, TEST_FILE_ID, FileType.NER_ENTITIES), responseJson.getInputStream());
long start = System.currentTimeMillis();
- ClassPathResource pdfFileResource = new ClassPathResource(fileName);
- AnalyzeRequest request = prepareStorage(pdfFileResource.getInputStream());
+ AnalyzeRequest request = prepareStorage(fileName);
request.setExcludedPages(Set.of(1));
request.setFileAttributes(List.of(FileAttribute.builder()
@@ -836,6 +855,33 @@ public class RedactionIntegrationTest {
}
+ @Test
+ public void testTableRedactionWithCvTableService() throws IOException {
+
+ long start = System.currentTimeMillis();
+
+ String fileName = "files/RulesTest/RuleTestDocument.pdf";
+ String tableServiceResponseFile = "files/cv_service_response_for_RuleTestDocument.json";
+
+ AnalyzeRequest request = prepareStorage(fileName, tableServiceResponseFile);
+ analyzeService.analyzeDocumentStructure(new StructureAnalyzeRequest(request.getDossierId(), request.getFileId()));
+ AnalyzeResult result = analyzeService.analyze(request);
+
+ AnnotateResponse annotateResponse = annotationService.annotate(AnnotateRequest.builder()
+ .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 testUnicodeProblem() throws IOException {
@@ -1005,7 +1051,7 @@ public class RedactionIntegrationTest {
System.out.println("testManualRedaction");
long start = System.currentTimeMillis();
- ClassPathResource pdfFileResource = new ClassPathResource("files/Minimal Examples/Single Table.pdf");
+ String pdfFile = "files/Minimal Examples/Single Table.pdf";
ManualRedactions manualRedactions = new ManualRedactions();
@@ -1053,7 +1099,7 @@ public class RedactionIntegrationTest {
.page(1)
.build()));
- AnalyzeRequest request = prepareStorage(pdfFileResource.getInputStream());
+ AnalyzeRequest request = prepareStorage(pdfFile);
request.setManualRedactions(manualRedactions);
analyzeService.analyzeDocumentStructure(new StructureAnalyzeRequest(request.getDossierId(), request.getFileId()));
AnalyzeResult result = analyzeService.analyze(request);
@@ -1094,9 +1140,8 @@ public class RedactionIntegrationTest {
public void classificationTest() throws IOException {
System.out.println("classificationTest");
- ClassPathResource pdfFileResource = new ClassPathResource("files/RSS/01 - CGA100251 - Acute Oral Toxicity (Up and Down Procedure) - Rat (1).pdf");
- AnalyzeRequest request = prepareStorage(pdfFileResource.getInputStream());
+ AnalyzeRequest request = prepareStorage("files/RSS/01 - CGA100251 - Acute Oral Toxicity (Up and Down Procedure) - Rat (1).pdf");
RedactionRequest redactionRequest = RedactionRequest.builder()
.dossierId(request.getDossierId())
@@ -1116,9 +1161,8 @@ public class RedactionIntegrationTest {
public void sectionsTest() throws IOException {
System.out.println("sectionsTest");
- ClassPathResource pdfFileResource = new ClassPathResource("files/Minimal Examples/Single Table.pdf");
- AnalyzeRequest request = prepareStorage(pdfFileResource.getInputStream());
+ AnalyzeRequest request = prepareStorage("files/Minimal Examples/Single Table.pdf");
RedactionRequest redactionRequest = RedactionRequest.builder()
.dossierId(request.getDossierId())
@@ -1138,9 +1182,7 @@ public class RedactionIntegrationTest {
public void htmlTablesTest() throws IOException {
System.out.println("htmlTablesTest");
- ClassPathResource pdfFileResource = new ClassPathResource("files/Minimal Examples/Single Table.pdf");
-
- AnalyzeRequest request = prepareStorage(pdfFileResource.getInputStream());
+ AnalyzeRequest request = prepareStorage("files/Minimal Examples/Single Table.pdf");
RedactionRequest redactionRequest = RedactionRequest.builder()
.dossierId(request.getDossierId())
@@ -1160,9 +1202,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");
- AnalyzeRequest request = prepareStorage(pdfFileResource.getInputStream());
+ AnalyzeRequest request = prepareStorage("files/Metolachlor/S-Metolachlor_RAR_02_Volume_2_2018-09-06.pdf");
RedactionRequest redactionRequest = RedactionRequest.builder()
.dossierId(request.getDossierId())
@@ -1181,9 +1222,7 @@ public class RedactionIntegrationTest {
@Test
public void phantomCellsDocumentTest() throws IOException {
- ClassPathResource pdfFileResource = new ClassPathResource("files/Minimal Examples/Phantom Cells.pdf");
-
- AnalyzeRequest request = prepareStorage(pdfFileResource.getInputStream());
+ AnalyzeRequest request = prepareStorage("files/Minimal Examples/Phantom Cells.pdf");
analyzeService.analyzeDocumentStructure(new StructureAnalyzeRequest(request.getDossierId(), request.getFileId()));
AnalyzeResult result = analyzeService.analyze(request);
@@ -1202,9 +1241,8 @@ public class RedactionIntegrationTest {
public void sponsorCompanyTest() throws IOException {
long start = System.currentTimeMillis();
- ClassPathResource pdfFileResource = new ClassPathResource("files/Minimal Examples/sponsor_companies.pdf");
- AnalyzeRequest request = prepareStorage(pdfFileResource.getInputStream());
+ AnalyzeRequest request = prepareStorage("files/Minimal Examples/sponsor_companies.pdf");
analyzeService.analyzeDocumentStructure(new StructureAnalyzeRequest(request.getDossierId(), request.getFileId()));
AnalyzeResult result = analyzeService.analyze(request);
@@ -1228,7 +1266,7 @@ public class RedactionIntegrationTest {
@Ignore
public void resizeRedactionTest() throws IOException {
- ClassPathResource pdfFileResource = new ClassPathResource("files/Minimal Examples/Single Table.pdf");
+ String pdfFile = "files/Minimal Examples/Single Table.pdf";
ManualRedactions manualRedactions = new ManualRedactions();
@@ -1284,7 +1322,7 @@ public class RedactionIntegrationTest {
// manualRedactions.getEntriesToAdd().add(manualRedactionEntry);
- AnalyzeRequest request = prepareStorage(pdfFileResource.getInputStream());
+ AnalyzeRequest request = prepareStorage(pdfFile);
request.setManualRedactions(manualRedactions);
analyzeService.analyzeDocumentStructure(new StructureAnalyzeRequest(request.getDossierId(), request.getFileId()));
AnalyzeResult result = analyzeService.analyze(request);
@@ -1384,7 +1422,7 @@ public class RedactionIntegrationTest {
@Ignore
public void testManualSurroundingText() throws IOException {
- ClassPathResource pdfFileResource = new ClassPathResource("files/new/S4.pdf");
+ String pdfFile = "files/new/S4.pdf";
ManualRedactions manualRedactions = new ManualRedactions();
@@ -1437,7 +1475,7 @@ public class RedactionIntegrationTest {
manualRedactions.getEntriesToAdd().add(manualRedactionEntry2);
manualRedactions.getEntriesToAdd().add(manualRedactionEntry3);
- AnalyzeRequest request = prepareStorage(pdfFileResource.getInputStream());
+ AnalyzeRequest request = prepareStorage(pdfFile);
request.setManualRedactions(manualRedactions);
analyzeService.analyzeDocumentStructure(new StructureAnalyzeRequest(request.getDossierId(), request.getFileId()));
AnalyzeResult result = analyzeService.analyze(request);
@@ -1791,10 +1829,9 @@ public class RedactionIntegrationTest {
public void testImportedRedactions() throws IOException {
String outputFileName = OsUtils.getTemporaryDirectory() + "/Annotated.pdf";
- ClassPathResource pdfFileResource = new ClassPathResource("files/ImportedRedactions/RotateTestFile_without_highlights.pdf");
ClassPathResource importedRedactions = new ClassPathResource("files/ImportedRedactions/RotateTestFile_without_highlights.IMPORTED_REDACTIONS.json");
- AnalyzeRequest request = prepareStorage(pdfFileResource.getInputStream());
+ AnalyzeRequest request = prepareStorage("files/ImportedRedactions/RotateTestFile_without_highlights.pdf");
storageService.storeObject(RedactionStorageService.StorageIdUtils.getStorageId(TEST_DOSSIER_ID, TEST_FILE_ID, FileType.IMPORTED_REDACTIONS), importedRedactions.getInputStream());
analyzeService.analyzeDocumentStructure(new StructureAnalyzeRequest(request.getDossierId(), request.getFileId()));
@@ -1838,8 +1875,7 @@ public class RedactionIntegrationTest {
String fileName = "files/mr-mrs.pdf";
String outputFileName = OsUtils.getTemporaryDirectory() + "/Annotated.pdf";
- ClassPathResource pdfFileResource = new ClassPathResource(fileName);
- AnalyzeRequest request = prepareStorage(pdfFileResource.getInputStream());
+ AnalyzeRequest request = prepareStorage(fileName);
analyzeService.analyzeDocumentStructure(new StructureAnalyzeRequest(request.getDossierId(), request.getFileId()));
analyzeService.analyze(request);
@@ -1866,7 +1902,7 @@ public class RedactionIntegrationTest {
@SneakyThrows
- private AnalyzeRequest prepareStorage(InputStream stream) {
+ private AnalyzeRequest prepareStorage(InputStream fileStream, InputStream cvServiceResponseFileStream) {
AnalyzeRequest request = AnalyzeRequest.builder()
.dossierTemplateId(TEST_DOSSIER_TEMPLATE_ID)
@@ -1875,7 +1911,8 @@ public class RedactionIntegrationTest {
.lastProcessed(OffsetDateTime.now())
.build();
- storageService.storeObject(RedactionStorageService.StorageIdUtils.getStorageId(TEST_DOSSIER_ID, TEST_FILE_ID, FileType.ORIGIN), stream);
+ storageService.storeObject(RedactionStorageService.StorageIdUtils.getStorageId(TEST_DOSSIER_ID, TEST_FILE_ID, FileType.TABLES), cvServiceResponseFileStream);
+ storageService.storeObject(RedactionStorageService.StorageIdUtils.getStorageId(TEST_DOSSIER_ID, TEST_FILE_ID, FileType.ORIGIN), fileStream);
return request;
@@ -1885,9 +1922,16 @@ public class RedactionIntegrationTest {
@SneakyThrows
private AnalyzeRequest prepareStorage(String file) {
- ClassPathResource pdfFileResource = new ClassPathResource(file);
+ return prepareStorage(file, "files/cv_service_empty_response.json");
+ }
- return prepareStorage(pdfFileResource.getInputStream());
+ @SneakyThrows
+ private AnalyzeRequest prepareStorage(String file, String cvServiceResponseFile) {
+
+ ClassPathResource pdfFileResource = new ClassPathResource(file);
+ ClassPathResource cvServiceResponseFileResource = new ClassPathResource(cvServiceResponseFile);
+
+ return prepareStorage(pdfFileResource.getInputStream(), cvServiceResponseFileResource.getInputStream());
}
}
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RulesTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RulesTest.java
index c33dbbbf..43915527 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RulesTest.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RulesTest.java
@@ -555,6 +555,7 @@ public class RulesTest {
.lastProcessed(OffsetDateTime.now())
.build();
+ storageService.storeObject(RedactionStorageService.StorageIdUtils.getStorageId(TEST_DOSSIER_ID, TEST_FILE_ID, FileType.TABLES), new ClassPathResource("files/cv_service_empty_response.json").getInputStream());
storageService.storeObject(RedactionStorageService.StorageIdUtils.getStorageId(TEST_DOSSIER_ID, TEST_FILE_ID, FileType.ORIGIN), stream);
return request;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/segmentation/PdfSegmentationServiceTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/segmentation/PdfSegmentationServiceTest.java
index 18307012..86ee900f 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/segmentation/PdfSegmentationServiceTest.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/segmentation/PdfSegmentationServiceTest.java
@@ -20,14 +20,18 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
+import org.springframework.context.annotation.Primary;
import org.springframework.core.io.ClassPathResource;
import org.springframework.test.context.junit4.SpringRunner;
import com.amazonaws.services.s3.AmazonS3;
import com.fasterxml.jackson.databind.ObjectMapper;
+import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileType;
import com.iqser.red.service.redaction.v1.server.Application;
+import com.iqser.red.service.redaction.v1.server.FileSystemBackedStorageService;
import com.iqser.red.service.redaction.v1.server.classification.model.Document;
import com.iqser.red.service.redaction.v1.server.classification.service.BlockificationService;
import com.iqser.red.service.redaction.v1.server.client.LegalBasisClient;
@@ -35,10 +39,13 @@ import com.iqser.red.service.redaction.v1.server.redaction.model.ImageType;
import com.iqser.red.service.redaction.v1.server.redaction.model.PdfImage;
import com.iqser.red.service.redaction.v1.server.redaction.model.RedRectangle2D;
import com.iqser.red.service.redaction.v1.server.redaction.model.image.ImageServiceResponse;
+import com.iqser.red.service.redaction.v1.server.storage.RedactionStorageService;
import com.iqser.red.service.redaction.v1.server.tableextraction.model.Cell;
import com.iqser.red.service.redaction.v1.server.tableextraction.model.Table;
import com.iqser.red.service.redaction.v1.server.tableextraction.service.RulingCleaningService;
import com.iqser.red.service.redaction.v1.server.tableextraction.service.TableExtractionService;
+import com.iqser.red.storage.commons.StorageAutoConfiguration;
+import com.iqser.red.storage.commons.service.StorageService;
import lombok.SneakyThrows;
@@ -71,13 +78,24 @@ public class PdfSegmentationServiceTest {
@MockBean
private LegalBasisClient legalBasisClient;
+ @Autowired
+ private StorageService storageService;
+
@Autowired
private ObjectMapper objectMapper;
- @Configuration
- @EnableAutoConfiguration(exclude = { RabbitAutoConfiguration.class})
- public static class TestConfiguration {
+ private final static String TEST_DOSSIER_ID = "123";
+ private final static String TEST_FILE_ID = "123";
+ @Configuration
+ @EnableAutoConfiguration(exclude = { RabbitAutoConfiguration.class, StorageAutoConfiguration.class})
+ public static class TestConfiguration {
+ @Bean
+ @Primary
+ public StorageService inmemoryStorage() {
+
+ return new FileSystemBackedStorageService();
+ }
}
@@ -85,6 +103,7 @@ public class PdfSegmentationServiceTest {
@SneakyThrows
public void testMapping() {
+ prepareStorage();
ClassPathResource responseJson = new ClassPathResource("files/image_response.json");
ImageServiceResponse imageServiceResponse = objectMapper.readValue(responseJson.getInputStream(), ImageServiceResponse.class);
@@ -103,9 +122,10 @@ public class PdfSegmentationServiceTest {
@Test
public void testPDFSegmentationWithComplexTable() throws IOException {
+ prepareStorage();
ClassPathResource pdfFileResource = new ClassPathResource("files/Minimal Examples/Spanning Cells.pdf");
- Document document = pdfSegmentationService.parseDocument(pdfFileResource.getInputStream(), null);
+ Document document = pdfSegmentationService.parseDocument(TEST_DOSSIER_ID, TEST_FILE_ID, pdfFileResource.getInputStream(), null);
assertThat(document.getParagraphs()
.stream()
.flatMap(paragraph -> paragraph.getTables().stream())
@@ -124,9 +144,10 @@ public class PdfSegmentationServiceTest {
@Test
public void testTableExtraction() throws IOException {
+ prepareStorage();
ClassPathResource pdfFileResource = new ClassPathResource("files/Minimal Examples/Merge Table.pdf");
- Document document = pdfSegmentationService.parseDocument(pdfFileResource.getInputStream(), null);
+ Document document = pdfSegmentationService.parseDocument(TEST_DOSSIER_ID, TEST_FILE_ID, pdfFileResource.getInputStream(), null);
assertThat(document.getParagraphs()
.stream()
.flatMap(paragraph -> paragraph.getTables().stream())
@@ -162,9 +183,10 @@ public class PdfSegmentationServiceTest {
@Test
public void testMultiPageMetadataPropagation() throws IOException {
+ prepareStorage();
ClassPathResource pdfFileResource = new ClassPathResource("files/Minimal Examples/Merge Multi Page Table.pdf");
- Document document = pdfSegmentationService.parseDocument(pdfFileResource.getInputStream(), null);
+ Document document = pdfSegmentationService.parseDocument(TEST_DOSSIER_ID, TEST_FILE_ID, pdfFileResource.getInputStream(), null);
assertThat(document.getParagraphs()
.stream()
.flatMap(paragraph -> paragraph.getTables().stream())
@@ -200,9 +222,10 @@ public class PdfSegmentationServiceTest {
@Test
public void testHeaderCellsForRotatedTable() throws IOException {
+ prepareStorage();
ClassPathResource pdfFileResource = new ClassPathResource("files/Minimal Examples/Rotated Table Headers.pdf");
- Document document = pdfSegmentationService.parseDocument(pdfFileResource.getInputStream(), null);
+ Document document = pdfSegmentationService.parseDocument(TEST_DOSSIER_ID, TEST_FILE_ID, pdfFileResource.getInputStream(), null);
assertThat(document.getParagraphs()
.stream()
.flatMap(paragraph -> paragraph.getTables().stream())
@@ -235,4 +258,10 @@ public class PdfSegmentationServiceTest {
}
+ @SneakyThrows
+ private void prepareStorage() {
+
+ storageService.storeObject(RedactionStorageService.StorageIdUtils.getStorageId(TEST_DOSSIER_ID, TEST_FILE_ID, FileType.TABLES), new ClassPathResource("files/cv_service_empty_response.json").getInputStream());
+ }
+
}
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/RedactionLog/files/RulesTest/RuleTestDocument.json b/redaction-service-v1/redaction-service-server-v1/src/test/resources/RedactionLog/files/RulesTest/RuleTestDocument.json
new file mode 100644
index 00000000..8ebf55d7
--- /dev/null
+++ b/redaction-service-v1/redaction-service-server-v1/src/test/resources/RedactionLog/files/RulesTest/RuleTestDocument.json
@@ -0,0 +1 @@
+{"analysisVersion":1,"analysisNumber":0,"redactionLogEntry":[{"id":"3f892d90df0a3cb3cbcab48935c44e67","type":"PII","value":"Özgür U. Reyhan","reason":"Personal information found","matchedRule":19,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Text in table","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":230.2,"y":378.52798},"width":56.143997,"height":-10.428009,"page":1}],"sectionNumber":5,"textBefore":"923-1101, Japan, JP ","textAfter":" Sude Halide","comments":[],"startOffset":78,"endOffset":93,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"e96fbdf528fb751cf759cd40e954728d","type":"CBI_author","value":"Doe","reason":"Author found","matchedRule":1,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Text in table","color":[1.0,0.88235295,0.5294118],"positions":[{"topLeft":{"x":230.2,"y":472.42798},"width":13.336014,"height":-10.428009,"page":1}],"sectionNumber":3,"textBefore":"Slash David Ksenia ","textAfter":" M. Mustermann","comments":[],"startOffset":216,"endOffset":219,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"9dc60f2f06c10b33740a46a51440768e","type":"PII","value":"Xinyi Y. Tao","reason":"Personal information found","matchedRule":19,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Text in table","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":230.2,"y":360.128},"width":40.368027,"height":-10.428009,"page":1}],"sectionNumber":5,"textBefore":null,"textAfter":null,"comments":[],"startOffset":115,"endOffset":127,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"3facdde738ebe7181c9489359d936c8e","type":"PII","value":"B. Rahim","reason":"Personal information found","matchedRule":19,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Text in table","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":230.2,"y":406.128},"width":30.59999,"height":-10.428009,"page":1}],"sectionNumber":5,"textBefore":null,"textAfter":" C. J.","comments":[],"startOffset":4,"endOffset":12,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"abc9a04339ce3ba71b4ddca2988b76fb","type":"CBI_address","value":"Netherlands","reason":"Address found for non vertebrate study","matchedRule":3,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Text in table","color":[0.8,0.8,0.8],"positions":[{"topLeft":{"x":337.13605,"y":542.328},"width":38.67206,"height":-10.428009,"page":1}],"sectionNumber":2,"textBefore":"7232 CX Warnsveld, ","textAfter":", N","comments":[],"startOffset":296,"endOffset":307,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"67012f64a35979a07d94cfb9529cc10b","type":"PII","value":"David","reason":"Personal information found","matchedRule":19,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Text in table","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":230.2,"y":481.628},"width":19.584015,"height":-10.428009,"page":1}],"sectionNumber":3,"textBefore":"1234 with Slash ","textAfter":" Ksenia Doe","comments":[],"startOffset":203,"endOffset":208,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"3fc4319faa6bd6da221f0ed254b9726e","type":"PII","value":"C. J. Alfred","reason":"Personal information found","matchedRule":19,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Text in table","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":230.2,"y":396.92798},"width":36.86403,"height":-10.428009,"page":1}],"sectionNumber":5,"textBefore":"B. Rahim ","textAfter":" Naka-27 Aomachi,","comments":[],"startOffset":13,"endOffset":25,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"3e0d4491a6f29fee7f2ff4600a475260","type":"CBI_author","value":"M. Mustermann","reason":"Author found","matchedRule":1,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Text in table","color":[1.0,0.88235295,0.5294118],"positions":[{"topLeft":{"x":230.2,"y":463.22797},"width":51.56804,"height":-10.428009,"page":1}],"sectionNumber":3,"textBefore":"David Ksenia Doe ","textAfter":" Ranya Eikenboom","comments":[],"startOffset":220,"endOffset":233,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"00ac3ed9b409f2ed8e9c735d98735011","type":"PII","value":"Page","reason":"Personal information found","matchedRule":19,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Header","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":100.383995,"y":734.742},"width":23.304,"height":-12.641998,"page":1}],"sectionNumber":46,"textBefore":"This is a ","textAfter":"-Header","comments":[],"startOffset":10,"endOffset":14,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"42ad2094f9c5f17fcbe73e8cc268daf5","type":"PII","value":"Naka-27 Aomachi, Nomi, Ishikawa 923-1101, Japan, JP","reason":"Personal information found","matchedRule":19,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Text in table","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":230.2,"y":387.72797},"width":179.60017,"height":-10.428009,"page":1}],"sectionNumber":5,"textBefore":"C. J. Alfred ","textAfter":" Özgür U.","comments":[],"startOffset":26,"endOffset":77,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"2799b1ba467b5d3b6d9a3e424cbd314c","type":"PII","value":"Sude Halide Nurullah","reason":"Personal information found","matchedRule":19,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Text in table","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":230.2,"y":369.32797},"width":69.75212,"height":-10.428009,"page":1}],"sectionNumber":5,"textBefore":"Özgür U. Reyhan ","textAfter":" Xinyi Y.","comments":[],"startOffset":94,"endOffset":114,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"2d9e1b1baaca3fac422c05c0d9721937","type":"PII","value":"Page","reason":"Personal information found","matchedRule":19,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Footer","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":100.383995,"y":69.94202},"width":23.304,"height":-12.642029,"page":1}],"sectionNumber":55,"textBefore":"This is a ","textAfter":"-Footer","comments":[],"startOffset":10,"endOffset":14,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"f2e0cd2b8329d310362302aecc40c76c","type":"PII","value":"annotation","reason":"Personal information found","matchedRule":19,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":241.67998,"y":198.63495},"width":42.169907,"height":-11.534973,"page":1}],"sectionNumber":9,"textBefore":"effect or their ","textAfter":" types change","comments":[],"startOffset":675,"endOffset":685,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"0cce1d703a23b8a9f3470ee95948295b","type":"CBI_author","value":"Doe J.","reason":"Author found","matchedRule":1,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Last Update: 28-01-2022","color":[1.0,0.88235295,0.5294118],"positions":[{"topLeft":{"x":126.076,"y":670.742},"width":30.58799,"height":-12.641998,"page":2}],"sectionNumber":10,"textBefore":"Mustermann Lastname M., ","textAfter":", Mustermann M.","comments":[],"startOffset":123,"endOffset":129,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"d8b821220916bf878bf818e445f9978a","type":"PII","value":"Page","reason":"Personal information found","matchedRule":19,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Footer","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":100.383995,"y":69.94202},"width":23.304,"height":-12.642029,"page":2}],"sectionNumber":56,"textBefore":"This is a ","textAfter":"-Footer","comments":[],"startOffset":10,"endOffset":14,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"6c70f9625a77d4e2f3556533a5dad338","type":"CBI_author","value":"Doe","reason":"Author found","matchedRule":1,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Last Update: 28-01-2022","color":[1.0,0.88235295,0.5294118],"positions":[{"topLeft":{"x":131.776,"y":684.54205},"width":20.003998,"height":-12.641998,"page":2}],"sectionNumber":10,"textBefore":"F. Lastname, J. ","textAfter":", M. Mustermann","comments":[],"startOffset":91,"endOffset":94,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"4e7367d93d50d59a78fab69f2d9d6287","type":"CBI_author","value":"Mustermann","reason":"Author found","matchedRule":1,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Rule 1/2: Redact CBI Authors based on Dict","color":[1.0,0.88235295,0.5294118],"positions":[{"topLeft":{"x":81.796005,"y":549.442},"width":60.576004,"height":-12.641998,"page":2}],"sectionNumber":11,"textBefore":"David Ksenia Max ","textAfter":" Ranya Eikenboom","comments":[],"startOffset":131,"endOffset":141,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"a2ece335e53d61e7ec4c2a15e39133ff","type":"PII","value":"David","reason":"Personal information found","matchedRule":19,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Rule 1/2: Redact CBI Authors based on Dict","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":56.8,"y":563.242},"width":29.291996,"height":-12.641998,"page":2}],"sectionNumber":11,"textBefore":"Study is No ","textAfter":" Ksenia Max","comments":[],"startOffset":114,"endOffset":119,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"db5d1b211384d25764a0ddc2e6008850","type":"CBI_address","value":"Netherlands","reason":"Address found for non vertebrate study","matchedRule":3,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 3/4: Redact (not) CBI Address based on Dict","color":[0.8,0.8,0.8],"positions":[{"topLeft":{"x":217.252,"y":414.34204},"width":57.86403,"height":-12.641998,"page":2}],"sectionNumber":12,"textBefore":"7232 CX Warnsveld, ","textAfter":", NL Institut","comments":[],"startOffset":173,"endOffset":184,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"4d7e41d8f0903ccf13b56b7ddf92447f","type":"PII","value":"Page","reason":"Personal information found","matchedRule":19,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Header","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":100.383995,"y":734.742},"width":23.304,"height":-12.641998,"page":2}],"sectionNumber":47,"textBefore":"This is a ","textAfter":"-Header","comments":[],"startOffset":10,"endOffset":14,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"db853dfd6454a849724b45e764e6bd8c","type":"CBI_author","value":"F. Lastname","reason":"Author found","matchedRule":1,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Last Update: 28-01-2022","color":[1.0,0.88235295,0.5294118],"positions":[{"topLeft":{"x":56.8,"y":684.54205},"width":58.295994,"height":-12.641998,"page":2}],"sectionNumber":10,"textBefore":"with firstname initials ","textAfter":", J. Doe,","comments":[],"startOffset":75,"endOffset":86,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"27773fcfa41849cff34a58a64118a486","type":"CBI_author","value":"Mustermann","reason":"Author found","matchedRule":1,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Last Update: 28-01-2022","color":[1.0,0.88235295,0.5294118],"positions":[{"topLeft":{"x":162.66399,"y":670.742},"width":60.588013,"height":-12.641998,"page":2}],"sectionNumber":10,"textBefore":"M., Doe J., ","textAfter":" M.","comments":[],"startOffset":131,"endOffset":141,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"dbf9e94b6480fc3f75774d9ed82858cd","type":"CBI_author","value":"M. Mustermann","reason":"Author found","matchedRule":1,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Last Update: 28-01-2022","color":[1.0,0.88235295,0.5294118],"positions":[{"topLeft":{"x":157.768,"y":684.54205},"width":77.268005,"height":-12.641998,"page":2}],"sectionNumber":10,"textBefore":"Lastname, J. Doe, ","textAfter":" Lastname M.,","comments":[],"startOffset":96,"endOffset":109,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"24dc761e44c38b5879b6d52f4aaa5cd5","type":"CBI_author","value":"Lastname","reason":"Author found","matchedRule":1,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Last Update: 28-01-2022","color":[1.0,0.88235295,0.5294118],"positions":[{"topLeft":{"x":56.8,"y":670.742},"width":46.595997,"height":-12.641998,"page":2}],"sectionNumber":10,"textBefore":"Doe, M. Mustermann ","textAfter":" M., Doe","comments":[],"startOffset":110,"endOffset":118,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"8887c35a097727ec08fdd93f51b51151","type":"CBI_author","value":"Desiree","reason":"Author found","matchedRule":14,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Rule 14/15: Redact and add recommendation for et al.","color":[1.0,0.88235295,0.5294118],"positions":[{"topLeft":{"x":324.28015,"y":295.84204},"width":36.57602,"height":-12.642029,"page":3}],"sectionNumber":21,"textBefore":"consectetur adipiscing elit ","textAfter":" et al","comments":[],"startOffset":212,"endOffset":219,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"6297da8bcb4ad9fda3729af2bfd0aa61","type":"PII","value":"Page","reason":"Personal information found","matchedRule":19,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Header","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":100.383995,"y":734.742},"width":23.304,"height":-12.641998,"page":3}],"sectionNumber":48,"textBefore":"This is a ","textAfter":"-Header","comments":[],"startOffset":10,"endOffset":14,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"b6bcc107fac241a5c2a063e88a65d268","type":"CBI_author","value":"Desiree","reason":"Author found","matchedRule":14,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Rule 14/15: Redact and add recommendation for et al.","color":[1.0,0.88235295,0.5294118],"positions":[{"topLeft":{"x":115.27,"y":308.13498},"width":30.700005,"height":-11.535004,"page":3}],"sectionNumber":21,"textBefore":"Redact Term “","textAfter":"”, “Melanie” and","comments":[],"startOffset":66,"endOffset":73,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"833634063294adb5597f010384350e9a","type":"vertebrate","value":"mouse","reason":null,"matchedRule":0,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 16/17: Add recommendation for Addresses in Test Organism/Animals\nsections","color":[1.0,0.52156866,0.96862745],"positions":[{"topLeft":{"x":318.60403,"y":169.94202},"width":32.603973,"height":-12.642029,"page":3}],"sectionNumber":22,"textBefore":null,"textAfter":null,"comments":[],"startOffset":325,"endOffset":330,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":true,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"8e794918f00108e6f4b91f547d961b1e","type":"CBI_author","value":"Melanie","reason":"Author found","matchedRule":14,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Rule 14/15: Redact and add recommendation for et al.","color":[1.0,0.88235295,0.5294118],"positions":[{"topLeft":{"x":162.12,"y":308.13498},"width":32.710007,"height":-11.535004,"page":3}],"sectionNumber":21,"textBefore":"Term “Desiree”, “","textAfter":"” and add","comments":[],"startOffset":77,"endOffset":84,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"17617db6d127ba54c35b047312b8a242","type":"CBI_author","value":"Melanie","reason":"Author found","matchedRule":14,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Rule 14/15: Redact and add recommendation for et al.","color":[1.0,0.88235295,0.5294118],"positions":[{"topLeft":{"x":214.66,"y":282.04205},"width":39.300003,"height":-12.642029,"page":3}],"sectionNumber":21,"textBefore":"dolore magna aliqua ","textAfter":" et al.","comments":[],"startOffset":292,"endOffset":299,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"fe6934fd66e2c5b3440667157d050d19","type":"CBI_author","value":"Funnarie B.","reason":"Author found","matchedRule":6,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Table in: Rule 6-11 (Authors Table)","color":[1.0,0.88235295,0.5294118],"positions":[{"topLeft":{"x":140.0,"y":611.81177},"width":49.48651,"height":-11.811752,"page":3}],"sectionNumber":16,"textBefore":null,"textAfter":null,"comments":[],"startOffset":7,"endOffset":18,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"f334f16549061c2be9f8c872deb762fa","type":"PII","value":"Page","reason":"Personal information found","matchedRule":19,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Footer","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":100.383995,"y":69.94202},"width":23.304,"height":-12.642029,"page":3}],"sectionNumber":57,"textBefore":"This is a ","textAfter":"-Footer","comments":[],"startOffset":10,"endOffset":14,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"16be7d4927f9b1af67379c7219c340b2","type":"vertebrate","value":"mouse","reason":null,"matchedRule":0,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 16/17: Add recommendation for Addresses in Test Organism/Animals\nsections","color":[1.0,0.52156866,0.96862745],"positions":[{"topLeft":{"x":318.60403,"y":156.14203},"width":32.603973,"height":-12.642029,"page":3}],"sectionNumber":22,"textBefore":null,"textAfter":null,"comments":[],"startOffset":411,"endOffset":416,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":true,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"8ec05310090119c656f07ffd7d94ac6a","type":"CBI_author","value":"Feuer A.","reason":"Author found","matchedRule":6,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Table in: Rule 6-11 (Authors Table)","color":[1.0,0.88235295,0.5294118],"positions":[{"topLeft":{"x":146.8,"y":582.11176},"width":36.193512,"height":-11.811752,"page":3}],"sectionNumber":17,"textBefore":null,"textAfter":null,"comments":[],"startOffset":6,"endOffset":14,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"4f1933f160f41958dda3e9c0ad610a22","type":"CBI_author","value":"Michael N.","reason":"Author found","matchedRule":6,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Table in: Rule 6-11 (Authors Table)","color":[1.0,0.88235295,0.5294118],"positions":[{"topLeft":{"x":141.2,"y":641.61176},"width":47.197525,"height":-11.811752,"page":3}],"sectionNumber":15,"textBefore":null,"textAfter":null,"comments":[],"startOffset":7,"endOffset":17,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"70002b1808719351098cb56c0cffa2d2","type":"PII","value":"B. Rahim","reason":"Personal information found","matchedRule":19,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Rule 19/20: Redacted PII Personal Identification Information based on Dict","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":56.8,"y":275.44202},"width":45.91199,"height":-12.642029,"page":4}],"sectionNumber":26,"textBefore":"Özgür U. Reyhan ","textAfter":" C. J.","comments":[],"startOffset":235,"endOffset":243,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"91d7be488f4750c1919315b948976949","type":"vertebrate","value":"mouse","reason":null,"matchedRule":0,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 16/17: (2/2 additional negative test)","color":[1.0,0.52156866,0.96862745],"positions":[{"topLeft":{"x":323.92007,"y":563.242},"width":32.603973,"height":-12.641998,"page":4}],"sectionNumber":24,"textBefore":null,"textAfter":null,"comments":[],"startOffset":195,"endOffset":200,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":true,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"fac8e1e43f45f3400bf159a1209fb9be","type":"CBI_author","value":"Liu","reason":"Author found","matchedRule":1,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Rule 18: Do not redact Names and Addresses if Published Information\nfound","color":[1.0,0.88235295,0.5294118],"positions":[{"topLeft":{"x":449.4521,"y":410.54202},"width":16.596039,"height":-12.641998,"page":4}],"sectionNumber":25,"textBefore":"Zhou Mah, Ning ","textAfter":", Lei W.","comments":[],"startOffset":507,"endOffset":510,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"e833fe4d029f8a7313f9e327bae3041f","type":"PII","value":"Sude Halide Nurullah","reason":"Personal information found","matchedRule":19,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Rule 19/20: Redacted PII Personal Identification Information based on Dict","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":56.8,"y":303.04202},"width":104.556015,"height":-12.641998,"page":4}],"sectionNumber":26,"textBefore":"923-1101, Japan, JP ","textAfter":" Özgür U.","comments":[],"startOffset":198,"endOffset":218,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"54455adb2e93a9579e4a4e0f57b51e23","type":"PII","value":"dinther@comcast.net","reason":"Personal information found","matchedRule":21,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Rule 21/22: Redact Emails by RegEx","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":333.89212,"y":140.34204},"width":101.98816,"height":-12.642029,"page":4}],"sectionNumber":27,"textBefore":"pariatur. Excepteur sint ","textAfter":" occaecat cupidatat","comments":[],"startOffset":262,"endOffset":281,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"6ae6aa77c3d579e0a6352f561782328e","type":"CBI_author","value":"Wong","reason":"Author found","matchedRule":1,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Rule 18: Do not redact Names and Addresses if Published Information\nfound","color":[1.0,0.88235295,0.5294118],"positions":[{"topLeft":{"x":269.51196,"y":410.54202},"width":28.29602,"height":-12.641998,"page":4}],"sectionNumber":25,"textBefore":"Jun K., Tu ","textAfter":", Qiang Suen,","comments":[],"startOffset":474,"endOffset":478,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"66ae3415158458d6441c158233115b29","type":"PII","value":"Xinyi Y. Tao","reason":"Personal information found","matchedRule":19,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Rule 19/20: Redacted PII Personal Identification Information based on Dict","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":56.8,"y":247.84204},"width":60.599987,"height":-12.642029,"page":4}],"sectionNumber":26,"textBefore":"C. J. Alfred ","textAfter":" Clara Siegfried","comments":[],"startOffset":257,"endOffset":269,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"eaaa9c788fae545476d2362709b5229f","type":"PII","value":"gordonjcp@msn.com","reason":"Personal information found","matchedRule":21,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Rule 21/22: Redact Emails by RegEx","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":404.96823,"y":154.14203},"width":103.308075,"height":-12.642029,"page":4}],"sectionNumber":27,"textBefore":"reprehenderit in voluptate ","textAfter":" velit esse","comments":[],"startOffset":178,"endOffset":195,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"642de2d42c17f479ab0100ba9e0d7211","type":"CBI_author","value":"Huang","reason":"Author found","matchedRule":1,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Rule 18: Do not redact Names and Addresses if Published Information\nfound","color":[1.0,0.88235295,0.5294118],"positions":[{"topLeft":{"x":507.04016,"y":410.54202},"width":31.991943,"height":-12.641998,"page":4}],"sectionNumber":25,"textBefore":"Liu, Lei W. ","textAfter":", Ru X.","comments":[],"startOffset":519,"endOffset":524,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"2403ebe01706722932fd5338e2a19adc","type":"CBI_author","value":"Wu","reason":"Author found","matchedRule":1,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Rule 18: Do not redact Names and Addresses if Published Information\nfound","color":[1.0,0.88235295,0.5294118],"positions":[{"topLeft":{"x":88.192,"y":396.74203},"width":16.800003,"height":-12.641998,"page":4}],"sectionNumber":25,"textBefore":"Huang, Ru X. ","textAfter":null,"comments":[],"startOffset":532,"endOffset":534,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"5ec0f82007c5cf97728aa5bf53d65d88","type":"PII","value":"Özgür U. Reyhan","reason":"Personal information found","matchedRule":19,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Rule 19/20: Redacted PII Personal Identification Information based on Dict","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":56.8,"y":289.242},"width":84.192,"height":-12.642029,"page":4}],"sectionNumber":26,"textBefore":"Sude Halide Nurullah ","textAfter":" B. Rahim","comments":[],"startOffset":219,"endOffset":234,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"a333cf8c030fcb589dbb42139b4776d2","type":"PII","value":"library@outlook.com","reason":"Personal information found","matchedRule":21,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Rule 21/22: Redact Emails by RegEx","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":171.748,"y":154.14203},"width":103.296036,"height":-12.642029,"page":4}],"sectionNumber":27,"textBefore":"irure dolor in ","textAfter":" reprehenderit in","comments":[],"startOffset":131,"endOffset":150,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"1ff7d70f6b9ca415b3ac2ac7b090ad19","type":"vertebrate","value":"mouse","reason":null,"matchedRule":0,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 16/17: (2/2 additional negative test)","color":[1.0,0.52156866,0.96862745],"positions":[{"topLeft":{"x":336.9161,"y":577.04205},"width":32.603973,"height":-12.641998,"page":4}],"sectionNumber":24,"textBefore":null,"textAfter":null,"comments":[],"startOffset":111,"endOffset":116,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":true,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"609b466f0960f9ea5aa6d19e0d9de5bc","type":"PII","value":"Naka-27 Aomachi, Nomi, Ishikawa 923-1101, Japan, JP","reason":"Personal information found","matchedRule":19,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Rule 19/20: Redacted PII Personal Identification Information based on Dict","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":56.8,"y":316.84204},"width":269.37607,"height":-12.641998,"page":4}],"sectionNumber":26,"textBefore":"Study is No ","textAfter":" Sude Halide","comments":[],"startOffset":146,"endOffset":197,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"0e72674bb524dff6c1d9e63f164a070b","type":"PII","value":"Page","reason":"Personal information found","matchedRule":19,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Footer","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":100.383995,"y":69.94202},"width":23.304,"height":-12.642029,"page":4}],"sectionNumber":58,"textBefore":"This is a ","textAfter":"-Footer","comments":[],"startOffset":10,"endOffset":14,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"19cbb3c4ef9f60dde6a10bfd21519822","type":"PII","value":"Page","reason":"Personal information found","matchedRule":19,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Header","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":100.383995,"y":734.742},"width":23.304,"height":-12.641998,"page":4}],"sectionNumber":49,"textBefore":"This is a ","textAfter":"-Header","comments":[],"startOffset":10,"endOffset":14,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"81d1f223b94cad1e276db7fb89dfbbb7","type":"PII","value":"kawasaki@me.com","reason":"Personal information found","matchedRule":21,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Rule 21/22: Redact Emails by RegEx","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":138.06398,"y":126.54205},"width":93.99602,"height":-12.642029,"page":4}],"sectionNumber":27,"textBefore":"proident, sunt in ","textAfter":" culpa qui","comments":[],"startOffset":323,"endOffset":338,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"ff168dd37faf15c0d25a08b3b07618ad","type":"PII","value":"+274 1432 8990","reason":"Personal information found","matchedRule":23,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Table in: Rule 23/24: Redact contact information (contains \"Contact point:\")","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":356.75204,"y":325.2815},"width":58.995026,"height":-10.981506,"page":5}],"sectionNumber":29,"textBefore":"8991 Fax number: ","textAfter":" Telephone: +274","comments":[],"startOffset":590,"endOffset":604,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"246c8e170ed5e557bc824538a6c404c8","type":"PII","value":"Seriknowmobil@co.uk","reason":"Personal information found","matchedRule":23,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Table in: Rule 23/24: Redact contact information (contains \"Contact point:\")","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":337.94205,"y":397.7815},"width":83.52905,"height":-10.981506,"page":5}],"sectionNumber":29,"textBefore":"6653 44563 E-mail: ","textAfter":" Email: maximiliamschmitt@arcor.de","comments":[],"startOffset":365,"endOffset":384,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"dc60967f50c70165eccc81dffc4883ed","type":"PII","value":"493 1223 4592","reason":"Personal information found","matchedRule":23,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Table in: Rule 23/24: Redact contact information (contains \"Contact point:\")","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":341.44302,"y":294.2815},"width":53.991028,"height":-10.981506,"page":5}],"sectionNumber":29,"textBefore":"1432 8933 Contact: ","textAfter":" European contact:","comments":[],"startOffset":664,"endOffset":677,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"d28193181151c022a93e21df3c15450d","type":"PII","value":"+27414328992","reason":"Personal information found","matchedRule":23,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Table in: Rule 23/24: Redact contact information (contains \"Contact point:\")","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":380.51205,"y":345.9815},"width":54.593994,"height":-10.981506,"page":5}],"sectionNumber":29,"textBefore":"Schmitt Telephone number: ","textAfter":" Telephone No:","comments":[],"startOffset":536,"endOffset":548,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"a78592923d5bfd382021b2c72f46b6db","type":"PII","value":"maximiliamschmitt@arcor.de","reason":"Personal information found","matchedRule":23,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Table in: Rule 23/24: Redact contact information (contains \"Contact point:\")","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":334.94504,"y":387.3815},"width":106.83017,"height":-10.981506,"page":5}],"sectionNumber":29,"textBefore":"E-mail: Seriknowmobil@co.uk Email: ","textAfter":" e-mail: maximiliamschmitt@t-online.de","comments":[],"startOffset":392,"endOffset":418,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"cc508b48ace514fb1d89ee30ae579515","type":"PII","value":"+49 2113 2311 560","reason":"Personal information found","matchedRule":25,"rectangle":false,"legalBasis":"Article 39(e)(2) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Table in: Rule 23/24: Redact contact information (contains \"Contact point:\")","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":326.98,"y":428.7815},"width":69.68704,"height":-10.981506,"page":5}],"sectionNumber":29,"textBefore":"2311 563 Fax: ","textAfter":" Tel.: +81","comments":[],"startOffset":299,"endOffset":316,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"815ad6c1369cbc76c97f4dd571db1aaa","type":"PII","value":"\")","reason":"Personal information found","matchedRule":23,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Rule 23/24: Redact contact information (contains \"Contact point:\")","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":490.14966,"y":705.9678},"width":11.378723,"height":-13.867798,"page":5}],"sectionNumber":31,"textBefore":"(contains \"Contact point:","textAfter":" Redact when","comments":[],"startOffset":64,"endOffset":66,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"4e14fac8a5c5ab0815a865b56911e21a","type":"PII","value":"Central Research Industry","reason":"Personal information found","matchedRule":23,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Table in: Rule 23/24: Redact contact information (contains \"Contact point:\")","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":362.22406,"y":449.4815},"width":93.77109,"height":-10.981506,"page":5}],"sectionNumber":29,"textBefore":"Contact point: ","textAfter":" Phone: +49","comments":[],"startOffset":243,"endOffset":268,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"d0ed11f040c2f826f5749b5e7202dd6e","type":"PII","value":"Emilia Lockhart","reason":"Personal information found","matchedRule":23,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Table in: Rule 23/24: Redact contact information (contains \"Contact point:\")","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":382.0601,"y":273.58148},"width":58.69806,"height":-10.981506,"page":5}],"sectionNumber":29,"textBefore":"Institute Alternative contact: ","textAfter":" Alternative contact:","comments":[],"startOffset":744,"endOffset":759,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"2184ead9005dd1eae2ff8fd837c4af34","type":"PII","value":"Tiffany Umbrella","reason":"Personal information found","matchedRule":23,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Rule 23/24: Redact contact information (contains \"Contact point:\")","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":164.8,"y":636.142},"width":83.592026,"height":-12.641998,"page":5}],"sectionNumber":31,"textBefore":"Organisation Contact point: ","textAfter":" Address: Goldstreet","comments":[],"startOffset":229,"endOffset":245,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"f9917442aab38edae9ff7e7cba1f9fff","type":"PII","value":"+55 1221 3431 13","reason":"Personal information found","matchedRule":25,"rectangle":false,"legalBasis":"Article 39(e)(2) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Rule 23/24: Redact contact information (contains \"Contact point:\")","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":164.8,"y":525.742},"width":87.696,"height":-12.641998,"page":5}],"sectionNumber":31,"textBefore":"be redacted Tel.: ","textAfter":" No: This","comments":[],"startOffset":463,"endOffset":479,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"d380934c73ae7308cc323de5047f4290","type":"PII","value":"Page","reason":"Personal information found","matchedRule":19,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Header","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":100.383995,"y":734.742},"width":23.304,"height":-12.641998,"page":5}],"sectionNumber":50,"textBefore":"This is a ","textAfter":"-Header","comments":[],"startOffset":10,"endOffset":14,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"0380dfce74e985ef7b1d2925d929b876","type":"PII","value":"+55 1221 3431 12","reason":"Personal information found","matchedRule":25,"rectangle":false,"legalBasis":"Article 39(e)(2) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Rule 23/24: Redact contact information (contains \"Contact point:\")","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":164.8,"y":594.742},"width":87.696,"height":-12.641998,"page":5}],"sectionNumber":31,"textBefore":"TX, USA Phone: ","textAfter":" Fax: +55","comments":[],"startOffset":291,"endOffset":307,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"7d8ac49d19e251ddb66e4fc4db0d77ab","type":"PII","value":"European Central Institute","reason":"Personal information found","matchedRule":23,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Table in: Rule 23/24: Redact contact information (contains \"Contact point:\")","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":376.09305,"y":283.88153},"width":94.86011,"height":-10.981506,"page":5}],"sectionNumber":29,"textBefore":"4592 European contact: ","textAfter":" Alternative contact:","comments":[],"startOffset":696,"endOffset":722,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"9f495fa016bc9c35dffcc5e82c3ca8e7","type":"PII","value":"This is a special case, everything between this and the next keyword should be redacted","reason":"Personal information found","matchedRule":23,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Rule 23/24: Redact contact information (contains \"Contact point:\")","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":164.8,"y":511.94202},"width":282.74426,"height":-12.641998,"page":5},{"topLeft":{"x":164.8,"y":498.14203},"width":134.86809,"height":-12.641998,"page":5}],"sectionNumber":31,"textBefore":"3431 13 No: ","textAfter":" Fax +55","comments":[],"startOffset":484,"endOffset":571,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"d13068e99bcc2ff34f56ac3e34009468","type":"PII","value":"+274 1432 8991","reason":"Personal information found","matchedRule":23,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Table in: Rule 23/24: Redact contact information (contains \"Contact point:\")","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":364.03302,"y":335.68152},"width":59.085022,"height":-10.981506,"page":5}],"sectionNumber":29,"textBefore":"+27414328992 Telephone No: ","textAfter":" Fax number:","comments":[],"startOffset":563,"endOffset":577,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"4c608a4d397ba804d5c2dcbe57095a76","type":"PII","value":"+81 6653 44563","reason":"Personal information found","matchedRule":25,"rectangle":false,"legalBasis":"Article 39(e)(2) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Table in: Rule 23/24: Redact contact information (contains \"Contact point:\")","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":324.86502,"y":408.0815},"width":59.085022,"height":-10.981506,"page":5}],"sectionNumber":29,"textBefore":"+81 764770164 Tel: ","textAfter":" E-mail: Seriknowmobil@co.uk","comments":[],"startOffset":342,"endOffset":356,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"3153ab17735fb1480023616a2d4b1f32","type":"PII","value":"+49 2113 2311 563","reason":"Personal information found","matchedRule":25,"rectangle":false,"legalBasis":"Article 39(e)(2) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Table in: Rule 23/24: Redact contact information (contains \"Contact point:\")","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":335.98,"y":439.18152},"width":69.68704,"height":-10.981506,"page":5}],"sectionNumber":29,"textBefore":"Research Industry Phone: ","textAfter":" Fax: +49","comments":[],"startOffset":276,"endOffset":293,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"5b53b5ca19ed17ba8cd472046b7e458b","type":"PII","value":"+81 764770164","reason":"Personal information found","matchedRule":25,"rectangle":false,"legalBasis":"Article 39(e)(2) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Table in: Rule 23/24: Redact contact information (contains \"Contact point:\")","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":327.06104,"y":418.4815},"width":56.889008,"height":-10.981506,"page":5}],"sectionNumber":29,"textBefore":"2311 560 Tel.: ","textAfter":" Tel: +81","comments":[],"startOffset":323,"endOffset":336,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"e042c6782e2377a8550e970240199d3c","type":"PII","value":"+55 1221 3431 10","reason":"Personal information found","matchedRule":25,"rectangle":false,"legalBasis":"Article 39(e)(2) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Rule 23/24: Redact contact information (contains \"Contact point:\")","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":164.8,"y":580.942},"width":87.696,"height":-12.641998,"page":5}],"sectionNumber":31,"textBefore":"3431 12 Fax: ","textAfter":" E-mail: shinrorg@saopu.com.br","comments":[],"startOffset":313,"endOffset":329,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"ef878a3130faf98786f7f1c094cc6291","type":"PII","value":"Maximiliam Schmitt","reason":"Personal information found","matchedRule":23,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Table in: Rule 23/24: Redact contact information (contains \"Contact point:\")","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":341.44302,"y":356.3815},"width":74.59213,"height":-10.981506,"page":5}],"sectionNumber":29,"textBefore":"address: example@mail.com Contact: ","textAfter":" Telephone number:","comments":[],"startOffset":499,"endOffset":517,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"7b688df64aeaa8e0c5397ccce900ad8e","type":"PII","value":"example@mail.com","reason":"Personal information found","matchedRule":23,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Table in: Rule 23/24: Redact contact information (contains \"Contact point:\")","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":367.21008,"y":366.68152},"width":72.387085,"height":-10.981506,"page":5}],"sectionNumber":29,"textBefore":"maximiliamschmitt@t-online.de E-mail address: ","textAfter":" Contact: Maximiliam","comments":[],"startOffset":473,"endOffset":489,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"5fbf0854b5eb5323b00c62e3225a72d2","type":"PII","value":"+274 34223331","reason":"Personal information found","matchedRule":25,"rectangle":false,"legalBasis":"Article 39(e)(2) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Table in: Rule 23/24: Redact contact information (contains \"Contact point:\")","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":350.83902,"y":314.9815},"width":56.79901,"height":-10.981506,"page":5}],"sectionNumber":29,"textBefore":"1432 8990 Telephone: ","textAfter":" Phone No.","comments":[],"startOffset":616,"endOffset":629,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"2f429d40393e13a0a09e239d0edeb077","type":"PII","value":"Page","reason":"Personal information found","matchedRule":19,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Footer","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":100.383995,"y":69.94202},"width":23.304,"height":-12.642029,"page":5}],"sectionNumber":59,"textBefore":"This is a ","textAfter":"-Footer","comments":[],"startOffset":10,"endOffset":14,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"f3453d204608b10d7da846f4b37e63bb","type":"PII","value":"This is a special case, everything between this and the next keyword should be redacted","reason":"Personal information found","matchedRule":23,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Rule 23/24: Redact contact information (contains \"Contact point:\")","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":164.8,"y":553.34204},"width":282.74426,"height":-12.641998,"page":5},{"topLeft":{"x":164.8,"y":539.54205},"width":134.86809,"height":-12.641998,"page":5}],"sectionNumber":31,"textBefore":"E-mail: shinrorg@saopu.com.br Contact: ","textAfter":" Tel.: +55","comments":[],"startOffset":369,"endOffset":456,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"e86311e6c9d1b67b77a60cb634ede133","type":"PII","value":"maximiliamschmitt@t-online.de","reason":"Personal information found","matchedRule":23,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Table in: Rule 23/24: Redact contact information (contains \"Contact point:\")","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":336.43906,"y":377.0815},"width":116.82919,"height":-10.981506,"page":5}],"sectionNumber":29,"textBefore":"Email: maximiliamschmitt@arcor.de e-mail: ","textAfter":" E-mail address:","comments":[],"startOffset":427,"endOffset":456,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"07a7c30427db240349e35e7d404a9023","type":"PII","value":"shinrorg@saopu.com.br","reason":"Personal information found","matchedRule":23,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Rule 23/24: Redact contact information (contains \"Contact point:\")","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":164.8,"y":567.142},"width":115.38002,"height":-12.641998,"page":5}],"sectionNumber":31,"textBefore":"3431 10 E-mail: ","textAfter":" Contact: This","comments":[],"startOffset":338,"endOffset":359,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"cd44d6a63f6d16f3f0bbe645e91e303c","type":"PII","value":"+55 1221 3431 14","reason":"Personal information found","matchedRule":25,"rectangle":false,"legalBasis":"Article 39(e)(2) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Rule 23/24: Redact contact information (contains \"Contact point:\")","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":164.8,"y":484.34204},"width":87.696,"height":-12.641998,"page":5}],"sectionNumber":31,"textBefore":"be redacted Fax ","textAfter":null,"comments":[],"startOffset":576,"endOffset":592,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"bb5f81c67caad62f328729fddf91ed01","type":"PII","value":"+274 1432 8933","reason":"Personal information found","matchedRule":23,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Table in: Rule 23/24: Redact contact information (contains \"Contact point:\")","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":348.976,"y":304.5815},"width":59.085022,"height":-10.981506,"page":5}],"sectionNumber":29,"textBefore":"34223331 Phone No. ","textAfter":" Contact: 493","comments":[],"startOffset":640,"endOffset":654,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"5d5882a7a361fe926aad1c6571f8ab32","type":"PII","value":"+27414328992","reason":"Personal information found","matchedRule":23,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Table in: Rule 25/26: Redact contact information (contains \"Applicant\" as Headline\nor Text)","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":380.51205,"y":288.38153},"width":54.593994,"height":-10.981506,"page":6}],"sectionNumber":33,"textBefore":"Schmitt Telephone number: ","textAfter":" Telephone No:","comments":[],"startOffset":536,"endOffset":548,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"c9edcd1ee08ba4857bce5122fdb9ede0","type":"PII","value":"+82 122 341881","reason":"Personal information found","matchedRule":25,"rectangle":false,"legalBasis":"Article 39(e)(2) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Rule 25/26: Redact contact information (contains \"Applicant\" as Headline\nor Text)","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":164.8,"y":468.14203},"width":78.696,"height":-12.641998,"page":6}],"sectionNumber":35,"textBefore":"be redacted Tel.: ","textAfter":" No: This","comments":[],"startOffset":487,"endOffset":501,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"8d127621a973c216cc2f682ced59348c","type":"PII","value":"This is a special case, everything between this and the next keyword should be redacted","reason":"Personal information found","matchedRule":23,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Rule 25/26: Redact contact information (contains \"Applicant\" as Headline\nor Text)","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":164.8,"y":495.74203},"width":282.74426,"height":-12.641998,"page":6},{"topLeft":{"x":164.8,"y":481.94202},"width":134.86809,"height":-12.641998,"page":6}],"sectionNumber":35,"textBefore":"E-mail: food-industry@korea.com Contact: ","textAfter":" Tel.: +82","comments":[],"startOffset":393,"endOffset":480,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"205b6a821d3a98f860be1f1b5b3966b1","type":"PII","value":"maximiliamschmitt@arcor.de","reason":"Personal information found","matchedRule":23,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Table in: Rule 25/26: Redact contact information (contains \"Applicant\" as Headline\nor Text)","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":334.94504,"y":329.7815},"width":106.83017,"height":-10.981506,"page":6}],"sectionNumber":33,"textBefore":"E-mail: Seriknowmobil@co.uk Email: ","textAfter":" e-mail: maximiliamschmitt@t-online.de","comments":[],"startOffset":392,"endOffset":418,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"21c5ef2b79a90118b01d766d0177a570","type":"PII","value":"Seriknowmobil@co.uk","reason":"Personal information found","matchedRule":23,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Table in: Rule 25/26: Redact contact information (contains \"Applicant\" as Headline\nor Text)","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":337.94205,"y":340.18152},"width":83.52905,"height":-10.981506,"page":6}],"sectionNumber":33,"textBefore":"6653 44563 E-mail: ","textAfter":" Email: maximiliamschmitt@arcor.de","comments":[],"startOffset":365,"endOffset":384,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"a1c4bee8f2c7ddc33d1269c31f199f34","type":"PII","value":"food-industry@korea.com","reason":"Personal information found","matchedRule":23,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Rule 25/26: Redact contact information (contains \"Applicant\" as Headline\nor Text)","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":164.8,"y":509.54202},"width":126.60005,"height":-12.641998,"page":6}],"sectionNumber":35,"textBefore":"122 34180 E-mail: ","textAfter":" Contact: This","comments":[],"startOffset":360,"endOffset":383,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"2206b5d18ef3649095d6a8285e8ae510","type":"PII","value":"Riddley Scott","reason":"Personal information found","matchedRule":23,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Rule 25/26: Redact contact information (contains \"Applicant\" as Headline\nor Text)","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":164.8,"y":592.34204},"width":65.59201,"height":-12.641998,"page":6}],"sectionNumber":35,"textBefore":"Name: Contact point: ","textAfter":" Address: 1921","comments":[],"startOffset":236,"endOffset":249,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"baac21659a54cf4b88fecfe9488afe23","type":"PII","value":"Page","reason":"Personal information found","matchedRule":19,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Footer","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":100.383995,"y":69.94202},"width":23.304,"height":-12.642029,"page":6}],"sectionNumber":60,"textBefore":"This is a ","textAfter":"-Footer","comments":[],"startOffset":10,"endOffset":14,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"1b4eef48b210325f06cf01d94713dfd7","type":"PII","value":"+274 1432 8991","reason":"Personal information found","matchedRule":23,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Table in: Rule 25/26: Redact contact information (contains \"Applicant\" as Headline\nor Text)","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":364.03302,"y":278.08148},"width":59.085022,"height":-10.981506,"page":6}],"sectionNumber":33,"textBefore":"+27414328992 Telephone No: ","textAfter":" Fax number:","comments":[],"startOffset":563,"endOffset":577,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"fd1d606f56794e69fbff6cafdd9154cf","type":"PII","value":"+49 2113 2311 560","reason":"Personal information found","matchedRule":25,"rectangle":false,"legalBasis":"Article 39(e)(2) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Table in: Rule 25/26: Redact contact information (contains \"Applicant\" as Headline\nor Text)","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":326.98,"y":371.18152},"width":69.68704,"height":-10.981506,"page":6}],"sectionNumber":33,"textBefore":"2311 563 Fax: ","textAfter":" Tel.: +81","comments":[],"startOffset":299,"endOffset":316,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"ae1e4fbff581a186835d36314ee9f0ed","type":"PII","value":"493 1223 4592","reason":"Personal information found","matchedRule":23,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Table in: Rule 25/26: Redact contact information (contains \"Applicant\" as Headline\nor Text)","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":341.44302,"y":236.68152},"width":53.991028,"height":-10.981506,"page":6}],"sectionNumber":33,"textBefore":"1432 8933 Contact: ","textAfter":" European contact:","comments":[],"startOffset":664,"endOffset":677,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"ae077687502a3c885da266009553a68e","type":"PII","value":"+81 6653 44563","reason":"Personal information found","matchedRule":25,"rectangle":false,"legalBasis":"Article 39(e)(2) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Table in: Rule 25/26: Redact contact information (contains \"Applicant\" as Headline\nor Text)","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":324.86502,"y":350.4815},"width":59.085022,"height":-10.981506,"page":6}],"sectionNumber":33,"textBefore":"+81 764770164 Tel: ","textAfter":" E-mail: Seriknowmobil@co.uk","comments":[],"startOffset":342,"endOffset":356,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"742e2158a0b7b60c902cc7f806449d77","type":"PII","value":"+49 2113 2311 563","reason":"Personal information found","matchedRule":25,"rectangle":false,"legalBasis":"Article 39(e)(2) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Table in: Rule 25/26: Redact contact information (contains \"Applicant\" as Headline\nor Text)","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":335.98,"y":381.5815},"width":69.68704,"height":-10.981506,"page":6}],"sectionNumber":33,"textBefore":"Research Industry Phone: ","textAfter":" Fax: +49","comments":[],"startOffset":276,"endOffset":293,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"4be04321c91b114817b4657c97eddac5","type":"PII","value":"+81 764770164","reason":"Personal information found","matchedRule":25,"rectangle":false,"legalBasis":"Article 39(e)(2) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Table in: Rule 25/26: Redact contact information (contains \"Applicant\" as Headline\nor Text)","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":327.06104,"y":360.8815},"width":56.889008,"height":-10.981506,"page":6}],"sectionNumber":33,"textBefore":"2311 560 Tel.: ","textAfter":" Tel: +81","comments":[],"startOffset":323,"endOffset":336,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"5a4aabf909f10663376805a573efe6f9","type":"PII","value":"+274 1432 8990","reason":"Personal information found","matchedRule":23,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Table in: Rule 25/26: Redact contact information (contains \"Applicant\" as Headline\nor Text)","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":356.75204,"y":267.68152},"width":58.995026,"height":-10.981506,"page":6}],"sectionNumber":33,"textBefore":"8991 Fax number: ","textAfter":" Telephone: +274","comments":[],"startOffset":590,"endOffset":604,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"2d8809c60064fc8e389a92409380159d","type":"PII","value":"Page","reason":"Personal information found","matchedRule":19,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Header","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":100.383995,"y":734.742},"width":23.304,"height":-12.641998,"page":6}],"sectionNumber":51,"textBefore":"This is a ","textAfter":"-Header","comments":[],"startOffset":10,"endOffset":14,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"d3a8dd3a566cf73b2de375f6476d9270","type":"PII","value":"+82 122 341882","reason":"Personal information found","matchedRule":25,"rectangle":false,"legalBasis":"Article 39(e)(2) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Rule 25/26: Redact contact information (contains \"Applicant\" as Headline\nor Text)","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":164.8,"y":426.74203},"width":78.696,"height":-12.641998,"page":6}],"sectionNumber":35,"textBefore":"be redacted Fax ","textAfter":" Soylent Corporation","comments":[],"startOffset":598,"endOffset":612,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"5bdc1208d628297939d354f6f12ec1e4","type":"PII","value":"Emilia Lockhart","reason":"Personal information found","matchedRule":23,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Table in: Rule 25/26: Redact contact information (contains \"Applicant\" as Headline\nor Text)","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":382.0601,"y":215.9815},"width":58.69806,"height":-10.981506,"page":6}],"sectionNumber":33,"textBefore":"Institute Alternative contact: ","textAfter":" Alternative contact:","comments":[],"startOffset":744,"endOffset":759,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"1981e616749716478839f1591021d8d6","type":"PII","value":"+274 34223331","reason":"Personal information found","matchedRule":25,"rectangle":false,"legalBasis":"Article 39(e)(2) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Table in: Rule 25/26: Redact contact information (contains \"Applicant\" as Headline\nor Text)","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":350.83902,"y":257.38153},"width":56.79901,"height":-10.981506,"page":6}],"sectionNumber":33,"textBefore":"1432 8990 Telephone: ","textAfter":" Phone No.","comments":[],"startOffset":616,"endOffset":629,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"625a9b1a139f8e5f9061f25dd6062e25","type":"PII","value":"+274 1432 8933","reason":"Personal information found","matchedRule":23,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Table in: Rule 25/26: Redact contact information (contains \"Applicant\" as Headline\nor Text)","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":348.976,"y":246.9815},"width":59.085022,"height":-10.981506,"page":6}],"sectionNumber":33,"textBefore":"34223331 Phone No. ","textAfter":" Contact: 493","comments":[],"startOffset":640,"endOffset":654,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"c658bcdcbcd8cf678b79cc715c024c70","type":"PII","value":"+82 122 34180","reason":"Personal information found","matchedRule":25,"rectangle":false,"legalBasis":"Article 39(e)(2) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Rule 25/26: Redact contact information (contains \"Applicant\" as Headline\nor Text)","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":164.8,"y":523.34204},"width":72.696,"height":-12.641998,"page":6}],"sectionNumber":35,"textBefore":"122 34188 Fax: ","textAfter":" E-mail: food-industry@korea.com","comments":[],"startOffset":338,"endOffset":351,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"e6b4801cb6086d04ed35dea9308461bd","type":"PII","value":"European Central Institute","reason":"Personal information found","matchedRule":23,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Table in: Rule 25/26: Redact contact information (contains \"Applicant\" as Headline\nor Text)","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":376.09305,"y":226.2815},"width":94.86011,"height":-10.981506,"page":6}],"sectionNumber":33,"textBefore":"4592 European contact: ","textAfter":" Alternative contact:","comments":[],"startOffset":696,"endOffset":722,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"aef1c65f60f29b4bd9cf459baae4c0fc","type":"PII","value":"Central Research Industry","reason":"Personal information found","matchedRule":23,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Table in: Rule 25/26: Redact contact information (contains \"Applicant\" as Headline\nor Text)","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":362.22406,"y":391.8815},"width":93.77109,"height":-10.981506,"page":6}],"sectionNumber":33,"textBefore":"Contact point: ","textAfter":" Phone: +49","comments":[],"startOffset":243,"endOffset":268,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"302fb6b2a4f2381a6916668abc5ea208","type":"PII","value":"Maximiliam Schmitt","reason":"Personal information found","matchedRule":23,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Table in: Rule 25/26: Redact contact information (contains \"Applicant\" as Headline\nor Text)","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":341.44302,"y":298.7815},"width":74.59213,"height":-10.981506,"page":6}],"sectionNumber":33,"textBefore":"address: example@mail.com Contact: ","textAfter":" Telephone number:","comments":[],"startOffset":499,"endOffset":517,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"c2d6b072d1f09939693e31c9a7870934","type":"PII","value":"example@mail.com","reason":"Personal information found","matchedRule":23,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Table in: Rule 25/26: Redact contact information (contains \"Applicant\" as Headline\nor Text)","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":367.21008,"y":309.0815},"width":72.387085,"height":-10.981506,"page":6}],"sectionNumber":33,"textBefore":"maximiliamschmitt@t-online.de E-mail address: ","textAfter":" Contact: Maximiliam","comments":[],"startOffset":473,"endOffset":489,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"32e8c40a25a6cdcf9ddd9fb41c3dc8c8","type":"PII","value":"+82 122 34188","reason":"Personal information found","matchedRule":25,"rectangle":false,"legalBasis":"Article 39(e)(2) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Rule 25/26: Redact contact information (contains \"Applicant\" as Headline\nor Text)","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":164.8,"y":537.142},"width":72.696,"height":-12.641998,"page":6}],"sectionNumber":35,"textBefore":"United States Phone: ","textAfter":" Fax: +82","comments":[],"startOffset":319,"endOffset":332,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"9fe9630ad55ae2cf0a480523bacb9291","type":"PII","value":"maximiliamschmitt@t-online.de","reason":"Personal information found","matchedRule":23,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Table in: Rule 25/26: Redact contact information (contains \"Applicant\" as Headline\nor Text)","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":336.43906,"y":319.4815},"width":116.82919,"height":-10.981506,"page":6}],"sectionNumber":33,"textBefore":"Email: maximiliamschmitt@arcor.de e-mail: ","textAfter":" E-mail address:","comments":[],"startOffset":427,"endOffset":456,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"f871e23bc3e9842c0fc966cd28506588","type":"PII","value":"This is a special case, everything between this and the next keyword should be redacted","reason":"Personal information found","matchedRule":23,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Rule 25/26: Redact contact information (contains \"Applicant\" as Headline\nor Text)","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":164.8,"y":454.34204},"width":282.74426,"height":-12.641998,"page":6},{"topLeft":{"x":164.8,"y":440.54202},"width":134.86809,"height":-12.641998,"page":6}],"sectionNumber":35,"textBefore":"122 341881 No: ","textAfter":" Fax +82","comments":[],"startOffset":506,"endOffset":593,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"f163afe507f0eca1cde5fa049a6c870e","type":"PII","value":"Page","reason":"Personal information found","matchedRule":19,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Header","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":100.383995,"y":734.742},"width":23.304,"height":-12.641998,"page":7}],"sectionNumber":52,"textBefore":"This is a ","textAfter":"-Header","comments":[],"startOffset":10,"endOffset":14,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"3100403a071d59b1232a6af2a629eb36","type":"PII","value":"Dr. Alan Grant","reason":"Author found","matchedRule":27,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Rule 29/30: If \"Authors:\" and \"completion dates\", then redact everything between","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":200.8,"y":351.44202},"width":70.89604,"height":-12.641998,"page":7}],"sectionNumber":38,"textBefore":"Study Report___ AUTHOR(S): ","textAfter":" COMPLETION DATE:","comments":[],"startOffset":179,"endOffset":193,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"093ce96a4bcb6727b53604b8babe447b","type":"PII","value":"+82 122 3418800","reason":"Personal information found","matchedRule":25,"rectangle":false,"legalBasis":"Article 39(e)(2) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Producer of the plant production","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":164.8,"y":541.742},"width":84.696,"height":-12.641998,"page":7}],"sectionNumber":37,"textBefore":"United States Phone: ","textAfter":" Fax: +82","comments":[],"startOffset":137,"endOffset":152,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"2c4dd52bc76fd344ace84ae6847b3a2e","type":"PII","value":"Page","reason":"Personal information found","matchedRule":19,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Footer","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":100.383995,"y":69.94202},"width":23.304,"height":-12.642029,"page":7}],"sectionNumber":61,"textBefore":"This is a ","textAfter":"-Footer","comments":[],"startOffset":10,"endOffset":14,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"d38ae3ea2c27b913f64b2bfba2dd9a5e","type":"PII","value":"Dr. Alan Grant","reason":"AUTHOR(S) was found","matchedRule":29,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Rule 31/32: If “Authors:” and “Study Completion Dates”, then redact everything between","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":236.8,"y":202.54205},"width":70.89604,"height":-12.642029,"page":7}],"sectionNumber":39,"textBefore":"Study Report___ AUTHOR(S): ","textAfter":" STUDY COMPLETION","comments":[],"startOffset":185,"endOffset":199,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"311811bb65faed5efcea63e383e3a2c0","type":"PII","value":"Riddley Scott","reason":"Personal information found","matchedRule":23,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Producer of the plant production","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":164.8,"y":596.942},"width":65.59201,"height":-12.641998,"page":7}],"sectionNumber":37,"textBefore":"Name: Contact point: ","textAfter":" Address: 1921","comments":[],"startOffset":54,"endOffset":67,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"cb37681bb320742607952d991de68112","type":"PII","value":"This is a special case, everything between this and the next keyword should be redacted","reason":"Personal information found","matchedRule":23,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Producer of the plant production","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":164.8,"y":500.34204},"width":282.74426,"height":-12.641998,"page":7},{"topLeft":{"x":164.8,"y":486.54202},"width":134.86809,"height":-12.641998,"page":7}],"sectionNumber":37,"textBefore":"E-mail: pharma-industry@korea.com No: ","textAfter":" Fax +82","comments":[],"startOffset":212,"endOffset":299,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"ed6bb0ba9e6af7a7c099290445284253","type":"PII","value":"+82 122 34188202","reason":"Personal information found","matchedRule":25,"rectangle":false,"legalBasis":"Article 39(e)(2) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Producer of the plant production","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":164.8,"y":472.74203},"width":90.696,"height":-12.641998,"page":7}],"sectionNumber":37,"textBefore":"be redacted Fax ","textAfter":" Soylent Corporation","comments":[],"startOffset":304,"endOffset":320,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"bc2149a4d01684aa641113b503791d7f","type":"PII","value":"pharma-industry@korea.com","reason":"Personal information found","matchedRule":23,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Producer of the plant production","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":164.8,"y":514.142},"width":140.59209,"height":-12.641998,"page":7}],"sectionNumber":37,"textBefore":"122 3418001 E-mail: ","textAfter":" No: This","comments":[],"startOffset":182,"endOffset":207,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"ef4b197ffcb3a9c1b997fd1b8bae05af","type":"PII","value":"+82 122 3418001","reason":"Personal information found","matchedRule":25,"rectangle":false,"legalBasis":"Article 39(e)(2) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Producer of the plant production","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":164.8,"y":527.942},"width":84.696,"height":-12.641998,"page":7}],"sectionNumber":37,"textBefore":"122 3418800 Fax: ","textAfter":" E-mail: pharma-industry@korea.com","comments":[],"startOffset":158,"endOffset":173,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"3b9c4170922e41e676ec48897cce5b37","type":"hint_only","value":"Purity:","reason":null,"matchedRule":0,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 39: Purity Hint","color":[0.67058825,0.7529412,0.76862746],"positions":[{"topLeft":{"x":56.8,"y":313.14203},"width":32.603992,"height":-12.641998,"page":8}],"sectionNumber":42,"textBefore":null,"textAfter":null,"comments":[],"startOffset":145,"endOffset":152,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":true,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"fc2f594f0210f378c9d650259390154c","type":"hint_only","value":"Purity","reason":null,"matchedRule":0,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 39: Purity Hint","color":[0.67058825,0.7529412,0.76862746],"positions":[{"topLeft":{"x":56.8,"y":216.54205},"width":28.595997,"height":-12.642029,"page":8}],"sectionNumber":42,"textBefore":null,"textAfter":null,"comments":[],"startOffset":911,"endOffset":917,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":true,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"e167e11306c648b1a070a9413aee440d","type":"CBI_address","value":"Umbrella Corporation","reason":"Performing laboratory found for non vertebrate study","matchedRule":31,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 33/34: If \"Performing Lab\" and \"Lab Project ID\", then Redact everything between","color":[0.8,0.8,0.8],"positions":[{"topLeft":{"x":236.8,"y":633.84204},"width":106.16414,"height":-12.641998,"page":8}],"sectionNumber":40,"textBefore":"Report___ PERFORMING LABORATORY: ","textAfter":" LABORATORY PROJECT","comments":[],"startOffset":197,"endOffset":217,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"17c8ff8d8b187247265974a95e546417","type":"hint_only","value":"Purity:","reason":null,"matchedRule":0,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 39: Purity Hint","color":[0.67058825,0.7529412,0.76862746],"positions":[{"topLeft":{"x":56.8,"y":423.54202},"width":32.603992,"height":-12.641998,"page":8}],"sectionNumber":42,"textBefore":null,"textAfter":null,"comments":[],"startOffset":81,"endOffset":88,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":true,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"5c7d37dc68c2e430fd385c843685de09","type":"hint_only","value":"Purity:","reason":null,"matchedRule":0,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 39: Purity Hint","color":[0.67058825,0.7529412,0.76862746],"positions":[{"topLeft":{"x":56.8,"y":354.54202},"width":32.603992,"height":-12.641998,"page":8}],"sectionNumber":42,"textBefore":null,"textAfter":null,"comments":[],"startOffset":121,"endOffset":128,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":true,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"5f615a441c06436e5969a721c7e91fce","type":"hint_only","value":"Purity","reason":null,"matchedRule":0,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 39: Purity Hint","color":[0.67058825,0.7529412,0.76862746],"positions":[{"topLeft":{"x":115.6,"y":484.0678},"width":39.91709,"height":-13.867798,"page":8}],"sectionNumber":42,"textBefore":null,"textAfter":null,"comments":[],"startOffset":9,"endOffset":15,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":true,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"02702fc1eb5e537743040bc393a57d15","type":"hint_only","value":"Purity:","reason":null,"matchedRule":0,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 39: Purity Hint","color":[0.67058825,0.7529412,0.76862746],"positions":[{"topLeft":{"x":56.8,"y":340.74203},"width":32.603992,"height":-12.641998,"page":8}],"sectionNumber":42,"textBefore":null,"textAfter":null,"comments":[],"startOffset":129,"endOffset":136,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":true,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"d1d28b8aa21c2fa5feed61fef21711ce","type":"hint_only","value":"Purity:","reason":null,"matchedRule":0,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 39: Purity Hint","color":[0.67058825,0.7529412,0.76862746],"positions":[{"topLeft":{"x":56.8,"y":271.742},"width":32.603992,"height":-12.642029,"page":8}],"sectionNumber":42,"textBefore":null,"textAfter":null,"comments":[],"startOffset":169,"endOffset":176,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":true,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"9805999225048a7f792d0c10b2ea5e9a","type":"hint_only","value":"Purity:","reason":null,"matchedRule":0,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 39: Purity Hint","color":[0.67058825,0.7529412,0.76862746],"positions":[{"topLeft":{"x":56.8,"y":382.14203},"width":32.603992,"height":-12.641998,"page":8}],"sectionNumber":42,"textBefore":null,"textAfter":null,"comments":[],"startOffset":105,"endOffset":112,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":true,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"67508a836a298ca3b7813e8add65f5e0","type":"hint_only","value":"Purity:","reason":null,"matchedRule":0,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 39: Purity Hint","color":[0.67058825,0.7529412,0.76862746],"positions":[{"topLeft":{"x":56.8,"y":257.94202},"width":32.603992,"height":-12.642029,"page":8}],"sectionNumber":42,"textBefore":null,"textAfter":null,"comments":[],"startOffset":177,"endOffset":184,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":true,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"70c6afb363ae2bc5a7dffb5f41fca5d0","type":"hint_only","value":"Purity:","reason":null,"matchedRule":0,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 39: Purity Hint","color":[0.67058825,0.7529412,0.76862746],"positions":[{"topLeft":{"x":56.8,"y":368.34204},"width":32.603992,"height":-12.641998,"page":8}],"sectionNumber":42,"textBefore":null,"textAfter":null,"comments":[],"startOffset":113,"endOffset":120,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":true,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"f138fbca1ce8390d825310909a0f33f8","type":"hint_only","value":"Purity:","reason":null,"matchedRule":0,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 39: Purity Hint","color":[0.67058825,0.7529412,0.76862746],"positions":[{"topLeft":{"x":56.8,"y":216.54205},"width":31.919994,"height":-12.642029,"page":8}],"sectionNumber":42,"textBefore":null,"textAfter":null,"comments":[],"startOffset":939,"endOffset":946,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":true,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"d94bf1b70cfcb05ecb00994cc5abc890","type":"PII","value":"Page","reason":"Personal information found","matchedRule":19,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Footer","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":100.383995,"y":69.94202},"width":23.304,"height":-12.642029,"page":8}],"sectionNumber":62,"textBefore":"This is a ","textAfter":"-Footer","comments":[],"startOffset":10,"endOffset":14,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"f784db38199421e8e4efaa3760158a48","type":"hint_only","value":"Purity:","reason":null,"matchedRule":0,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 39: Purity Hint","color":[0.67058825,0.7529412,0.76862746],"positions":[{"topLeft":{"x":56.8,"y":299.34204},"width":32.603992,"height":-12.642029,"page":8}],"sectionNumber":42,"textBefore":null,"textAfter":null,"comments":[],"startOffset":153,"endOffset":160,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":true,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"52f7f3d787b3bfd33da99c5b88a8f7f1","type":"hint_only","value":"purity","reason":null,"matchedRule":0,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 39: Purity Hint","color":[0.67058825,0.7529412,0.76862746],"positions":[{"topLeft":{"x":56.8,"y":409.74203},"width":29.279995,"height":-12.641998,"page":8}],"sectionNumber":42,"textBefore":null,"textAfter":null,"comments":[],"startOffset":967,"endOffset":973,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":true,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"93526b30f5b480d63053e906a5cd41c7","type":"hint_only","value":"Purity:","reason":null,"matchedRule":0,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 39: Purity Hint","color":[0.67058825,0.7529412,0.76862746],"positions":[{"topLeft":{"x":56.8,"y":409.74203},"width":32.603992,"height":-12.641998,"page":8}],"sectionNumber":42,"textBefore":null,"textAfter":null,"comments":[],"startOffset":89,"endOffset":96,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":true,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"af1ea16a7b8490984fb2b214af361a37","type":"hint_only","value":"Purity:","reason":null,"matchedRule":0,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 39: Purity Hint","color":[0.67058825,0.7529412,0.76862746],"positions":[{"topLeft":{"x":56.8,"y":285.54205},"width":32.603992,"height":-12.642029,"page":8}],"sectionNumber":42,"textBefore":null,"textAfter":null,"comments":[],"startOffset":161,"endOffset":168,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":true,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"161c4e3da3f995172904dc30843a60ac","type":"PII","value":"Page","reason":"Personal information found","matchedRule":19,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Header","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":100.383995,"y":734.742},"width":23.304,"height":-12.641998,"page":8}],"sectionNumber":53,"textBefore":"This is a ","textAfter":"-Header","comments":[],"startOffset":10,"endOffset":14,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"67afe24c7ea99e2632ac20f9bf52d3e0","type":"hint_only","value":"Purity:","reason":null,"matchedRule":0,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 39: Purity Hint","color":[0.67058825,0.7529412,0.76862746],"positions":[{"topLeft":{"x":56.8,"y":395.94202},"width":32.603992,"height":-12.641998,"page":8}],"sectionNumber":42,"textBefore":null,"textAfter":null,"comments":[],"startOffset":97,"endOffset":104,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":true,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"d5efc15fc3f6f837256f9a8d57abfd34","type":"hint_only","value":"Purity:","reason":null,"matchedRule":0,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 39: Purity Hint","color":[0.67058825,0.7529412,0.76862746],"positions":[{"topLeft":{"x":56.8,"y":326.94202},"width":32.603992,"height":-12.641998,"page":8}],"sectionNumber":42,"textBefore":null,"textAfter":null,"comments":[],"startOffset":137,"endOffset":144,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":true,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"6fd49ce3f10affe57d24f67f206a4f10","type":"hint_only","value":"Purity","reason":null,"matchedRule":0,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 39: Purity Hint","color":[0.67058825,0.7529412,0.76862746],"positions":[{"topLeft":{"x":75.4,"y":463.43497},"width":24.909988,"height":-11.535004,"page":8}],"sectionNumber":42,"textBefore":null,"textAfter":null,"comments":[],"startOffset":25,"endOffset":31,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":true,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"204ef9a3c762a1283d5ef83c6c0b3410","type":"hint_only","value":"Purity:","reason":null,"matchedRule":0,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 39: Purity Hint","color":[0.67058825,0.7529412,0.76862746],"positions":[{"topLeft":{"x":56.8,"y":230.34204},"width":31.919994,"height":-12.642029,"page":8}],"sectionNumber":42,"textBefore":null,"textAfter":null,"comments":[],"startOffset":877,"endOffset":884,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":true,"falsePositive":false,"image":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"688b8e499afb958699834482b6c38323","type":"PII","value":"Page","reason":"Personal information found","matchedRule":19,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Header","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":100.383995,"y":734.742},"width":23.304,"height":-12.641998,"page":9}],"sectionNumber":54,"textBefore":"This is a ","textAfter":"-Header","comments":[],"startOffset":10,"endOffset":14,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false},{"id":"8fafcbefac14ac6b258d4ee07c7a0954","type":"PII","value":"Page","reason":"Personal information found","matchedRule":19,"rectangle":false,"legalBasis":"Article 39(e)(3) of Regulation (EC) No 178/2002","imported":false,"redacted":true,"section":"Footer","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":100.383995,"y":69.94202},"width":23.304,"height":-12.642029,"page":9}],"sectionNumber":63,"textBefore":"This is a ","textAfter":"-Footer","comments":[],"startOffset":10,"endOffset":14,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2022-10-05T15:31:55.0815868+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"localManualRedaction":false,"recommendation":false,"hint":false,"falsePositive":false,"image":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"manuallyRemoved":false}],"legalBasis":[],"dictionaryVersion":0,"dossierDictionaryVersion":0,"rulesVersion":0,"legalBasisVersion":0}
\ No newline at end of file
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/RulesTest/RuleTestDocument.pdf b/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/RulesTest/RuleTestDocument.pdf
new file mode 100644
index 00000000..a5712b56
Binary files /dev/null and b/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/RulesTest/RuleTestDocument.pdf differ
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/cv_service_empty_response.json b/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/cv_service_empty_response.json
new file mode 100644
index 00000000..d7f02e81
--- /dev/null
+++ b/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/cv_service_empty_response.json
@@ -0,0 +1,8 @@
+{
+ "dossierId": "123",
+ "fileId": "123",
+ "operation": "table",
+ "targetFileExtension": "ORIGIN.pdf.gz",
+ "responseFileExtension": "TABLES.json.gz",
+ "data": []
+}
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/cv_service_response_for_RuleTestDocument.json b/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/cv_service_response_for_RuleTestDocument.json
new file mode 100644
index 00000000..f20237f7
--- /dev/null
+++ b/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/cv_service_response_for_RuleTestDocument.json
@@ -0,0 +1,102 @@
+{
+ "dossierId": "123",
+ "fileId": "123",
+ "operation": "table",
+ "targetFileExtension": "ORIGIN.pdf.gz",
+ "responseFileExtension": "TABLES.json.gz",
+ "data": [{
+ "pageInfo": {
+ "number": 2,
+ "rotation": 0,
+ "width": 612.0,
+ "height": 792.0
+ },
+ "tableCells": [{
+ "x0": 57.24,
+ "y0": 130.68,
+ "x1": 200.88,
+ "y1": 147.96,
+ "width": 143.64,
+ "height": 17.28
+ }, {
+ "x0": 201.24,
+ "y0": 130.68,
+ "x1": 455.76,
+ "y1": 147.96,
+ "width": 254.51999999999998,
+ "height": 17.28
+ }, {
+ "x0": 456.12,
+ "y0": 130.68,
+ "x1": 555.84,
+ "y1": 147.96,
+ "width": 99.72000000000003,
+ "height": 17.28
+ }, {
+ "x0": 57.24,
+ "y0": 148.32,
+ "x1": 200.88,
+ "y1": 177.48,
+ "width": 143.64,
+ "height": 29.159999999999997
+ }, {
+ "x0": 201.24,
+ "y0": 148.32,
+ "x1": 455.76,
+ "y1": 177.48,
+ "width": 254.51999999999998,
+ "height": 29.159999999999997
+ }, {
+ "x0": 456.12,
+ "y0": 148.32,
+ "x1": 555.84,
+ "y1": 177.48,
+ "width": 99.72000000000003,
+ "height": 29.159999999999997
+ }, {
+ "x0": 57.24,
+ "y0": 177.84,
+ "x1": 200.88,
+ "y1": 207.35999999999999,
+ "width": 143.64,
+ "height": 29.519999999999982
+ }, {
+ "x0": 201.24,
+ "y0": 177.84,
+ "x1": 455.76,
+ "y1": 207.35999999999999,
+ "width": 254.51999999999998,
+ "height": 29.519999999999982
+ }, {
+ "x0": 456.12,
+ "y0": 177.84,
+ "x1": 555.84,
+ "y1": 207.35999999999999,
+ "width": 99.72000000000003,
+ "height": 29.519999999999982
+ }, {
+ "x0": 57.24,
+ "y0": 207.71999999999997,
+ "x1": 200.88,
+ "y1": 237.24,
+ "width": 143.64,
+ "height": 29.52000000000004
+ }, {
+ "x0": 201.24,
+ "y0": 207.71999999999997,
+ "x1": 455.76,
+ "y1": 237.24,
+ "width": 254.51999999999998,
+ "height": 29.52000000000004
+ }, {
+ "x0": 456.12,
+ "y0": 207.71999999999997,
+ "x1": 555.84,
+ "y1": 237.24,
+ "width": 99.72000000000003,
+ "height": 29.52000000000004
+ }
+ ]
+ }
+ ]
+}