diff --git a/redaction-service-v1/redaction-service-api-v1/src/main/java/com/iqser/red/service/redaction/v1/model/MigrationRequest.java b/redaction-service-v1/redaction-service-api-v1/src/main/java/com/iqser/red/service/redaction/v1/model/MigrationRequest.java new file mode 100644 index 00000000..b312daac --- /dev/null +++ b/redaction-service-v1/redaction-service-api-v1/src/main/java/com/iqser/red/service/redaction/v1/model/MigrationRequest.java @@ -0,0 +1,17 @@ +package com.iqser.red.service.redaction.v1.model; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class MigrationRequest { + + String dossierId; + String fileId; + +} diff --git a/redaction-service-v1/redaction-service-api-v1/src/main/java/com/iqser/red/service/redaction/v1/model/MigrationResponse.java b/redaction-service-v1/redaction-service-api-v1/src/main/java/com/iqser/red/service/redaction/v1/model/MigrationResponse.java new file mode 100644 index 00000000..e0ea3c98 --- /dev/null +++ b/redaction-service-v1/redaction-service-api-v1/src/main/java/com/iqser/red/service/redaction/v1/model/MigrationResponse.java @@ -0,0 +1,17 @@ +package com.iqser.red.service.redaction.v1.model; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class MigrationResponse { + + String dossierId; + String fileId; + +} diff --git a/redaction-service-v1/redaction-service-api-v1/src/main/java/com/iqser/red/service/redaction/v1/model/QueueNames.java b/redaction-service-v1/redaction-service-api-v1/src/main/java/com/iqser/red/service/redaction/v1/model/QueueNames.java new file mode 100644 index 00000000..c13e2085 --- /dev/null +++ b/redaction-service-v1/redaction-service-api-v1/src/main/java/com/iqser/red/service/redaction/v1/model/QueueNames.java @@ -0,0 +1,14 @@ +package com.iqser.red.service.redaction.v1.model; + +public class QueueNames { + + public static final String REDACTION_QUEUE = "redactionQueue"; + public static final String REDACTION_DQL = "redactionDQL"; + + public static final String REDACTION_PRIORITY_QUEUE = "redactionPriorityQueue"; + + public static final String MIGRATION_QUEUE = "migrationQueue"; + public static final String MIGRATION_DLQ = "migrationDLQ"; + public static final String MIGRATION_RESPONSE_QUEUE = "migrationResponseQueue"; + +} diff --git a/redaction-service-v1/redaction-service-server-v1/build.gradle.kts b/redaction-service-v1/redaction-service-server-v1/build.gradle.kts index cc7bcb4c..2e3b8bba 100644 --- a/redaction-service-v1/redaction-service-server-v1/build.gradle.kts +++ b/redaction-service-v1/redaction-service-server-v1/build.gradle.kts @@ -16,7 +16,7 @@ val layoutParserVersion = "0.74.0" val jacksonVersion = "2.15.2" val droolsVersion = "9.44.0.Final" val pdfBoxVersion = "3.0.0" -val persistenceServiceVersion = "2.229.0" +val persistenceServiceVersion = "2.231.0" configurations { all { diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/ManualEntity.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/ManualEntity.java index a080238c..c4dba56f 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/ManualEntity.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/ManualEntity.java @@ -4,10 +4,9 @@ import java.util.List; import java.util.PriorityQueue; import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualRedactionEntry; -import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.RedactionLogEntry; import com.iqser.red.service.redaction.v1.server.model.document.TextRange; -import com.iqser.red.service.redaction.v1.server.model.document.entity.IEntity; import com.iqser.red.service.redaction.v1.server.model.document.entity.EntityType; +import com.iqser.red.service.redaction.v1.server.model.document.entity.IEntity; import com.iqser.red.service.redaction.v1.server.model.document.entity.ManualChangeOverwrite; import com.iqser.red.service.redaction.v1.server.model.document.entity.MatchedRule; @@ -44,39 +43,6 @@ public class ManualEntity implements IEntity { ManualChangeOverwrite manualOverwrite = new ManualChangeOverwrite(); - public static ManualEntity fromRedactionLogEntry(RedactionLogEntry redactionLogEntry) { - - String ruleIdentifier = redactionLogEntry.getType() + "." + redactionLogEntry.getMatchedRule() + ".0"; - List rectangleWithPages = redactionLogEntry.getPositions().stream().map(RectangleWithPage::fromRedactionLogRectangle).toList(); - return ManualEntity.builder() - .id(redactionLogEntry.getId()) - .value(redactionLogEntry.getValue()) - .entityPosition(rectangleWithPages) - .ruleIdentifier(ruleIdentifier) - .reason(redactionLogEntry.getReason()) - .legalBasis(redactionLogEntry.getLegalBasis()) - .type(redactionLogEntry.getType()) - .section(redactionLogEntry.getSection()).entityType(getEntityType(redactionLogEntry)) - .applied(redactionLogEntry.isRedacted()) - .isDictionaryEntry(redactionLogEntry.isDictionaryEntry()) - .isDossierDictionaryEntry(redactionLogEntry.isDossierDictionaryEntry()) - .rectangle(redactionLogEntry.isRectangle()) - .build(); - } - - - private static EntityType getEntityType(RedactionLogEntry redactionLogEntry) { - - if (redactionLogEntry.isRecommendation()) { - return EntityType.RECOMMENDATION; - } - if (redactionLogEntry.isHint()) { - return EntityType.HINT; - } - return EntityType.ENTITY; - } - - public static ManualEntity fromManualRedactionEntry(ManualRedactionEntry manualRedactionEntry, boolean hint) { List rectangleWithPages = manualRedactionEntry.getPositions().stream().map(RectangleWithPage::fromAnnotationRectangle).toList(); diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/MigratedEntityLog.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/MigratedEntityLog.java new file mode 100644 index 00000000..aff967e5 --- /dev/null +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/MigratedEntityLog.java @@ -0,0 +1,20 @@ +package com.iqser.red.service.redaction.v1.server.model; + +import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntityLog; +import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.migration.MigratedIds; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class MigratedEntityLog { + + MigratedIds migratedIds; + EntityLog entityLog; + +} diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/MigrationEntity.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/MigrationEntity.java new file mode 100644 index 00000000..74a8260c --- /dev/null +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/MigrationEntity.java @@ -0,0 +1,305 @@ +package com.iqser.red.service.redaction.v1.server.model; + +import java.util.Collections; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; + +import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.ChangeType; +import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntityLogEntry; +import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntryState; +import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntryType; +import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.Position; +import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.AnnotationStatus; +import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.Change; +import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.Engine; +import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.ManualChange; +import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.ManualRedactionType; +import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.RedactionLogEntry; +import com.iqser.red.service.redaction.v1.server.model.document.entity.EntityType; +import com.iqser.red.service.redaction.v1.server.model.document.entity.IEntity; +import com.iqser.red.service.redaction.v1.server.model.document.entity.PositionOnPage; +import com.iqser.red.service.redaction.v1.server.model.document.entity.TextEntity; +import com.iqser.red.service.redaction.v1.server.model.document.nodes.Image; +import com.iqser.red.service.redaction.v1.server.model.document.nodes.ImageType; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.RequiredArgsConstructor; + +@Data +@AllArgsConstructor +@RequiredArgsConstructor +public final class MigrationEntity { + + private final ManualEntity manualEntity; + private final RedactionLogEntry redactionLogEntry; + private IEntity migratedEntity; + private String oldId; + private String newId; + + + public static MigrationEntity fromRedactionLogEntry(RedactionLogEntry redactionLogEntry) { + + return new MigrationEntity(createManualEntity(redactionLogEntry), redactionLogEntry); + } + + + public static ManualEntity createManualEntity(RedactionLogEntry redactionLogEntry) { + + String ruleIdentifier = "OLD." + redactionLogEntry.getMatchedRule() + ".0"; + List rectangleWithPages = redactionLogEntry.getPositions().stream().map(RectangleWithPage::fromRedactionLogRectangle).toList(); + + return ManualEntity.builder() + .id(redactionLogEntry.getId()) + .value(redactionLogEntry.getValue()) + .entityPosition(rectangleWithPages) + .ruleIdentifier(ruleIdentifier) + .reason(redactionLogEntry.getReason()) + .legalBasis(redactionLogEntry.getLegalBasis()) + .type(redactionLogEntry.getType()) + .section(redactionLogEntry.getSection()) + .entityType(getEntityType(redactionLogEntry)) + .applied(redactionLogEntry.isRedacted()) + .isDictionaryEntry(redactionLogEntry.isDictionaryEntry()) + .isDossierDictionaryEntry(redactionLogEntry.isDossierDictionaryEntry()) + .rectangle(redactionLogEntry.isRectangle()) + .build(); + } + + + private static EntityType getEntityType(RedactionLogEntry redactionLogEntry) { + + if (redactionLogEntry.isRecommendation()) { + return EntityType.RECOMMENDATION; + } + if (redactionLogEntry.isHint()) { + return EntityType.HINT; + } + return EntityType.ENTITY; + } + + + private static com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.Change toEntityLogChanges(Change change) { + + return new com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.Change(change.getAnalysisNumber(), + toEntityLogType(change.getType()), + change.getDateTime()); + } + + + private static EntryType getEntryType(EntityType entityType) { + + return switch (entityType) { + case ENTITY -> EntryType.ENTITY; + case HINT -> EntryType.HINT; + case FALSE_POSITIVE -> EntryType.FALSE_POSITIVE; + case RECOMMENDATION -> EntryType.RECOMMENDATION; + case FALSE_RECOMMENDATION -> EntryType.FALSE_RECOMMENDATION; + }; + } + + + private static com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.ManualChange toEntityLogManualChanges(ManualChange manualChange) { + + return new com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.ManualChange(toManualRedactionType(manualChange.getManualRedactionType()), + manualChange.getProcessedDate(), + manualChange.getRequestedDate(), + manualChange.getUserId(), + manualChange.getPropertyChanges()); + } + + + private static ChangeType toEntityLogType(com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.ChangeType type) { + + return switch (type) { + case ADDED -> ChangeType.ADDED; + case REMOVED -> ChangeType.REMOVED; + case CHANGED -> ChangeType.CHANGED; + }; + } + + + private static com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.ManualRedactionType toManualRedactionType(ManualRedactionType manualRedactionType) { + + return switch (manualRedactionType) { + case ADD_LOCALLY -> com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.ManualRedactionType.ADD_LOCALLY; + case ADD_TO_DICTIONARY -> com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.ManualRedactionType.ADD_TO_DICTIONARY; + case REMOVE_LOCALLY -> com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.ManualRedactionType.REMOVE_LOCALLY; + case REMOVE_FROM_DICTIONARY -> com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.ManualRedactionType.REMOVE_FROM_DICTIONARY; + case FORCE_REDACT -> com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.ManualRedactionType.FORCE_REDACT; + case FORCE_HINT -> com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.ManualRedactionType.FORCE_HINT; + case RECATEGORIZE -> com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.ManualRedactionType.RECATEGORIZE; + case LEGAL_BASIS_CHANGE -> com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.ManualRedactionType.LEGAL_BASIS_CHANGE; + case RESIZE -> com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.ManualRedactionType.RESIZE; + }; + } + + + public EntityLogEntry toEntityLogEntry(Map oldToNewIdMapping) { + + EntityLogEntry entityLogEntry; + if (migratedEntity instanceof Image image) { + entityLogEntry = createEntityLogEntry(image); + } else if (migratedEntity instanceof TextEntity textEntity) { + entityLogEntry = createEntityLogEntry(textEntity); + } else if (migratedEntity instanceof ManualEntity entity) { + entityLogEntry = createEntityLogEntry(entity); + } else { + throw new UnsupportedOperationException("Unknown subclass " + migratedEntity.getClass()); + } + entityLogEntry.setChanges(redactionLogEntry.getChanges().stream().map(MigrationEntity::toEntityLogChanges).toList()); + entityLogEntry.setManualChanges(redactionLogEntry.getManualChanges() + .stream() + .filter(manualChange -> manualChange.getAnnotationStatus().equals(AnnotationStatus.APPROVED)) + .map(MigrationEntity::toEntityLogManualChanges) + .toList()); + entityLogEntry.setColor(redactionLogEntry.getColor()); + entityLogEntry.setReference(migrateSetOfIds(redactionLogEntry.getReference(), oldToNewIdMapping)); + entityLogEntry.setImportedRedactionIntersections(migrateSetOfIds(redactionLogEntry.getImportedRedactionIntersections(), oldToNewIdMapping)); + entityLogEntry.setEngines(redactionLogEntry.getEngines().stream().map(this::toEntityLogEngine).collect(Collectors.toSet())); + if (redactionLogEntry.getLegalBasis() != null) { + entityLogEntry.setLegalBasis(redactionLogEntry.getLegalBasis()); + } + + return entityLogEntry; + } + + + private Set migrateSetOfIds(Set ids, Map oldToNewIdMapping) { + + if (ids == null) { + return Collections.emptySet(); + } + return ids.stream().map(oldToNewIdMapping::get).collect(Collectors.toSet()); + } + + + private com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.Engine toEntityLogEngine(Engine engine) { + + return switch (engine) { + case DICTIONARY -> com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.Engine.DICTIONARY; + case NER -> com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.Engine.NER; + case RULE -> com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.Engine.RULE; + }; + } + + + public EntityLogEntry createEntityLogEntry(Image image) { + + String imageType = image.getImageType().equals(ImageType.OTHER) ? "image" : image.getImageType().toString().toLowerCase(Locale.ENGLISH); + return EntityLogEntry.builder() + .id(image.getId()) + .value(image.value()) + .type(imageType) + .reason(image.buildReasonWithManualChangeDescriptions()) + .legalBasis(image.legalBasis()) + .matchedRule(image.getMatchedRule().getRuleIdentifier().toString()) + .dictionaryEntry(false) + .positions(List.of(new Position(image.getPosition(), image.getPage().getNumber()))) + .containingNodeId(image.getTreeId()) + .closestHeadline(image.getHeadline().getTextBlock().getSearchText()) + .section(image.getManualOverwrite().getSection().orElse(image.getParent().toString())) + .imageHasTransparency(image.isTransparent()) + .state(buildEntryState(image)).entryType(redactionLogEntry.isHint() ? EntryType.IMAGE_HINT : EntryType.IMAGE) + .build(); + + } + + + public EntityLogEntry createEntityLogEntry(ManualEntity manualEntity) { + + String type = manualEntity.getManualOverwrite().getType().orElse(manualEntity.getType()); + return EntityLogEntry.builder() + .id(manualEntity.getId()) + .reason(manualEntity.buildReasonWithManualChangeDescriptions()) + .legalBasis(manualEntity.legalBasis()) + .value(manualEntity.value()) + .type(type) + .state(buildEntryState(manualEntity)) + .entryType(buildEntryType(manualEntity)) + .section(manualEntity.getManualOverwrite().getSection().orElse(manualEntity.getSection())) + .containingNodeId(Collections.emptyList()) + .closestHeadline("") + .matchedRule(manualEntity.getMatchedRule().getRuleIdentifier().toString()) + .dictionaryEntry(manualEntity.isDictionaryEntry()) + .dossierDictionaryEntry(manualEntity.isDossierDictionaryEntry()) + .textAfter("") + .textBefore("") + .startOffset(-1) + .endOffset(-1) + .positions(manualEntity.getManualOverwrite() + .getPositions() + .orElse(manualEntity.getEntityPosition()) + .stream() + .map(entityPosition -> new Position(entityPosition.rectangle2D(), entityPosition.pageNumber())) + .toList()) + .engines(Collections.emptySet()) + .build(); + } + + + public EntityLogEntry createEntityLogEntry(TextEntity entity) { + + assert entity.getPositionsOnPagePerPage().size() == 1; + PositionOnPage positionOnPage = entity.getPositionsOnPagePerPage().get(0); + List rectanglesPerLine = positionOnPage.getRectanglePerLine() + .stream() + .map(rectangle2D -> new Position(rectangle2D, positionOnPage.getPage().getNumber())) + .toList(); + return EntityLogEntry.builder() + .id(positionOnPage.getId()) + .positions(rectanglesPerLine) + .reason(entity.buildReasonWithManualChangeDescriptions()) + .legalBasis(entity.legalBasis()) + .value(entity.getManualOverwrite().getValue().orElse(entity.getMatchedRule().isWriteValueWithLineBreaks() ? entity.getValueWithLineBreaks() : entity.getValue())) + .type(entity.getType()) + .section(entity.getManualOverwrite().getSection().orElse(entity.getDeepestFullyContainingNode().toString())) + .containingNodeId(entity.getDeepestFullyContainingNode().getTreeId()) + .closestHeadline(entity.getDeepestFullyContainingNode().getHeadline().getTextBlock().getSearchText()) + .matchedRule(entity.getMatchedRule().getRuleIdentifier().toString()) + .dictionaryEntry(entity.isDictionaryEntry()) + .textAfter(entity.getTextAfter()) + .textBefore(entity.getTextBefore()) + .startOffset(entity.getTextRange().start()) + .endOffset(entity.getTextRange().end()) + .dossierDictionaryEntry(entity.isDossierDictionaryEntry()) + .engines(entity.getEngines() != null ? entity.getEngines() : Collections.emptySet()) + .state(buildEntryState(entity)) + .entryType(buildEntryType(entity)) + .build(); + } + + + private EntryState buildEntryState(IEntity entity) { + + if (entity.applied() && entity.active()) { + return EntryState.APPLIED; + } else if (entity.skipped() && entity.active()) { + return EntryState.SKIPPED; + } else if (entity.ignored()) { + return EntryState.IGNORED; + } else { + return EntryState.REMOVED; + } + } + + + private EntryType buildEntryType(IEntity entity) { + + if (entity instanceof TextEntity textEntity) { + return getEntryType(textEntity.getEntityType()); + } else if (entity instanceof ManualEntity manualEntity) { + if (manualEntity.isRectangle()) { + return EntryType.AREA; + } + return getEntryType(manualEntity.getEntityType()); + } else if (entity instanceof Image) { + return EntryType.IMAGE; + } + throw new UnsupportedOperationException(String.format("Entity subclass %s is not implemented!", entity.getClass())); + } + +} diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/entity/ManualChangeOverwrite.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/entity/ManualChangeOverwrite.java index 0582af73..614e5b73 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/entity/ManualChangeOverwrite.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/entity/ManualChangeOverwrite.java @@ -1,6 +1,5 @@ package com.iqser.red.service.redaction.v1.server.model.document.entity; -import java.awt.geom.Rectangle2D; import java.util.Collections; import java.util.Comparator; import java.util.LinkedList; @@ -210,10 +209,4 @@ public class ManualChangeOverwrite { return positions == null ? Optional.empty() : Optional.of(positions); } - - public static Rectangle2D toRectangle2D(com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.Rectangle rect) { - - return new Rectangle2D.Double(rect.getTopLeftX() - rect.getWidth(), rect.getTopLeftY() - rect.getHeight(), rect.getWidth(), rect.getHeight()); - } - } diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/queue/MessageReceiver.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/queue/MessageReceiver.java index bd4d2931..fdd9c96d 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/queue/MessageReceiver.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/queue/MessageReceiver.java @@ -1,13 +1,11 @@ package com.iqser.red.service.redaction.v1.server.queue; -import static com.iqser.red.service.redaction.v1.server.queue.MessagingConfiguration.REDACTION_QUEUE; +import static com.iqser.red.service.redaction.v1.model.QueueNames.REDACTION_QUEUE; import org.springframework.amqp.core.Message; import org.springframework.amqp.rabbit.annotation.RabbitHandler; import org.springframework.amqp.rabbit.annotation.RabbitListener; -import com.fasterxml.jackson.core.JsonProcessingException; - import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/queue/MessagingConfiguration.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/queue/MessagingConfiguration.java index 821b0342..ed76e2d5 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/queue/MessagingConfiguration.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/queue/MessagingConfiguration.java @@ -1,6 +1,10 @@ package com.iqser.red.service.redaction.v1.server.queue; -import lombok.RequiredArgsConstructor; +import static com.iqser.red.service.redaction.v1.model.QueueNames.MIGRATION_DLQ; +import static com.iqser.red.service.redaction.v1.model.QueueNames.MIGRATION_QUEUE; +import static com.iqser.red.service.redaction.v1.model.QueueNames.REDACTION_DQL; +import static com.iqser.red.service.redaction.v1.model.QueueNames.REDACTION_PRIORITY_QUEUE; +import static com.iqser.red.service.redaction.v1.model.QueueNames.REDACTION_QUEUE; import org.springframework.amqp.core.Queue; import org.springframework.amqp.core.QueueBuilder; @@ -8,15 +12,12 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import lombok.RequiredArgsConstructor; + @Configuration @RequiredArgsConstructor public class MessagingConfiguration { - public static final String REDACTION_QUEUE = "redactionQueue"; - public static final String REDACTION_DQL = "redactionDQL"; - - public static final String REDACTION_PRIORITY_QUEUE = "redactionPriorityQueue"; - public static final String X_ERROR_INFO_HEADER = "x-error-message"; public static final String X_ERROR_INFO_TIMESTAMP_HEADER = "x-error-message-timestamp"; @@ -37,6 +38,20 @@ public class MessagingConfiguration { } + @Bean + public Queue migrationQueue() { + + return QueueBuilder.durable(MIGRATION_QUEUE).withArgument("x-dead-letter-exchange", "").withArgument("x-dead-letter-routing-key", MIGRATION_DLQ).maxPriority(2).build(); + } + + + @Bean + public Queue migrationDLQ() { + + return QueueBuilder.durable(MIGRATION_DLQ).build(); + } + + @Bean public Queue redactionQueue() { diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/queue/MigrationMessageReceiver.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/queue/MigrationMessageReceiver.java new file mode 100644 index 00000000..4bdbfc39 --- /dev/null +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/queue/MigrationMessageReceiver.java @@ -0,0 +1,66 @@ +package com.iqser.red.service.redaction.v1.server.queue; + +import static com.iqser.red.service.redaction.v1.model.QueueNames.MIGRATION_QUEUE; +import static com.iqser.red.service.redaction.v1.model.QueueNames.MIGRATION_RESPONSE_QUEUE; + +import org.springframework.amqp.core.Message; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Service; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileType; +import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.RedactionLog; +import com.iqser.red.service.redaction.v1.model.MigrationRequest; +import com.iqser.red.service.redaction.v1.model.MigrationResponse; +import com.iqser.red.service.redaction.v1.server.model.MigratedEntityLog; +import com.iqser.red.service.redaction.v1.server.model.document.nodes.Document; +import com.iqser.red.service.redaction.v1.server.service.RedactionLogToEntityLogMigrationService; +import com.iqser.red.service.redaction.v1.server.service.document.DocumentGraphMapper; +import com.iqser.red.service.redaction.v1.server.storage.RedactionStorageService; + +import lombok.AccessLevel; +import lombok.RequiredArgsConstructor; +import lombok.SneakyThrows; +import lombok.experimental.FieldDefaults; +import lombok.extern.slf4j.Slf4j; + +@Slf4j +@Service +@RequiredArgsConstructor +@FieldDefaults(makeFinal = true, level = AccessLevel.PRIVATE) +public class MigrationMessageReceiver { + + ObjectMapper objectMapper; + RedactionLogToEntityLogMigrationService redactionLogToEntityLogMigrationService; + RedactionStorageService redactionStorageService; + RabbitTemplate rabbitTemplate; + + + @SneakyThrows + @RabbitHandler + @RabbitListener(queues = MIGRATION_QUEUE) + public void receiveMigrationRequest(Message message) { + + MigrationRequest migrationRequest = objectMapper.readValue(message.getBody(), MigrationRequest.class); + + RedactionLog redactionLog = redactionStorageService.getRedactionLog(migrationRequest.getDossierId(), migrationRequest.getFileId()); + Document document = DocumentGraphMapper.toDocumentGraph(redactionStorageService.getDocumentData(migrationRequest.getDossierId(), migrationRequest.getFileId())); + + MigratedEntityLog migratedEntityLog = redactionLogToEntityLogMigrationService.migrate(redactionLog, document); + + redactionStorageService.storeObject(migrationRequest.getDossierId(), migrationRequest.getFileId(), FileType.ENTITY_LOG, migratedEntityLog.getEntityLog()); + redactionStorageService.storeObject(migrationRequest.getDossierId(), migrationRequest.getFileId(), FileType.MIGRATED_IDS, migratedEntityLog.getMigratedIds()); + + sendFinished(MigrationResponse.builder().dossierId(migrationRequest.getDossierId()).fileId(migrationRequest.getFileId()).build()); + } + + + @SneakyThrows + public void sendFinished(MigrationResponse migrationResponse) { + + rabbitTemplate.convertAndSend(MIGRATION_RESPONSE_QUEUE, migrationResponse); + } + +} diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/queue/PriorityMessageReceiver.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/queue/PriorityMessageReceiver.java index 98d9f3d2..9e099b3d 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/queue/PriorityMessageReceiver.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/queue/PriorityMessageReceiver.java @@ -1,13 +1,11 @@ package com.iqser.red.service.redaction.v1.server.queue; -import static com.iqser.red.service.redaction.v1.server.queue.MessagingConfiguration.REDACTION_PRIORITY_QUEUE; +import static com.iqser.red.service.redaction.v1.model.QueueNames.REDACTION_PRIORITY_QUEUE; import org.springframework.amqp.core.Message; import org.springframework.amqp.rabbit.annotation.RabbitHandler; import org.springframework.amqp.rabbit.annotation.RabbitListener; -import com.fasterxml.jackson.core.JsonProcessingException; - import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/queue/RedactionMessageReceiver.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/queue/RedactionMessageReceiver.java index 1e6ffdf5..ca8cd1b0 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/queue/RedactionMessageReceiver.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/queue/RedactionMessageReceiver.java @@ -1,8 +1,8 @@ package com.iqser.red.service.redaction.v1.server.queue; -import static com.iqser.red.service.redaction.v1.server.queue.MessagingConfiguration.REDACTION_DQL; -import static com.iqser.red.service.redaction.v1.server.queue.MessagingConfiguration.REDACTION_PRIORITY_QUEUE; -import static com.iqser.red.service.redaction.v1.server.queue.MessagingConfiguration.REDACTION_QUEUE; +import static com.iqser.red.service.redaction.v1.model.QueueNames.REDACTION_DQL; +import static com.iqser.red.service.redaction.v1.model.QueueNames.REDACTION_PRIORITY_QUEUE; +import static com.iqser.red.service.redaction.v1.model.QueueNames.REDACTION_QUEUE; import static com.iqser.red.service.redaction.v1.server.queue.MessagingConfiguration.X_ERROR_INFO_HEADER; import static com.iqser.red.service.redaction.v1.server.queue.MessagingConfiguration.X_ERROR_INFO_TIMESTAMP_HEADER; import static java.lang.String.format; @@ -23,8 +23,8 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.AnalyzeResu import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileErrorInfo; import com.iqser.red.service.redaction.v1.server.client.FileStatusProcessingUpdateClient; import com.iqser.red.service.redaction.v1.server.client.RulesClient; -import com.iqser.red.service.redaction.v1.server.utils.exception.DroolsTimeoutException; import com.iqser.red.service.redaction.v1.server.service.AnalyzeService; +import com.iqser.red.service.redaction.v1.server.utils.exception.DroolsTimeoutException; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; @@ -128,7 +128,7 @@ public class RedactionMessageReceiver { @RabbitHandler @RabbitListener(queues = REDACTION_DQL) - public void receiveAnalyzeRequestDQL(Message in) throws IOException { + public void receiveAnalyzeRequestDLQ(Message in) throws IOException { var analyzeRequest = objectMapper.readValue(in.getBody(), AnalyzeRequest.class); log.info("Failed to process analyze request: {}", analyzeRequest); diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/DictionaryService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/DictionaryService.java index 9d132b63..4d6c9c9f 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/DictionaryService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/DictionaryService.java @@ -47,7 +47,7 @@ import lombok.extern.slf4j.Slf4j; @RequiredArgsConstructor public class DictionaryService { - private static final String DEFAULT_COLOR = "#cccccc"; + public static final String DEFAULT_COLOR = "#cccccc"; private final DictionaryClient dictionaryClient; private final RedactionServiceSettings settings; diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/EntityLogCreatorService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/EntityLogCreatorService.java index 5ca944c1..b5bfa099 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/EntityLogCreatorService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/EntityLogCreatorService.java @@ -60,13 +60,11 @@ public class EntityLogCreatorService { } - public EntityLog createInitialEntityLog(AnalyzeRequest analyzeRequest, - Document document, - List notFoundManualRedactionEntries, + public EntityLog createInitialEntityLog(AnalyzeRequest analyzeRequest, Document document, List notFoundManualEntities, DictionaryVersion dictionaryVersion, long rulesVersion) { - List entityLogEntries = createEntityLogEntries(document, analyzeRequest.getDossierTemplateId(), notFoundManualRedactionEntries); + List entityLogEntries = createEntityLogEntries(document, analyzeRequest.getDossierTemplateId(), notFoundManualEntities); List legalBasis = legalBasisClient.getLegalBasisMapping(analyzeRequest.getDossierTemplateId()); EntityLog entityLog = new EntityLog(redactionServiceSettings.getAnalysisVersion(), @@ -187,7 +185,7 @@ public class EntityLogCreatorService { } - public EntityLogEntry createEntityLogEntry(Image image, String dossierTemplateId) { + private EntityLogEntry createEntityLogEntry(Image image, String dossierTemplateId) { String imageType = image.getImageType().equals(ImageType.OTHER) ? "image" : image.getImageType().toString().toLowerCase(Locale.ENGLISH); boolean isHint = dictionaryService.isHint(imageType, dossierTemplateId); @@ -291,6 +289,7 @@ public class EntityLogCreatorService { return dictionaryService.getNotRedactedColor(dossierTemplateId); } return dictionaryService.getColor(type, dossierTemplateId); + } diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/ImportedRedactionService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/ImportedRedactionService.java index 0fed206c..35508103 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/ImportedRedactionService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/ImportedRedactionService.java @@ -55,22 +55,21 @@ public class ImportedRedactionService { @Timed("redactmanager_processImportedRedactions") public List processImportedEntities(String dossierTemplateId, String dossierId, - String fileId, - List redactionLogEntries, + String fileId, List entityLogEntries, boolean addImportedRedactions) { ImportedRedactions importedRedactions = redactionStorageService.getImportedRedactions(dossierId, fileId); if (importedRedactions == null) { - return redactionLogEntries; + return entityLogEntries; } - redactionLogEntries.forEach(redactionLogEntry -> addIntersections(redactionLogEntry, importedRedactions)); + entityLogEntries.forEach(redactionLogEntry -> addIntersections(redactionLogEntry, importedRedactions)); if (addImportedRedactions) { - return addImportedRedactionsEntityLogEntries(dossierTemplateId, redactionLogEntries, importedRedactions); + return addImportedRedactionsEntityLogEntries(dossierTemplateId, entityLogEntries, importedRedactions); } - return redactionLogEntries; + return entityLogEntries; } diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/RedactionLogCreatorService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/RedactionLogCreatorService.java index 78a6d4d2..8892ba63 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/RedactionLogCreatorService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/RedactionLogCreatorService.java @@ -43,8 +43,7 @@ public class RedactionLogCreatorService { private final ManualChangeFactory manualChangeFactory; - public List createRedactionLog(Document document, - String dossierTemplateId, List notFoundManualRedactionEntries) { + public List createRedactionLog(Document document, String dossierTemplateId, List notFoundManualRedactionEntries) { List entries = new ArrayList<>(); Set processIds = new HashSet<>(); @@ -236,10 +235,8 @@ public class RedactionLogCreatorService { .isDossierDictionaryEntry(manualEntity.isDossierDictionaryEntry()) .textAfter("") .textBefore("") - .startOffset(-1) - .endOffset(-1).positions(manualEntity.getManualOverwrite().getPositions().orElse(manualEntity.getEntityPosition()) - .stream() - .map(entityPosition -> toRedactionLogRectangle(entityPosition.rectangle2D(), entityPosition.pageNumber())).toList()) + .startOffset(-1).endOffset(-1).positions(manualEntity.getManualOverwrite().getPositions().orElse(manualEntity.getEntityPosition()) + .stream().map(entityPosition -> toRedactionLogRectangle(entityPosition.rectangle2D(), entityPosition.pageNumber())).toList()) .engines(Collections.emptySet()) .reference(Collections.emptySet()) .manualChanges(mapManualChanges(manualEntity.getManualOverwrite(), isHint)) diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/RedactionLogToEntityLogMigrationService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/RedactionLogToEntityLogMigrationService.java new file mode 100644 index 00000000..a5277d15 --- /dev/null +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/RedactionLogToEntityLogMigrationService.java @@ -0,0 +1,187 @@ +package com.iqser.red.service.redaction.v1.server.service; + +import java.util.Collection; +import java.util.Comparator; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.function.Function; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import org.springframework.stereotype.Service; + +import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntityLog; +import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntityLogLegalBasis; +import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.migration.MigratedIds; +import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.RedactionLog; +import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.RedactionLogEntry; +import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.RedactionLogLegalBasis; +import com.iqser.red.service.redaction.v1.server.model.ManualEntity; +import com.iqser.red.service.redaction.v1.server.model.MigratedEntityLog; +import com.iqser.red.service.redaction.v1.server.model.MigrationEntity; +import com.iqser.red.service.redaction.v1.server.model.RectangleWithPage; +import com.iqser.red.service.redaction.v1.server.model.document.TextRange; +import com.iqser.red.service.redaction.v1.server.model.document.entity.TextEntity; +import com.iqser.red.service.redaction.v1.server.model.document.nodes.Document; +import com.iqser.red.service.redaction.v1.server.model.document.nodes.Image; +import com.iqser.red.service.redaction.v1.server.model.document.nodes.SemanticNode; +import com.iqser.red.service.redaction.v1.server.service.document.EntityCreationService; +import com.iqser.red.service.redaction.v1.server.service.document.EntityEnrichmentService; +import com.iqser.red.service.redaction.v1.server.service.document.EntityFindingUtility; +import com.iqser.red.service.redaction.v1.server.utils.MigratedIdsCollector; + +import lombok.AccessLevel; +import lombok.RequiredArgsConstructor; +import lombok.experimental.FieldDefaults; +import lombok.extern.slf4j.Slf4j; + +@Slf4j +@Service +@RequiredArgsConstructor +@FieldDefaults(makeFinal = true, level = AccessLevel.PRIVATE) +//TODO: remove this, once the migration is done +public class RedactionLogToEntityLogMigrationService { + + private static final double MATCH_THRESHOLD = 10; + EntityFindingUtility entityFindingUtility; + EntityEnrichmentService entityEnrichmentService; + + + public MigratedEntityLog migrate(RedactionLog redactionLog, Document document) { + + List entitiesToMigrate = calculateMigrationEntitiesFromRedactionLog(redactionLog, document); + MigratedIds migratedIds = entitiesToMigrate.stream().collect(new MigratedIdsCollector()); + + EntityLog entityLog = new EntityLog(); + entityLog.setAnalysisNumber(redactionLog.getAnalysisNumber()); + entityLog.setRulesVersion(redactionLog.getRulesVersion()); + entityLog.setDictionaryVersion(redactionLog.getDictionaryVersion()); + entityLog.setDossierDictionaryVersion(redactionLog.getDossierDictionaryVersion()); + entityLog.setLegalBasisVersion(redactionLog.getLegalBasisVersion()); + entityLog.setAnalysisVersion(redactionLog.getAnalysisVersion()); + entityLog.setLegalBasis(redactionLog.getLegalBasis().stream().map(RedactionLogToEntityLogMigrationService::toEntityLogLegalBasis).toList()); + + Map oldToNewIDMapping = migratedIds.buildOldToNewMapping(); + entityLog.setEntityLogEntry(entitiesToMigrate.stream().map(migrationEntity -> migrationEntity.toEntityLogEntry(oldToNewIDMapping)).toList()); + + if (redactionLog.getRedactionLogEntry().size() != entityLog.getEntityLogEntry().size()) { + String message = String.format("Not all entities have been found during the migration redactionLog has %d entries and new entityLog %d", + redactionLog.getRedactionLogEntry().size(), + entityLog.getEntityLogEntry().size()); + log.error(message); + throw new AssertionError(message); + } + + return new MigratedEntityLog(migratedIds, entityLog); + } + + + private List calculateMigrationEntitiesFromRedactionLog(RedactionLog redactionLog, Document document) { + + List images = getImageBasedMigrationEntities(redactionLog, document); + List textMigrationEntities = getTextBasedMigrationEntities(redactionLog, document); + return Stream.of(textMigrationEntities.stream(), images.stream()).flatMap(Function.identity()).toList(); + } + + + private static EntityLogLegalBasis toEntityLogLegalBasis(RedactionLogLegalBasis redactionLogLegalBasis) { + + return new EntityLogLegalBasis(redactionLogLegalBasis.getName(), redactionLogLegalBasis.getDescription(), redactionLogLegalBasis.getReason()); + } + + + private List getImageBasedMigrationEntities(RedactionLog redactionLog, Document document) { + + List images = document.streamAllImages().collect(Collectors.toList()); + List redactionLogImages = redactionLog.getRedactionLogEntry().stream().filter(RedactionLogEntry::isImage).toList(); + List migrationEntities = new LinkedList<>(); + for (RedactionLogEntry redactionLogImage : redactionLogImages) { + List imagePositions = redactionLogImage.getPositions().stream().map(RectangleWithPage::fromRedactionLogRectangle).toList(); + assert imagePositions.size() == 1; + Image closestImage = images.stream() + .filter(image -> image.onPage(redactionLogImage.getPositions().get(0).getPage())) + .min(Comparator.comparingDouble(image -> entityFindingUtility.calculateDistance(image.getPosition(), imagePositions.get(0).rectangle2D()))) + .orElseThrow(() -> new RuntimeException("Image from redaction log not found: " + redactionLogImage)); + + double minDistance = entityFindingUtility.calculateDistance(closestImage.getPosition(), imagePositions.get(0).rectangle2D()); + if (minDistance > MATCH_THRESHOLD) { + throw new RuntimeException(String.format("Closest image has a distance of %.2f which is higher than the allowed %.2f", minDistance, MATCH_THRESHOLD)); + } + + images.remove(closestImage); + + String ruleIdentifier = "OLDIMG." + redactionLogImage.getMatchedRule() + ".0"; + if (redactionLogImage.lastChangeIsRemoved()) { + closestImage.remove(ruleIdentifier, redactionLogImage.getReason()); + } else if (redactionLogImage.isRedacted()) { + closestImage.apply(ruleIdentifier, redactionLogImage.getReason(), redactionLogImage.getLegalBasis()); + } else { + closestImage.skip(ruleIdentifier, redactionLogImage.getReason()); + } + migrationEntities.add(new MigrationEntity(null, redactionLogImage, closestImage, redactionLogImage.getId(), closestImage.getId())); + } + return migrationEntities; + } + + + private List getTextBasedMigrationEntities(RedactionLog redactionLog, Document document) { + + List entitiesToMigrate = redactionLog.getRedactionLogEntry() + .stream() + .filter(redactionLogEntry -> !redactionLogEntry.isImage()) + .map(MigrationEntity::fromRedactionLogEntry) + .peek(migrationEntity -> { + if (migrationEntity.getRedactionLogEntry().lastChangeIsRemoved()) { + migrationEntity.getManualEntity().remove(migrationEntity.getManualEntity().getRuleIdentifier(), migrationEntity.getRedactionLogEntry().getReason()); + } else if (migrationEntity.getManualEntity().isApplied()) { + migrationEntity.getManualEntity() + .apply(migrationEntity.getManualEntity().getRuleIdentifier(), + migrationEntity.getManualEntity().getReason(), + migrationEntity.getManualEntity().getLegalBasis()); + } else { + migrationEntity.getManualEntity().skip(migrationEntity.getManualEntity().getRuleIdentifier(), migrationEntity.getManualEntity().getReason()); + } + }) + .toList(); + + Map> tempEntitiesByValue = entityFindingUtility.findAllPossibleEntitiesAndGroupByValue(document, + entitiesToMigrate.stream().map(MigrationEntity::getManualEntity).toList()); + + for (MigrationEntity migrationEntity : entitiesToMigrate) { + Optional optionalTextEntity = entityFindingUtility.findClosestEntityAndReturnEmptyIfNotFound(migrationEntity.getManualEntity(), + tempEntitiesByValue, + MATCH_THRESHOLD); + + if (optionalTextEntity.isEmpty()) { + migrationEntity.setMigratedEntity(migrationEntity.getManualEntity()); + migrationEntity.setOldId(migrationEntity.getManualEntity().getId()); + migrationEntity.setNewId(migrationEntity.getManualEntity().getId()); + continue; + } + + TextEntity entity = createCorrectEntity(migrationEntity.getManualEntity(), document, optionalTextEntity.get().getTextRange()); + migrationEntity.setMigratedEntity(entity); + migrationEntity.setOldId(migrationEntity.getManualEntity().getId()); + migrationEntity.setNewId(entity.getPositionsOnPagePerPage().get(0).getId()); // Can only be on one page, since redactionLogEntries can only be on one page + } + + tempEntitiesByValue.values().stream().flatMap(Collection::stream).forEach(TextEntity::removeFromGraph); + return entitiesToMigrate; + } + + + private TextEntity createCorrectEntity(ManualEntity manualEntity, SemanticNode node, TextRange closestTextRange) { + + EntityCreationService entityCreationService = new EntityCreationService(entityEnrichmentService); + TextEntity correctEntity = entityCreationService.forceByTextRange(closestTextRange, manualEntity.getType(), manualEntity.getEntityType(), node); + + correctEntity.addMatchedRules(manualEntity.getMatchedRuleList()); + correctEntity.setDictionaryEntry(manualEntity.isDictionaryEntry()); + correctEntity.setDossierDictionaryEntry(manualEntity.isDossierDictionaryEntry()); + correctEntity.getManualOverwrite().addChanges(manualEntity.getManualOverwrite().getManualChangeLog()); + return correctEntity; + } + +} diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/ComponentCreationService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/ComponentCreationService.java index 59410a83..98d1194e 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/ComponentCreationService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/ComponentCreationService.java @@ -421,10 +421,6 @@ public class ComponentCreationService { groupedEntities.forEach(entity -> create(ruleIdentifier, name, entity.getValue(), valueDescription, entity)); } - groupedEntities.stream() - .filter(entity -> !(entity.getContainingNode() instanceof TableCell)) - .forEach(entity -> create(ruleIdentifier, name, entity.getValue(), valueDescription, entity)); - groupedEntities.stream() .filter(entity -> entity.getContainingNode() instanceof TableCell) .collect(Collectors.groupingBy(entity -> ((TableCell) entity.getContainingNode()).getRow())) @@ -433,8 +429,7 @@ public class ComponentCreationService { .sorted(Comparator.comparingInt(Map.Entry::getKey)) .map(Map.Entry::getValue) .forEach(entitiesInSameRow -> create(ruleIdentifier, - name, - entitiesInSameRow.stream().sorted(Comparator.comparing(Entity::getType).reversed()).map(Entity::getValue).collect(Collectors.joining(", ")), + name, entitiesInSameRow.stream().sorted(EntityComparators.first()).map(Entity::getValue).collect(Collectors.joining(", ")), valueDescription, entitiesInSameRow)); }); diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/EntityFindingUtility.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/EntityFindingUtility.java new file mode 100644 index 00000000..d04e4633 --- /dev/null +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/EntityFindingUtility.java @@ -0,0 +1,164 @@ +package com.iqser.red.service.redaction.v1.server.service.document; + +import static java.lang.String.format; +import static java.util.stream.Collectors.groupingBy; + +import java.awt.geom.Rectangle2D; +import java.util.Collection; +import java.util.Comparator; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Optional; +import java.util.Set; +import java.util.stream.Collectors; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.iqser.red.service.redaction.v1.server.model.ManualEntity; +import com.iqser.red.service.redaction.v1.server.model.RectangleWithPage; +import com.iqser.red.service.redaction.v1.server.model.dictionary.SearchImplementation; +import com.iqser.red.service.redaction.v1.server.model.document.entity.EntityType; +import com.iqser.red.service.redaction.v1.server.model.document.entity.PositionOnPage; +import com.iqser.red.service.redaction.v1.server.model.document.entity.TextEntity; +import com.iqser.red.service.redaction.v1.server.model.document.nodes.Page; +import com.iqser.red.service.redaction.v1.server.model.document.nodes.SemanticNode; +import com.iqser.red.service.redaction.v1.server.service.DictionaryService; + +import lombok.extern.slf4j.Slf4j; + +@Slf4j +@Service +public class EntityFindingUtility { + + EntityCreationService entityCreationService; + DictionaryService dictionaryService; + + + @Autowired + public EntityFindingUtility(EntityEnrichmentService entityEnrichmentService, DictionaryService dictionaryService) { + + entityCreationService = new EntityCreationService(entityEnrichmentService); + this.dictionaryService = dictionaryService; + } + + + public Optional findClosestEntityAndReturnEmptyIfNotFound(ManualEntity identifier, Map> entitiesWithSameValue, double matchThreshold) { + + List possibleEntities = entitiesWithSameValue.get(identifier.getValue().toLowerCase(Locale.ENGLISH)); + + if (entityIdentifierValueNotFound(possibleEntities)) { + log.warn("Entity could not be created with identifier: {}, due to the value {} not being found anywhere.", identifier, identifier.getValue()); + return Optional.empty(); + } + + Optional optionalClosestEntity = possibleEntities.stream() + .filter(entity -> pagesMatch(entity, identifier.getEntityPosition())) + .min(Comparator.comparingDouble(entity -> calculateMinDistance(identifier.getEntityPosition(), entity))); + + if (optionalClosestEntity.isEmpty()) { + log.warn("No Entity with value {} found on page {}", identifier.getValue(), identifier.getEntityPosition()); + return Optional.empty(); + } + + TextEntity closestEntity = optionalClosestEntity.get(); + double distance = calculateMinDistance(identifier.getEntityPosition(), closestEntity); + if (distance > matchThreshold) { + log.warn("For entity {} on page {} with positions {} distance to closest found entity is {} and therefore higher than the threshold of {}", + identifier.getValue(), + identifier.getEntityPosition().get(0).pageNumber(), + identifier.getEntityPosition().stream().map(RectangleWithPage::rectangle2D).toList(), + distance, + matchThreshold); + return Optional.empty(); + } + + return Optional.of(closestEntity); + } + + + private static boolean entityIdentifierValueNotFound(List possibleEntities) { + + return possibleEntities == null || possibleEntities.isEmpty(); + } + + + private static boolean pagesMatch(TextEntity entity, List originalPositions) { + + Set entityPageNumbers = entity.getPositionsOnPagePerPage().stream().map(PositionOnPage::getPage).map(Page::getNumber).collect(Collectors.toSet()); + Set originalPageNumbers = originalPositions.stream().map(RectangleWithPage::pageNumber).collect(Collectors.toSet()); + return entityPageNumbers.containsAll(originalPageNumbers); + } + + + private double calculateMinDistance(List originalPositions, TextEntity entity) { + + if (originalPositions.size() != countRectangles(entity)) { + return Double.MAX_VALUE; + } + return originalPositions.stream() + .mapToDouble(rectangleWithPage -> calculateMinDistancePerRectangle(entity, rectangleWithPage.pageNumber(), rectangleWithPage.rectangle2D())) + .sum(); + } + + + private static long countRectangles(TextEntity entity) { + + return entity.getPositionsOnPagePerPage().stream().mapToLong(redactionPosition -> redactionPosition.getRectanglePerLine().size()).sum(); + } + + + private double calculateMinDistancePerRectangle(TextEntity entity, int pageNumber, Rectangle2D originalRectangle) { + + return entity.getPositionsOnPagePerPage() + .stream() + .filter(redactionPosition -> redactionPosition.getPage().getNumber() == pageNumber) + .map(PositionOnPage::getRectanglePerLine) + .flatMap(Collection::stream) + .mapToDouble(rectangle -> calculateDistance(rectangle, originalRectangle)) + .min() + .orElse(Double.MAX_VALUE); + } + + + public double calculateDistance(Rectangle2D rectangle1, Rectangle2D rectangle2) { + + // mirrored coordinates safe comparison + double minX1 = Math.min(rectangle1.getMinX(), rectangle1.getMaxX()); + double minY1 = Math.min(rectangle1.getMinY(), rectangle1.getMaxY()); + double maxX1 = Math.max(rectangle1.getMinX(), rectangle1.getMaxX()); + double maxY1 = Math.max(rectangle1.getMinY(), rectangle1.getMaxY()); + + double minX2 = Math.min(rectangle2.getMinX(), rectangle2.getMaxX()); + double minY2 = Math.min(rectangle2.getMinY(), rectangle2.getMaxY()); + double maxX2 = Math.max(rectangle2.getMinX(), rectangle2.getMaxX()); + double maxY2 = Math.max(rectangle2.getMinY(), rectangle2.getMaxY()); + + return Math.abs(minX1 - minX2) // + + Math.abs(minY1 - minY2) // + + Math.abs(maxX1 - maxX2) // + + Math.abs(maxY1 - maxY2); + } + + + public Map> findAllPossibleEntitiesAndGroupByValue(SemanticNode node, List manualEntities) { + + Set pageNumbers = manualEntities.stream().flatMap(entry -> entry.getEntityPosition().stream().map(RectangleWithPage::pageNumber)).collect(Collectors.toSet()); + Set entryValues = manualEntities.stream().map(ManualEntity::getValue).map(String::toLowerCase).collect(Collectors.toSet()); + + if (!pageNumbers.stream().allMatch(node::onPage)) { + throw new IllegalArgumentException(format("SemanticNode \"%s\" does not contain these pages %s, it has pages: %s", + node, + pageNumbers.stream().filter(pageNumber -> !node.onPage(pageNumber)).toList(), + node.getPages())); + } + SearchImplementation searchImplementation = new SearchImplementation(entryValues, true); + + return searchImplementation.getBoundaries(node.getTextBlock(), node.getTextRange()) + .stream() + .map(boundary -> entityCreationService.forceByTextRange(boundary, "temp", EntityType.ENTITY, node)) + .collect(groupingBy(entity -> entity.getValue().toLowerCase(Locale.ROOT))); + } + +} diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/ManualEntityCreationService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/ManualEntityCreationService.java index 887d3001..154a9106 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/ManualEntityCreationService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/ManualEntityCreationService.java @@ -1,15 +1,9 @@ package com.iqser.red.service.redaction.v1.server.service.document; -import static java.lang.String.format; -import static java.util.stream.Collectors.groupingBy; - -import java.awt.geom.Rectangle2D; import java.util.ArrayList; import java.util.Collection; -import java.util.Comparator; import java.util.LinkedList; import java.util.List; -import java.util.Locale; import java.util.Map; import java.util.Optional; import java.util.Set; @@ -19,15 +13,11 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualRedactionEntry; -import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.RedactionLog; import com.iqser.red.service.redaction.v1.server.model.ManualEntity; import com.iqser.red.service.redaction.v1.server.model.RectangleWithPage; -import com.iqser.red.service.redaction.v1.server.model.dictionary.SearchImplementation; import com.iqser.red.service.redaction.v1.server.model.document.TextRange; -import com.iqser.red.service.redaction.v1.server.model.document.entity.EntityType; import com.iqser.red.service.redaction.v1.server.model.document.entity.PositionOnPage; import com.iqser.red.service.redaction.v1.server.model.document.entity.TextEntity; -import com.iqser.red.service.redaction.v1.server.model.document.nodes.Page; import com.iqser.red.service.redaction.v1.server.model.document.nodes.SemanticNode; import com.iqser.red.service.redaction.v1.server.service.DictionaryService; @@ -41,52 +31,20 @@ import lombok.extern.slf4j.Slf4j; public class ManualEntityCreationService { static double MATCH_THRESHOLD = 5; // Is compared to the sum of distances in pdf coordinates for each corner of the bounding box of the entities + EntityFindingUtility entityFindingUtility; EntityCreationService entityCreationService; DictionaryService dictionaryService; @Autowired - public ManualEntityCreationService(EntityEnrichmentService entityEnrichmentService, DictionaryService dictionaryService) { + public ManualEntityCreationService(EntityEnrichmentService entityEnrichmentService, DictionaryService dictionaryService, EntityFindingUtility entityFindingUtility) { + this.entityFindingUtility = entityFindingUtility; entityCreationService = new EntityCreationService(entityEnrichmentService); this.dictionaryService = dictionaryService; } - public List toTextEntity(RedactionLog redactionLog, SemanticNode node) { - - List manualEntities = redactionLog.getRedactionLogEntry().stream().map(ManualEntity::fromRedactionLogEntry).peek(manualEntity -> { - if (manualEntity.isApplied()) { - manualEntity.apply(manualEntity.getRuleIdentifier(), manualEntity.getReason(), manualEntity.getLegalBasis()); - } else { - manualEntity.skip(manualEntity.getRuleIdentifier(), manualEntity.getReason()); - } - }).toList(); - return toTextEntity(manualEntities, node); - } - - - public List toTextEntity(List manualEntities, SemanticNode node) { - - Set pageNumbers = manualEntities.stream().flatMap(entry -> entry.getEntityPosition().stream().map(RectangleWithPage::pageNumber)).collect(Collectors.toSet()); - Set entryValues = manualEntities.stream().map(ManualEntity::getValue).map(String::toLowerCase).collect(Collectors.toSet()); - - Map> tempEntitiesByValue = findAllPossibleEntitiesAndGroupByValue(node, pageNumbers, entryValues); - - List notFoundManualEntities = new LinkedList<>(); - for (ManualEntity manualEntity : manualEntities) { - Optional optionalRedactionEntity = findClosestEntityAndReturnEmptyIfNotFound(manualEntity, tempEntitiesByValue); - if (optionalRedactionEntity.isEmpty()) { - notFoundManualEntities.add(manualEntity); - continue; - } - createCorrectEntity(manualEntity, node, optionalRedactionEntity.get().getTextRange()); - } - tempEntitiesByValue.values().stream().flatMap(Collection::stream).forEach(TextEntity::removeFromGraph); - return notFoundManualEntities; - } - - public List createRedactionEntitiesIfFoundAndReturnNotFoundEntries(Set manualRedactionEntries, SemanticNode node, String dossierTemplateId) { @@ -102,12 +60,29 @@ public class ManualEntityCreationService { } + public List toTextEntity(List manualEntities, SemanticNode node) { + + Map> tempEntitiesByValue = entityFindingUtility.findAllPossibleEntitiesAndGroupByValue(node, manualEntities); + + List notFoundManualEntities = new LinkedList<>(); + for (ManualEntity manualEntity : manualEntities) { + Optional optionalRedactionEntity = entityFindingUtility.findClosestEntityAndReturnEmptyIfNotFound(manualEntity, tempEntitiesByValue, MATCH_THRESHOLD); + if (optionalRedactionEntity.isEmpty()) { + notFoundManualEntities.add(manualEntity); + continue; + } + createCorrectEntity(manualEntity, node, optionalRedactionEntity.get().getTextRange()); + } + tempEntitiesByValue.values().stream().flatMap(Collection::stream).forEach(TextEntity::removeFromGraph); + return notFoundManualEntities; + } + /** * Deletes the temp Entity and creates a RedactionEntity with correct values, based on the given parameters. * - * @param manualEntity The entity identifier for the RedactionEntity. + * @param manualEntity The entity identifier for the RedactionEntity. * @param node The SemanticNode associated with the RedactionEntity. - * @param closestTextRange The closest Boundary to the RedactionEntity. + * @param closestTextRange The closest Boundary to the RedactionEntity. */ private void createCorrectEntity(ManualEntity manualEntity, SemanticNode node, TextRange closestTextRange) { @@ -118,7 +93,6 @@ public class ManualEntityCreationService { correctEntity.setDossierDictionaryEntry(manualEntity.isDossierDictionaryEntry()); correctEntity.getManualOverwrite().addChanges(manualEntity.getManualOverwrite().getManualChangeLog()); - // AnnotationIds must match the IDs in the add requests, or comments break. Maybe think about migrating IDs on the fly! List redactionPositionsWithIdOfManualOnPage = new ArrayList<>(correctEntity.getPositionsOnPagePerPage().size()); for (PositionOnPage positionOnPage : correctEntity.getPositionsOnPagePerPage()) { @@ -127,123 +101,4 @@ public class ManualEntityCreationService { correctEntity.setPositionsOnPagePerPage(redactionPositionsWithIdOfManualOnPage); } - - private Optional findClosestEntityAndReturnEmptyIfNotFound(ManualEntity identifier, Map> entitiesWithSameValue) { - - List possibleEntities = entitiesWithSameValue.get(identifier.getValue().toLowerCase(Locale.ENGLISH)); - - if (entityIdentifierValueNotFound(possibleEntities)) { - log.warn("Entity could not be created with identifier: {}, due to the value {} not being found anywhere.", identifier, identifier.getValue()); - return Optional.empty(); - } - - Optional optionalClosestEntity = possibleEntities.stream() - .filter(entity -> pagesMatch(entity, identifier.getEntityPosition())) - .min(Comparator.comparingDouble(entity -> calculateMinDistance(identifier.getEntityPosition(), entity))); - - if (optionalClosestEntity.isEmpty()) { - log.warn("No Entity with value {} found on page {}", identifier.getValue(), identifier.getEntityPosition()); - return Optional.empty(); - } - - TextEntity closestEntity = optionalClosestEntity.get(); - double distance = calculateMinDistance(identifier.getEntityPosition(), closestEntity); - if (distance > MATCH_THRESHOLD) { - log.warn(format("Distance to closest found entity is %.2f and therefore higher than the threshold of %.2f for \n%s \n%s", - distance, - MATCH_THRESHOLD, - identifier.getEntityPosition(), - closestEntity.getPositionsOnPagePerPage())); - return Optional.empty(); - } - - return Optional.of(closestEntity); - } - - - private static boolean entityIdentifierValueNotFound(List possibleEntities) { - - return possibleEntities == null || possibleEntities.isEmpty(); - } - - - private Map> findAllPossibleEntitiesAndGroupByValue(SemanticNode node, Set pageNumbers, Set entryValues) { - - if (!pageNumbers.stream().allMatch(node::onPage)) { - throw new IllegalArgumentException(format("SemanticNode \"%s\" does not contain these pages %s, it has pages: %s", - node, - pageNumbers.stream().filter(pageNumber -> !node.onPage(pageNumber)).toList(), - node.getPages())); - } - SearchImplementation searchImplementation = new SearchImplementation(entryValues, true); - - return searchImplementation.getBoundaries(node.getTextBlock(), node.getTextRange()) - .stream().map(boundary -> entityCreationService.forceByTextRange(boundary, "temp", EntityType.ENTITY, node)) - .collect(groupingBy(entity -> entity.getValue().toLowerCase(Locale.ROOT))); - } - - - private static boolean allValuesFound(Map> entitiesByValue, Set entryValues) { - - return entitiesByValue.keySet().equals(entryValues); - } - - - private static boolean pagesMatch(TextEntity entity, List originalPositions) { - - Set entityPageNumbers = entity.getPositionsOnPagePerPage().stream().map(PositionOnPage::getPage).map(Page::getNumber).collect(Collectors.toSet()); - Set originalPageNumbers = originalPositions.stream().map(RectangleWithPage::pageNumber).collect(Collectors.toSet()); - return entityPageNumbers.containsAll(originalPageNumbers); - } - - - private double calculateMinDistance(List originalPositions, TextEntity entity) { - - if (originalPositions.size() != countRectangles(entity)) { - return Double.MAX_VALUE; - } - return originalPositions.stream() - .mapToDouble(rectangleWithPage -> calculateMinDistancePerRectangle(entity, rectangleWithPage.pageNumber(), rectangleWithPage.rectangle2D())) - .sum(); - } - - - private static long countRectangles(TextEntity entity) { - - return entity.getPositionsOnPagePerPage().stream().mapToLong(redactionPosition -> redactionPosition.getRectanglePerLine().size()).sum(); - } - - - private double calculateMinDistancePerRectangle(TextEntity entity, int pageNumber, Rectangle2D originalRectangle) { - - return entity.getPositionsOnPagePerPage() - .stream() - .filter(redactionPosition -> redactionPosition.getPage().getNumber() == pageNumber) - .map(PositionOnPage::getRectanglePerLine) - .flatMap(Collection::stream) - .mapToDouble(rectangle -> calculateDistance(rectangle, originalRectangle)) - .min() - .orElse(Double.MAX_VALUE); - } - - - private double calculateDistance(Rectangle2D rectangle, Rectangle2D rectangle2D) { - - // mirrored coordinates safe comparison - double minX1 = Math.min(rectangle.getMinX(), rectangle.getMaxX()); - double minY1 = Math.min(rectangle.getMinY(), rectangle.getMaxY()); - double maxX1 = Math.max(rectangle.getMinX(), rectangle.getMaxX()); - double maxY1 = Math.max(rectangle.getMinY(), rectangle.getMaxY()); - - double minX2 = Math.min(rectangle2D.getMinX(), rectangle2D.getMaxX()); - double minY2 = Math.min(rectangle2D.getMinY(), rectangle2D.getMaxY()); - double maxX2 = Math.max(rectangle2D.getMinX(), rectangle2D.getMaxX()); - double maxY2 = Math.max(rectangle2D.getMinY(), rectangle2D.getMaxY()); - - return Math.abs(minX1 - minX2) // - + Math.abs(minY1 - minY2) // - + Math.abs(maxX1 - maxX2) // - + Math.abs(maxY1 - maxY2); - } - } diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/storage/RedactionStorageService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/storage/RedactionStorageService.java index 9b4d8c77..3502dd5a 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/storage/RedactionStorageService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/storage/RedactionStorageService.java @@ -11,10 +11,9 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileType; import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.RedactionLog; import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.imported.ImportedRedactions; -import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.section.SectionGrid; import com.iqser.red.service.redaction.v1.server.client.model.NerEntitiesModel; -import com.iqser.red.service.redaction.v1.server.utils.exception.NotFoundException; import com.iqser.red.service.redaction.v1.server.model.document.DocumentData; +import com.iqser.red.service.redaction.v1.server.utils.exception.NotFoundException; import com.iqser.red.storage.commons.exception.StorageObjectDoesNotExist; import com.iqser.red.storage.commons.service.StorageService; import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentPage; @@ -140,17 +139,6 @@ public class RedactionStorageService { } - @Timed("redactmanager_getSectionGrid") - public SectionGrid getSectionGrid(String dossierId, String fileId) { - - try { - return storageService.readJSONObject(TenantContext.getTenantId(), StorageIdUtils.getStorageId(dossierId, fileId, FileType.SECTION_GRID), SectionGrid.class); - } catch (StorageObjectDoesNotExist e) { - throw new NotFoundException("Section Grid is not available."); - } - } - - public ComponentLog getComponentLog(String dossierId, String fileId) { try { diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/utils/MigratedIdsCollector.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/utils/MigratedIdsCollector.java new file mode 100644 index 00000000..295b7e18 --- /dev/null +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/utils/MigratedIdsCollector.java @@ -0,0 +1,54 @@ +package com.iqser.red.service.redaction.v1.server.utils; + +import java.util.LinkedList; +import java.util.Set; +import java.util.function.BiConsumer; +import java.util.function.BinaryOperator; +import java.util.function.Function; +import java.util.function.Supplier; +import java.util.stream.Collector; + +import com.google.common.base.Functions; +import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.migration.MigratedIds; +import com.iqser.red.service.redaction.v1.server.model.MigrationEntity; + +public class MigratedIdsCollector implements Collector { + + @Override + public Supplier supplier() { + + return () -> new MigratedIds(new LinkedList<>()); + } + + + @Override + public BiConsumer accumulator() { + + return (migratedIds, migrationEntity) -> migratedIds.addMapping(migrationEntity.getOldId(), migrationEntity.getNewId()); + } + + + @Override + public BinaryOperator combiner() { + + return (migratedIds, migratedIds2) -> { + migratedIds.getMappings().addAll(migratedIds2.getMappings()); + return migratedIds; + }; + } + + + @Override + public Function finisher() { + + return Functions.identity(); + } + + + @Override + public Set characteristics() { + + return Set.of(Characteristics.IDENTITY_FINISH, Characteristics.CONCURRENT, Characteristics.UNORDERED); + } + +} diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/AbstractRedactionIntegrationTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/AbstractRedactionIntegrationTest.java index ba405d5a..8df94792 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/AbstractRedactionIntegrationTest.java +++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/AbstractRedactionIntegrationTest.java @@ -1,5 +1,28 @@ package com.iqser.red.service.redaction.v1.server; +import static org.mockito.Mockito.when; + +import java.io.File; +import java.io.InputStream; +import java.net.URL; +import java.nio.file.Files; +import java.time.OffsetDateTime; +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.stream.Collectors; + +import org.junit.jupiter.api.AfterEach; +import org.mockito.stubbing.Answer; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.core.io.ClassPathResource; + import com.fasterxml.jackson.databind.ObjectMapper; import com.iqser.red.service.dictionarymerge.commons.DictionaryEntry; import com.iqser.red.service.persistence.service.v1.api.shared.model.AnalyzeRequest; @@ -12,10 +35,10 @@ 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.service.AnalyzeService; -import com.iqser.red.service.redaction.v1.server.utils.ResourceLoader; -import com.iqser.red.service.redaction.v1.server.utils.TextNormalizationUtilities; import com.iqser.red.service.redaction.v1.server.storage.RedactionStorageService; import com.iqser.red.service.redaction.v1.server.utils.LayoutParsingRequestProvider; +import com.iqser.red.service.redaction.v1.server.utils.ResourceLoader; +import com.iqser.red.service.redaction.v1.server.utils.TextNormalizationUtilities; import com.iqser.red.storage.commons.service.StorageService; import com.iqser.red.storage.commons.utils.FileSystemBackedStorageService; import com.knecon.fforesight.service.layoutparser.internal.api.queue.LayoutParsingFinishedEvent; @@ -23,23 +46,8 @@ import com.knecon.fforesight.service.layoutparser.internal.api.queue.LayoutParsi import com.knecon.fforesight.service.layoutparser.processor.LayoutParsingPipeline; import com.knecon.fforesight.tenantcommons.TenantContext; import com.knecon.fforesight.tenantcommons.TenantsClient; + import lombok.SneakyThrows; -import org.junit.jupiter.api.AfterEach; -import org.mockito.stubbing.Answer; -import org.springframework.amqp.rabbit.core.RabbitTemplate; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.mock.mockito.MockBean; -import org.springframework.core.io.ClassPathResource; - -import java.io.File; -import java.io.InputStream; -import java.net.URL; -import java.nio.file.Files; -import java.time.OffsetDateTime; -import java.util.*; -import java.util.stream.Collectors; - -import static org.mockito.Mockito.when; public abstract class AbstractRedactionIntegrationTest { @@ -432,7 +440,6 @@ public abstract class AbstractRedactionIntegrationTest { @SneakyThrows protected LayoutParsingFinishedEvent analyzeDocumentStructure(LayoutParsingType layoutParsingType, AnalyzeRequest request) { - return layoutParsingPipeline.parseLayoutAndSaveFilesToStorage(LayoutParsingRequestProvider.build(layoutParsingType, request)); } diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/MigrationIntegrationTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/MigrationIntegrationTest.java new file mode 100644 index 00000000..0bc2ca5b --- /dev/null +++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/MigrationIntegrationTest.java @@ -0,0 +1,168 @@ +package com.iqser.red.service.redaction.v1.server; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.io.File; +import java.io.FileOutputStream; +import java.nio.file.Path; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Objects; +import java.util.Set; +import java.util.stream.Collectors; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.Import; +import org.springframework.core.io.ClassPathResource; +import org.springframework.test.context.junit.jupiter.SpringExtension; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntityLog; +import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntityLogEntry; +import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.Position; +import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileType; +import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.Rectangle; +import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.RedactionLog; +import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.RedactionLogEntry; +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.document.graph.BuildDocumentIntegrationTest; +import com.iqser.red.service.redaction.v1.server.model.MigratedEntityLog; +import com.iqser.red.service.redaction.v1.server.model.document.nodes.Document; +import com.iqser.red.service.redaction.v1.server.redaction.utils.OsUtils; +import com.iqser.red.service.redaction.v1.server.service.RedactionLogToEntityLogMigrationService; + +import lombok.SneakyThrows; + +@ExtendWith(SpringExtension.class) +@SpringBootTest(classes = Application.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) +@Import(MigrationIntegrationTest.TestConfiguration.class) +public class MigrationIntegrationTest extends BuildDocumentIntegrationTest { + + @Autowired + RedactionLogToEntityLogMigrationService redactionLogToEntityLogMigrationService; + + @Autowired + ObjectMapper mapper; + + + @Test + @SneakyThrows + public void testMigration() { + + String fileName = "files/migration/def8f960580f088b975ba806dfae1f87.ORIGIN.pdf"; + String imageFileName = "files/migration/def8f960580f088b975ba806dfae1f87.IMAGE_INFO.json"; + String tableFileName = "files/migration/def8f960580f088b975ba806dfae1f87.TABLES.json"; + + Document document = buildGraph(fileName, imageFileName, tableFileName); + RedactionLog redactionLog; + try (var in = new ClassPathResource("files/migration/def8f960580f088b975ba806dfae1f87.REDACTION_LOG.json").getInputStream()) { + redactionLog = mapper.readValue(in, RedactionLog.class); + } + MigratedEntityLog migratedEntityLog = redactionLogToEntityLogMigrationService.migrate(redactionLog, document); + + redactionStorageService.storeObject(TEST_DOSSIER_ID, TEST_FILE_ID, FileType.ENTITY_LOG, migratedEntityLog.getEntityLog()); + assertEquals(redactionLog.getRedactionLogEntry().size(), migratedEntityLog.getEntityLog().getEntityLogEntry().size()); + assertEquals(redactionLog.getRedactionLogEntry().size(), migratedEntityLog.getMigratedIds().getMappings().size()); + EntityLog entityLog = migratedEntityLog.getEntityLog(); + assertEquals(redactionLog.getAnalysisNumber(), entityLog.getAnalysisNumber()); + assertEquals(redactionLog.getAnalysisVersion(), entityLog.getAnalysisVersion()); + assertEquals(redactionLog.getDictionaryVersion(), entityLog.getDictionaryVersion()); + assertEquals(redactionLog.getDossierDictionaryVersion(), entityLog.getDossierDictionaryVersion()); + assertEquals(redactionLog.getLegalBasisVersion(), entityLog.getLegalBasisVersion()); + assertEquals(redactionLog.getRulesVersion(), entityLog.getRulesVersion()); + assertEquals(redactionLog.getLegalBasis().size(), entityLog.getLegalBasis().size()); + + Map migratedIds = migratedEntityLog.getMigratedIds().buildOldToNewMapping(); + migratedIds.forEach((oldId, newId) -> assertEntryIsEqual(oldId, newId, redactionLog, entityLog, migratedIds)); + + AnnotateResponse annotateResponse = annotationService.annotate(AnnotateRequest.builder().dossierId(TEST_DOSSIER_ID).fileId(TEST_FILE_ID).build()); + File outputFile = Path.of(OsUtils.getTemporaryDirectory()).resolve(Path.of(fileName.replaceAll(".pdf", "_MIGRATED.pdf")).getFileName()).toFile(); + + try (FileOutputStream fileOutputStream = new FileOutputStream(outputFile)) { + fileOutputStream.write(annotateResponse.getDocument()); + } + } + + + private void assertEntryIsEqual(String oldId, String newId, RedactionLog redactionLog, EntityLog entityLog, Map oldToNewMapping) { + + RedactionLogEntry redactionLogEntry = redactionLog.getRedactionLogEntry().stream().filter(entry -> entry.getId().equals(oldId)).findAny().orElseThrow(); + EntityLogEntry entityLogEntry = entityLog.getEntityLogEntry().stream().filter(entry -> entry.getId().equals(newId)).findAny().orElseThrow(); + + if (!redactionLogEntry.isImage()) { + assertEquals(redactionLogEntry.getValue().toLowerCase(Locale.ENGLISH), entityLogEntry.getValue().toLowerCase(Locale.ENGLISH)); + } + assertEquals(redactionLogEntry.getChanges().size(), entityLogEntry.getChanges().size()); + assertEquals(redactionLogEntry.getManualChanges().size(), entityLogEntry.getManualChanges().size()); + assertEquals(redactionLogEntry.getPositions().size(), entityLogEntry.getPositions().size()); + assertTrue(positionsAlmostEqual(redactionLogEntry.getPositions(), entityLogEntry.getPositions())); + assertEquals(redactionLogEntry.getColor(), entityLogEntry.getColor()); + assertEqualsNullSafe(redactionLogEntry.getLegalBasis(), entityLogEntry.getLegalBasis()); + assertEqualsNullSafe(redactionLogEntry.getReason(), entityLogEntry.getReason()); + assertReferencesEqual(redactionLogEntry.getReference(), entityLogEntry.getReference(), oldToNewMapping); + assertEquals(redactionLogEntry.isDictionaryEntry(), entityLogEntry.isDictionaryEntry()); + assertEquals(redactionLogEntry.isDossierDictionaryEntry(), entityLogEntry.isDossierDictionaryEntry()); + assertEquals(redactionLogEntry.getEngines().stream().map(Enum::name).collect(Collectors.toSet()), + entityLogEntry.getEngines().stream().map(Enum::name).collect(Collectors.toSet())); + } + + + private boolean positionsAlmostEqual(List positions1, List positions2) { + + double tolerance = 2; + for (int i = 0; i < positions1.size(); i++) { + Rectangle p1 = positions1.get(0); + Position p2 = positions2.get(0); + if (p1.getPage() != p2.getPageNumber()) { + return false; + } + if (Math.abs(p1.getHeight() - p2.getRectangle()[3]) > tolerance) { + return false; + } + if (Math.abs(p1.getWidth() - p2.getRectangle()[2]) > tolerance) { + return false; + } + if (Math.abs(p1.getTopLeft().getX() - p2.getRectangle()[0]) > tolerance) { + return false; + } + if (Math.abs(p1.getTopLeft().getY() - p2.getRectangle()[1]) > tolerance) { + return false; + } + } + return true; + } + + + private void assertEqualsNullSafe(String string1, String string2) { + + if (Objects.isNull(string1) && Objects.isNull(string2)) { + assertEquals(string1, string2); + } else if (Objects.isNull(string1)) { + assertEquals("", string2); + } else if (Objects.isNull(string2)) { + assertEquals("", string1); + } else { + assertEquals(string1, string2); + } + + } + + + private void assertReferencesEqual(Set reference, Set reference1, Map oldToNewMapping) { + + if (reference == null) { + assertTrue(reference1.isEmpty()); + return; + } + + assertEquals(reference.stream().map(oldToNewMapping::get).collect(Collectors.toSet()), reference1); + + } + +} 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 0b90df5a..6023beac 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 @@ -266,7 +266,7 @@ public class RedactionIntegrationTest extends AbstractRedactionIntegrationTest { @Test public void titleExtraction() throws IOException { - AnalyzeRequest request = uploadFileToStorage("files/Metolachlor/S-Metolachlor_RAR_02_Volume_2_2018-09-06.pdf"); + AnalyzeRequest request = uploadFileToStorage("files/migration/def8f960580f088b975ba806dfae1f87.ORIGIN.pdf"); System.out.println("Start Full integration test"); analyzeDocumentStructure(LayoutParsingType.REDACT_MANAGER, request); System.out.println("Finished structure analysis"); diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/annotate/AnnotationService.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/annotate/AnnotationService.java index 28ffbeec..db96e44d 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/annotate/AnnotationService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/annotate/AnnotationService.java @@ -29,7 +29,6 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntryType; import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.Position; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileType; -import com.iqser.red.service.redaction.v1.server.service.DictionaryService; import com.iqser.red.service.redaction.v1.server.storage.RedactionStorageService; import com.iqser.red.service.redaction.v1.server.utils.RectangleTransformations; @@ -41,11 +40,10 @@ import lombok.SneakyThrows; public class AnnotationService { private final RedactionStorageService redactionStorageService; - private final DictionaryService dictionaryService; /** - * This method draws a PDF Text Markup Annotation for each RedactionLogEntry and the section grid. + * This method draws a PDF Text Markup Annotation for each EntityLogEntry and the Viewer document. * A Text Markup Annotation has two main functionalities. * First, it highlights text with a color and second, when hovered over in a PDF Viewer it displays a popup message. * Where the Popup message appears is defined by the Rectangle provided to the Annotation. @@ -70,7 +68,6 @@ public class AnnotationService { try (PDDocument pdDocument = Loader.loadPDF(storedObjectFile)) { pdDocument.setAllSecurityToBeRemoved(true); - dictionaryService.updateDictionary(annotateRequest.getDossierTemplateId(), annotateRequest.getDossierId()); annotate(pdDocument, entityLog); PDDocumentCatalog catalog = pdDocument.getDocumentCatalog(); diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/BuildDocumentIntegrationTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/BuildDocumentIntegrationTest.java index 481a360f..0038a78b 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/BuildDocumentIntegrationTest.java +++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/BuildDocumentIntegrationTest.java @@ -46,6 +46,7 @@ public class BuildDocumentIntegrationTest extends AbstractRedactionIntegrationTe } + @SneakyThrows protected Document buildGraph(String filename) { @@ -65,6 +66,20 @@ public class BuildDocumentIntegrationTest extends AbstractRedactionIntegrationTe } + @SneakyThrows + protected Document buildGraph(String filename, String imageFileName, String tableFileName) { + + String fileNameWithPdf = filename; + if (!filename.endsWith(".pdf")) { + fileNameWithPdf = filename + ".pdf"; + } + AnalyzeRequest request = prepareStorage(fileNameWithPdf, tableFileName, imageFileName); + + analyzeDocumentStructure(LayoutParsingType.REDACT_MANAGER, request); + return DocumentGraphMapper.toDocumentGraph(redactionStorageService.getDocumentData(request.getDossierId(), request.getFileId())); + } + + @SneakyThrows protected Document buildGraphNoImages(String filename) { diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/MigrationPocTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/MigrationPocTest.java deleted file mode 100644 index 5462a074..00000000 --- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/MigrationPocTest.java +++ /dev/null @@ -1,162 +0,0 @@ -package com.iqser.red.service.redaction.v1.server.document.graph; - -import static java.util.stream.Collectors.toMap; -import static org.junit.jupiter.api.Assertions.assertTrue; -import static org.mockito.Mockito.when; - -import java.io.IOException; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.stream.Stream; - -import org.drools.io.ClassPathResource; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Disabled; -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; - -import com.google.common.base.Functions; -import com.google.common.collect.Sets; -import com.iqser.red.commons.jackson.ObjectMapperFactory; -import com.iqser.red.service.persistence.service.v1.api.shared.model.AnalyzeRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.AnalyzeResult; -import com.iqser.red.service.persistence.service.v1.api.shared.model.RuleFileType; -import com.iqser.red.service.persistence.service.v1.api.shared.model.common.JSONPrimitive; -import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.Type; -import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.RedactionLog; -import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.RedactionLogEntry; -import com.iqser.red.service.redaction.v1.server.model.ManualEntity; -import com.iqser.red.service.redaction.v1.server.model.document.nodes.Document; -import com.iqser.red.service.redaction.v1.server.service.RedactionLogCreatorService; -import com.iqser.red.service.redaction.v1.server.service.document.DocumentGraphMapper; -import com.iqser.red.service.redaction.v1.server.service.document.ManualEntityCreationService; -import com.knecon.fforesight.service.layoutparser.internal.api.queue.LayoutParsingType; -import com.knecon.fforesight.tenantcommons.TenantContext; - -import lombok.SneakyThrows; - -public class MigrationPocTest extends BuildDocumentIntegrationTest { - - private static final String RULES = loadFromClassPath("drools/rules.drl"); - - @Autowired - private ManualEntityCreationService redactionLogAdapter; - @Autowired - private RedactionLogCreatorService redactionLogCreatorService; - - - @BeforeEach - public void stubClients() { - - TenantContext.setTenantId("redaction"); - when(rulesClient.getVersion(TEST_DOSSIER_TEMPLATE_ID, RuleFileType.ENTITY)).thenReturn(System.currentTimeMillis()); - when(rulesClient.getRules(TEST_DOSSIER_TEMPLATE_ID, RuleFileType.ENTITY)).thenReturn(JSONPrimitive.of(RULES)); - when(rulesClient.getVersion(TEST_DOSSIER_TEMPLATE_ID, RuleFileType.COMPONENT)).thenReturn(-1L); - - loadDictionaryForTest(); - loadTypeForTest(); - loadNerForTest(); - when(dictionaryClient.getVersion(TEST_DOSSIER_TEMPLATE_ID)).thenReturn(0L); - when(dictionaryClient.getAllTypesForDossierTemplate(TEST_DOSSIER_TEMPLATE_ID, false)).thenReturn(getTypeResponse()); - - when(dictionaryClient.getVersion(TEST_DOSSIER_TEMPLATE_ID)).thenReturn(0L); - when(dictionaryClient.getAllTypesForDossier(TEST_DOSSIER_ID, false)).thenReturn(List.of(Type.builder() - .id(DOSSIER_REDACTIONS_INDICATOR + ":" + TEST_DOSSIER_TEMPLATE_ID) - .type(DOSSIER_REDACTIONS_INDICATOR) - .dossierTemplateId(TEST_DOSSIER_ID) - .hexColor("#ffe187") - .isHint(hintTypeMap.get(DOSSIER_REDACTIONS_INDICATOR)) - .isCaseInsensitive(caseInSensitiveMap.get(DOSSIER_REDACTIONS_INDICATOR)) - .isRecommendation(recommendationTypeMap.get(DOSSIER_REDACTIONS_INDICATOR)) - .rank(rankTypeMap.get(DOSSIER_REDACTIONS_INDICATOR)) - .build())); - - mockDictionaryCalls(null); - - when(dictionaryClient.getColors(TEST_DOSSIER_TEMPLATE_ID)).thenReturn(colors); - } - - - @Test - @Disabled // Enable if you fix the TODO in EntityCreationService - @SneakyThrows - public void testMigration() { - - AnalyzeRequest request = uploadFileToStorage("files/new/crafted document.pdf"); - analyzeDocumentStructure(LayoutParsingType.REDACT_MANAGER, request); - AnalyzeResult result = analyzeService.analyze(request); - var newRedactionLog = redactionStorageService.getRedactionLog(TEST_DOSSIER_ID, TEST_FILE_ID); - - var originalRedactionLog = getOriginalRedactionLog(); - - // IMPORTANT: always use the graph which is mapped from the DocumentData, since rounding errors occur during storage. - Document document = DocumentGraphMapper.toDocumentGraph(redactionStorageService.getDocumentData(request.getDossierId(), request.getFileId())); - List notFoundManualRedactionEntries = redactionLogAdapter.toTextEntity(originalRedactionLog, document); - - var migratedRedactionLogEntries = redactionLogCreatorService.createRedactionLog(document, TEST_DOSSIER_TEMPLATE_ID, notFoundManualRedactionEntries); - - Map migratedIds = migratedRedactionLogEntries.stream().collect(toMap(RedactionLogEntry::getId, Functions.identity())); - Map newIds = newRedactionLog.getRedactionLogEntry().stream().collect(toMap(RedactionLogEntry::getId, Functions.identity())); - - logPrecision(migratedIds, newIds); - logRecall(migratedIds, newIds); - } - - - private static void logPrecision(Map migratedIds, Map newIds) { - - var precision = computePrecision(migratedIds, newIds); - System.out.printf("precision %.2f\n", precision); - System.out.println("New Entries"); - getAddedEntries(migratedIds, newIds).forEach(System.out::println); - assertTrue(precision >= 0.85); - System.out.println(); - } - - - private static void logRecall(Map migratedIds, Map newIds) { - - var recall = computeRecall(migratedIds, newIds); - System.out.printf("recall %.2f\n", recall); - System.out.println("Missing entries"); - getMissingEntries(migratedIds, newIds).forEach(System.out::println); - assertTrue(recall >= 0.85); - System.out.println(); - } - - - private static Stream getMissingEntries(Map migratedIds, Map newIds) { - - return migratedIds.entrySet().stream().filter(entry -> !newIds.containsKey(entry.getKey())).map(Map.Entry::getValue); - } - - - private static Stream getAddedEntries(Map migratedIds, Map newIds) { - - return newIds.entrySet().stream().filter(entry -> !migratedIds.containsKey(entry.getKey())).map(Map.Entry::getValue); - } - - - private static double computePrecision(Map migratedIds, Map newIds) { - - return (double) Sets.intersection(newIds.keySet(), migratedIds.keySet()).size() / (double) newIds.size(); - } - - - private static double computeRecall(Map migratedIds, Map newIds) { - - return (double) Sets.intersection(newIds.keySet(), migratedIds.keySet()).size() / (double) migratedIds.size(); - } - - - private static RedactionLog getOriginalRedactionLog() throws IOException { - - RedactionLog originalRedactionLog; - try (var inputStream = new ClassPathResource("files/migration/legacy_redactionlog.json").getInputStream()) { - originalRedactionLog = ObjectMapperFactory.create().readValue(inputStream, RedactionLog.class); - } - return originalRedactionLog; - } - -} diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/migration/def8f960580f088b975ba806dfae1f87.IMAGE_INFO.json b/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/migration/def8f960580f088b975ba806dfae1f87.IMAGE_INFO.json new file mode 100644 index 00000000..e254067f --- /dev/null +++ b/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/migration/def8f960580f088b975ba806dfae1f87.IMAGE_INFO.json @@ -0,0 +1,891 @@ +{ + "dossierId": "12778ddd-0d87-4127-90f4-a15802e8f967", + "fileId": "4a15b5c89a4310eaef6243fb6f1f4f6f", + "targetFileExtension": "ORIGIN.pdf.gz", + "responseFileExtension": "IMAGE_INFO.json.gz", + "X-TENANT-ID": "documine", + "data": [ + { + "classification": { + "label": "signature", + "probabilities": { + "signature": 0.7805, + "other": 0.1362, + "logo": 0.0629, + "formula": 0.0204 + } + }, + "representation": "F8F3FFCFCC30F0CFCFFCF37FF", + "position": { + "x1": 0, + "x2": 595, + "y1": 0, + "y2": 842, + "pageNumber": 1 + }, + "geometry": { + "width": 595, + "height": 842 + }, + "alpha": false, + "filters": { + "geometry": { + "imageSize": { + "quotient": 1.0, + "tooLarge": true, + "tooSmall": false + }, + "imageFormat": { + "quotient": 0.7067, + "tooTall": false, + "tooWide": false + } + }, + "probability": { + "unconfident": false + }, + "allPassed": false + } + }, + { + "classification": { + "label": "signature", + "probabilities": { + "signature": 0.9955, + "other": 0.0023, + "logo": 0.0022, + "formula": 0.0 + } + }, + "representation": "97FFFFFFFF10608F7E18107EF", + "position": { + "x1": 0, + "x2": 595, + "y1": 0, + "y2": 842, + "pageNumber": 2 + }, + "geometry": { + "width": 595, + "height": 842 + }, + "alpha": false, + "filters": { + "geometry": { + "imageSize": { + "quotient": 1.0, + "tooLarge": true, + "tooSmall": false + }, + "imageFormat": { + "quotient": 0.7067, + "tooTall": false, + "tooWide": false + } + }, + "probability": { + "unconfident": false + }, + "allPassed": false + } + }, + { + "classification": { + "label": "signature", + "probabilities": { + "signature": 0.9998, + "logo": 0.0001, + "other": 0.0001, + "formula": 0.0 + } + }, + "representation": "FFFFF10EFFF3E0810608307FF", + "position": { + "x1": 0, + "x2": 595, + "y1": 0, + "y2": 842, + "pageNumber": 3 + }, + "geometry": { + "width": 595, + "height": 842 + }, + "alpha": false, + "filters": { + "geometry": { + "imageSize": { + "quotient": 1.0, + "tooLarge": true, + "tooSmall": false + }, + "imageFormat": { + "quotient": 0.7067, + "tooTall": false, + "tooWide": false + } + }, + "probability": { + "unconfident": false + }, + "allPassed": false + } + }, + { + "classification": { + "label": "signature", + "probabilities": { + "signature": 0.9998, + "other": 0.0001, + "formula": 0.0, + "logo": 0.0 + } + }, + "representation": "93EFF76E08F0E88F1E187C7EF", + "position": { + "x1": 0, + "x2": 595, + "y1": 0, + "y2": 842, + "pageNumber": 4 + }, + "geometry": { + "width": 595, + "height": 842 + }, + "alpha": false, + "filters": { + "geometry": { + "imageSize": { + "quotient": 1.0, + "tooLarge": true, + "tooSmall": false + }, + "imageFormat": { + "quotient": 0.7067, + "tooTall": false, + "tooWide": false + } + }, + "probability": { + "unconfident": false + }, + "allPassed": false + } + }, + { + "classification": { + "label": "signature", + "probabilities": { + "signature": 0.9997, + "logo": 0.0001, + "other": 0.0001, + "formula": 0.0 + } + }, + "representation": "FFFFF33EFC3060818608787FF", + "position": { + "x1": 0, + "x2": 595, + "y1": 0, + "y2": 842, + "pageNumber": 5 + }, + "geometry": { + "width": 595, + "height": 842 + }, + "alpha": false, + "filters": { + "geometry": { + "imageSize": { + "quotient": 1.0, + "tooLarge": true, + "tooSmall": false + }, + "imageFormat": { + "quotient": 0.7067, + "tooTall": false, + "tooWide": false + } + }, + "probability": { + "unconfident": false + }, + "allPassed": false + } + }, + { + "classification": { + "label": "signature", + "probabilities": { + "signature": 0.9085, + "logo": 0.0453, + "other": 0.0413, + "formula": 0.005 + } + }, + "representation": "FFF3F506F81060CF1E18FC7FF", + "position": { + "x1": 0, + "x2": 595, + "y1": 0, + "y2": 842, + "pageNumber": 6 + }, + "geometry": { + "width": 595, + "height": 842 + }, + "alpha": false, + "filters": { + "geometry": { + "imageSize": { + "quotient": 1.0, + "tooLarge": true, + "tooSmall": false + }, + "imageFormat": { + "quotient": 0.7067, + "tooTall": false, + "tooWide": false + } + }, + "probability": { + "unconfident": false + }, + "allPassed": false + } + }, + { + "classification": { + "label": "signature", + "probabilities": { + "signature": 0.7596, + "other": 0.1218, + "logo": 0.1073, + "formula": 0.0113 + } + }, + "representation": "FFFFFFF70C1070C10F3C10FFF", + "position": { + "x1": 0, + "x2": 595, + "y1": 0, + "y2": 842, + "pageNumber": 7 + }, + "geometry": { + "width": 595, + "height": 842 + }, + "alpha": false, + "filters": { + "geometry": { + "imageSize": { + "quotient": 1.0, + "tooLarge": true, + "tooSmall": false + }, + "imageFormat": { + "quotient": 0.7067, + "tooTall": false, + "tooWide": false + } + }, + "probability": { + "unconfident": false + }, + "allPassed": false + } + }, + { + "classification": { + "label": "signature", + "probabilities": { + "signature": 0.4095, + "other": 0.2126, + "formula": 0.2008, + "logo": 0.1771 + } + }, + "representation": "FF70C1070C1070CFD70C10FFF", + "position": { + "x1": 0, + "x2": 595, + "y1": 0, + "y2": 842, + "pageNumber": 8 + }, + "geometry": { + "width": 595, + "height": 842 + }, + "alpha": false, + "filters": { + "geometry": { + "imageSize": { + "quotient": 1.0, + "tooLarge": true, + "tooSmall": false + }, + "imageFormat": { + "quotient": 0.7067, + "tooTall": false, + "tooWide": false + } + }, + "probability": { + "unconfident": true + }, + "allPassed": false + } + }, + { + "classification": { + "label": "signature", + "probabilities": { + "signature": 0.9282, + "logo": 0.0402, + "other": 0.0305, + "formula": 0.0011 + } + }, + "representation": "F4F1CF170CF170C1070CF7FFF", + "position": { + "x1": 0, + "x2": 595, + "y1": 0, + "y2": 842, + "pageNumber": 9 + }, + "geometry": { + "width": 595, + "height": 842 + }, + "alpha": false, + "filters": { + "geometry": { + "imageSize": { + "quotient": 1.0, + "tooLarge": true, + "tooSmall": false + }, + "imageFormat": { + "quotient": 0.7067, + "tooTall": false, + "tooWide": false + } + }, + "probability": { + "unconfident": false + }, + "allPassed": false + } + }, + { + "classification": { + "label": "signature", + "probabilities": { + "signature": 0.9699, + "logo": 0.02, + "other": 0.0097, + "formula": 0.0004 + } + }, + "representation": "FF70FF4E1D3070D1070CF0FFF", + "position": { + "x1": 0, + "x2": 595, + "y1": 0, + "y2": 842, + "pageNumber": 10 + }, + "geometry": { + "width": 595, + "height": 842 + }, + "alpha": false, + "filters": { + "geometry": { + "imageSize": { + "quotient": 1.0, + "tooLarge": true, + "tooSmall": false + }, + "imageFormat": { + "quotient": 0.7067, + "tooTall": false, + "tooWide": false + } + }, + "probability": { + "unconfident": false + }, + "allPassed": false + } + }, + { + "classification": { + "label": "other", + "probabilities": { + "other": 0.9181, + "signature": 0.0432, + "formula": 0.0355, + "logo": 0.0032 + } + }, + "representation": "F3F1F7DF1F10F0C1070CF3FFF", + "position": { + "x1": 0, + "x2": 595, + "y1": 0, + "y2": 842, + "pageNumber": 11 + }, + "geometry": { + "width": 595, + "height": 842 + }, + "alpha": false, + "filters": { + "geometry": { + "imageSize": { + "quotient": 1.0, + "tooLarge": true, + "tooSmall": false + }, + "imageFormat": { + "quotient": 0.7067, + "tooTall": false, + "tooWide": false + } + }, + "probability": { + "unconfident": false + }, + "allPassed": false + } + }, + { + "classification": { + "label": "signature", + "probabilities": { + "signature": 0.663, + "other": 0.137, + "logo": 0.1327, + "formula": 0.0674 + } + }, + "representation": "B770C10F7C1070C10F0C97FFF", + "position": { + "x1": 0, + "x2": 595, + "y1": 0, + "y2": 842, + "pageNumber": 12 + }, + "geometry": { + "width": 595, + "height": 842 + }, + "alpha": false, + "filters": { + "geometry": { + "imageSize": { + "quotient": 1.0, + "tooLarge": true, + "tooSmall": false + }, + "imageFormat": { + "quotient": 0.7067, + "tooTall": false, + "tooWide": false + } + }, + "probability": { + "unconfident": false + }, + "allPassed": false + } + }, + { + "classification": { + "label": "signature", + "probabilities": { + "signature": 0.5023, + "other": 0.2343, + "logo": 0.2255, + "formula": 0.0379 + } + }, + "representation": "B370C10FFC1070CF3F1CF0FFF", + "position": { + "x1": 0, + "x2": 595, + "y1": 0, + "y2": 842, + "pageNumber": 13 + }, + "geometry": { + "width": 595, + "height": 842 + }, + "alpha": false, + "filters": { + "geometry": { + "imageSize": { + "quotient": 1.0, + "tooLarge": true, + "tooSmall": false + }, + "imageFormat": { + "quotient": 0.7067, + "tooTall": false, + "tooWide": false + } + }, + "probability": { + "unconfident": false + }, + "allPassed": false + } + }, + { + "classification": { + "label": "signature", + "probabilities": { + "signature": 0.9999, + "other": 0.0001, + "formula": 0.0, + "logo": 0.0 + } + }, + "representation": "97FFFFFFFFFFFF810608907EF", + "position": { + "x1": 0, + "x2": 595, + "y1": 0, + "y2": 842, + "pageNumber": 14 + }, + "geometry": { + "width": 595, + "height": 842 + }, + "alpha": false, + "filters": { + "geometry": { + "imageSize": { + "quotient": 1.0, + "tooLarge": true, + "tooSmall": false + }, + "imageFormat": { + "quotient": 0.7067, + "tooTall": false, + "tooWide": false + } + }, + "probability": { + "unconfident": false + }, + "allPassed": false + } + }, + { + "classification": { + "label": "signature", + "probabilities": { + "signature": 0.9099, + "logo": 0.0548, + "other": 0.0339, + "formula": 0.0014 + } + }, + "representation": "FFFFF10F7DDD70C1070CF77FF", + "position": { + "x1": 0, + "x2": 595, + "y1": 0, + "y2": 842, + "pageNumber": 15 + }, + "geometry": { + "width": 595, + "height": 842 + }, + "alpha": false, + "filters": { + "geometry": { + "imageSize": { + "quotient": 1.0, + "tooLarge": true, + "tooSmall": false + }, + "imageFormat": { + "quotient": 0.7067, + "tooTall": false, + "tooWide": false + } + }, + "probability": { + "unconfident": false + }, + "allPassed": false + } + }, + { + "classification": { + "label": "signature", + "probabilities": { + "signature": 0.6538, + "other": 0.1607, + "logo": 0.1489, + "formula": 0.0366 + } + }, + "representation": "FF70CF370CFE70C1070CB3FFF", + "position": { + "x1": 0, + "x2": 595, + "y1": 0, + "y2": 842, + "pageNumber": 16 + }, + "geometry": { + "width": 595, + "height": 842 + }, + "alpha": false, + "filters": { + "geometry": { + "imageSize": { + "quotient": 1.0, + "tooLarge": true, + "tooSmall": false + }, + "imageFormat": { + "quotient": 0.7067, + "tooTall": false, + "tooWide": false + } + }, + "probability": { + "unconfident": false + }, + "allPassed": false + } + }, + { + "classification": { + "label": "signature", + "probabilities": { + "signature": 0.9637, + "logo": 0.0179, + "other": 0.0156, + "formula": 0.0028 + } + }, + "representation": "FF70CF170C10F0C1070CF7FFF", + "position": { + "x1": 0, + "x2": 595, + "y1": 0, + "y2": 842, + "pageNumber": 17 + }, + "geometry": { + "width": 595, + "height": 842 + }, + "alpha": false, + "filters": { + "geometry": { + "imageSize": { + "quotient": 1.0, + "tooLarge": true, + "tooSmall": false + }, + "imageFormat": { + "quotient": 0.7067, + "tooTall": false, + "tooWide": false + } + }, + "probability": { + "unconfident": false + }, + "allPassed": false + } + }, + { + "classification": { + "label": "other", + "probabilities": { + "other": 1.0, + "formula": 0.0, + "logo": 0.0, + "signature": 0.0 + } + }, + "representation": "FFFFF7070E1870E18608106FF", + "position": { + "x1": 0, + "x2": 595, + "y1": 0, + "y2": 842, + "pageNumber": 18 + }, + "geometry": { + "width": 595, + "height": 842 + }, + "alpha": false, + "filters": { + "geometry": { + "imageSize": { + "quotient": 1.0, + "tooLarge": true, + "tooSmall": false + }, + "imageFormat": { + "quotient": 0.7067, + "tooTall": false, + "tooWide": false + } + }, + "probability": { + "unconfident": false + }, + "allPassed": false + } + }, + { + "classification": { + "label": "other", + "probabilities": { + "other": 1.0, + "formula": 0.0, + "logo": 0.0, + "signature": 0.0 + } + }, + "representation": "9B70E1870E1870E1870810EFF", + "position": { + "x1": 0, + "x2": 595, + "y1": 0, + "y2": 842, + "pageNumber": 19 + }, + "geometry": { + "width": 595, + "height": 842 + }, + "alpha": false, + "filters": { + "geometry": { + "imageSize": { + "quotient": 1.0, + "tooLarge": true, + "tooSmall": false + }, + "imageFormat": { + "quotient": 0.7067, + "tooTall": false, + "tooWide": false + } + }, + "probability": { + "unconfident": false + }, + "allPassed": false + } + }, + { + "classification": { + "label": "signature", + "probabilities": { + "signature": 0.3619, + "other": 0.2659, + "logo": 0.2169, + "formula": 0.1552 + } + }, + "representation": "FFFFF30FE910ECF1E708106FF", + "position": { + "x1": 0, + "x2": 595, + "y1": 0, + "y2": 842, + "pageNumber": 20 + }, + "geometry": { + "width": 595, + "height": 842 + }, + "alpha": false, + "filters": { + "geometry": { + "imageSize": { + "quotient": 1.0, + "tooLarge": true, + "tooSmall": false + }, + "imageFormat": { + "quotient": 0.7067, + "tooTall": false, + "tooWide": false + } + }, + "probability": { + "unconfident": true + }, + "allPassed": false + } + }, + { + "classification": { + "label": "signature", + "probabilities": { + "signature": 0.9984, + "other": 0.001, + "logo": 0.0006, + "formula": 0.0 + } + }, + "representation": "B7E9F70F3C73F1C78F3F706EF", + "position": { + "x1": 0, + "x2": 595, + "y1": 0, + "y2": 842, + "pageNumber": 21 + }, + "geometry": { + "width": 595, + "height": 842 + }, + "alpha": false, + "filters": { + "geometry": { + "imageSize": { + "quotient": 1.0, + "tooLarge": true, + "tooSmall": false + }, + "imageFormat": { + "quotient": 0.7067, + "tooTall": false, + "tooWide": false + } + }, + "probability": { + "unconfident": false + }, + "allPassed": false + } + } + ] +} \ No newline at end of file diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/migration/def8f960580f088b975ba806dfae1f87.ORIGIN.pdf b/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/migration/def8f960580f088b975ba806dfae1f87.ORIGIN.pdf new file mode 100644 index 00000000..f339c29e Binary files /dev/null and b/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/migration/def8f960580f088b975ba806dfae1f87.ORIGIN.pdf differ diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/migration/def8f960580f088b975ba806dfae1f87.REDACTION_LOG.json b/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/migration/def8f960580f088b975ba806dfae1f87.REDACTION_LOG.json new file mode 100644 index 00000000..ec8fbf27 --- /dev/null +++ b/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/migration/def8f960580f088b975ba806dfae1f87.REDACTION_LOG.json @@ -0,0 +1,9098 @@ +{ + "analysisVersion": 1, + "analysisNumber": 1, + "redactionLogEntry": [ + { + "id": "51b0965bc0330352e3dd7e14063c0341", + "type": "hint_only", + "value": "study director", + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.98039216, + 0.59607846, + 0.96862745 + ], + "positions": [ + { + "topLeft": { + "x": 263.0, + "y": 219.0 + }, + "width": 76.99997, + "height": 13.566406, + "page": 1 + } + ], + "sectionNumber": 8, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 0, + "endOffset": 14, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": true, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "6faaf25332b4abc8c404f4293fa28941", + "type": "CBI_author", + "value": "Guideline", + "reason": "Author found", + "matchedRule": 1, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5529412, + 0.9411765, + 0.42352942 + ], + "positions": [ + { + "topLeft": { + "x": 278.0, + "y": 420.0 + }, + "width": 50.94995, + "height": 13.678945, + "page": 1 + } + ], + "sectionNumber": 5, + "textBefore": null, + "textAfter": " Mead-Briggs et", + "comments": [], + "startOffset": 0, + "endOffset": 9, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": true, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "f880725139325a5fa1af6a790174f708", + "type": "PII", + "value": "Mambo-Tox Ltd. Biomedical Sciences Building Bassett Crescent East Southampton SO16 7PX UK", + "reason": "PII (Personal Identification Information) found", + "matchedRule": 12, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 371.0, + "y": 317.0 + }, + "width": 83.0, + "height": 13.447645, + "page": 1 + }, + { + "topLeft": { + "x": 340.0, + "y": 303.0 + }, + "width": 145.94998, + "height": 13.112997, + "page": 1 + }, + { + "topLeft": { + "x": 361.0, + "y": 290.0 + }, + "width": 104.0, + "height": 12.627275, + "page": 1 + }, + { + "topLeft": { + "x": 352.0, + "y": 276.0 + }, + "width": 122.10214, + "height": 12.797678, + "page": 1 + }, + { + "topLeft": { + "x": 404.0, + "y": 262.0 + }, + "width": 17.97049, + "height": 14.913184, + "page": 1 + } + ], + "sectionNumber": 7, + "textBefore": "RG42 6EY UK ", + "textAfter": null, + "comments": [], + "startOffset": 110, + "endOffset": 199, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "ac83fdc1b350aab56c0df9a7085f44cf", + "type": "hint_only", + "value": "test facility", + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.98039216, + 0.59607846, + 0.96862745 + ], + "positions": [ + { + "topLeft": { + "x": 381.0, + "y": 338.0 + }, + "width": 64.05002, + "height": 13.293408, + "page": 1 + } + ], + "sectionNumber": 6, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 8, + "endOffset": 21, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": true, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "f47d11faa376a84a0f634a8284f883c6", + "type": "hint_only", + "value": "test facility", + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.98039216, + 0.59607846, + 0.96862745 + ], + "positions": [ + { + "topLeft": { + "x": 76.0, + "y": 15.0 + }, + "width": 59.07109, + "height": 12.824793, + "page": 1 + } + ], + "sectionNumber": 245, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 34, + "endOffset": 47, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": true, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "8ae2a4a54abe700fcd5a5acf221a34d6", + "type": "PII", + "value": "De Stefani-Perez", + "reason": "PII (Personal Identification Information) found", + "matchedRule": 12, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 394.02634, + "y": 386.0 + }, + "width": 81.276886, + "height": 13.526152, + "page": 1 + } + ], + "sectionNumber": 5, + "textBefore": "Aphidius rhopalosiphi (", + "textAfter": ") (Hymenoptera, Braconidae)", + "comments": [], + "startOffset": 157, + "endOffset": 173, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "aa068298eade095ee3835137353efc34", + "type": "CBI_author", + "value": "Suzannah Fussell", + "reason": "Author found", + "matchedRule": 1, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 242.0, + "y": 199.0 + }, + "width": 85.87503, + "height": 12.8056755, + "page": 1 + } + ], + "sectionNumber": 9, + "textBefore": null, + "textAfter": " (MSc)", + "comments": [], + "startOffset": 0, + "endOffset": 16, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "2c5003086ae68d7996526c4af1f1f65c", + "type": "CBI_address", + "value": "Mambo-Tox Ltd.", + "reason": "Address found", + "matchedRule": 2, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 142.0, + "y": 15.0 + }, + "width": 84.34999, + "height": 13.447645, + "page": 1 + } + ], + "sectionNumber": 245, + "textBefore": "21 Test Facility: ", + "textAfter": null, + "comments": [], + "startOffset": 49, + "endOffset": 63, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "7f27eea0e5d2c2c196bdcb9825b492ee", + "type": "ocr", + "value": null, + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.7411765, + 0.8392157, + 1.0 + ], + "positions": [ + { + "topLeft": { + "x": 0.0, + "y": 0.0 + }, + "width": 595.0, + "height": 842.0, + "page": 1 + } + ], + "sectionNumber": 2, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 0, + "endOffset": 0, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": true, + "recommendation": false, + "image": true, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "2db019b16d432d913c9140229c5a0638", + "type": "CBI_address", + "value": "Syngenta Crop Protection", + "reason": "Address found", + "matchedRule": 2, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 218.0, + "y": 596.0 + }, + "width": 122.94995, + "height": 12.58786, + "page": 2 + } + ], + "sectionNumber": 14, + "textBefore": "Company : ", + "textAfter": null, + "comments": [], + "startOffset": 10, + "endOffset": 34, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "ff4e5ac686f46768e07ef6a17b9105ee", + "type": "CBI_address", + "value": "Syngenta Crop Protection", + "reason": "Address found", + "matchedRule": 2, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 230.0, + "y": 409.0 + }, + "width": 125.0061, + "height": 12.760515, + "page": 2 + } + ], + "sectionNumber": 18, + "textBefore": "the property of ", + "textAfter": ", and as", + "comments": [], + "startOffset": 31, + "endOffset": 55, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "c4fd53859d01270ecd81a853e8a63130", + "type": "CBI_address", + "value": "Mambo-Tox Ltd.", + "reason": "Address found", + "matchedRule": 2, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 141.0, + "y": 16.0 + }, + "width": 83.0, + "height": 13.317305, + "page": 2 + } + ], + "sectionNumber": 246, + "textBefore": "21 Test Facility: ", + "textAfter": null, + "comments": [], + "startOffset": 49, + "endOffset": 63, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "48ee763c96dac818459399cab373dcd1", + "type": "hint_only", + "value": "test facility", + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.98039216, + 0.59607846, + 0.96862745 + ], + "positions": [ + { + "topLeft": { + "x": 74.0, + "y": 16.0 + }, + "width": 58.774216, + "height": 12.620304, + "page": 2 + } + ], + "sectionNumber": 246, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 34, + "endOffset": 47, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": true, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "2d31f9904a03e59f6875b545c6306964", + "type": "ocr", + "value": null, + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.7411765, + 0.8392157, + 1.0 + ], + "positions": [ + { + "topLeft": { + "x": 0.0, + "y": 0.0 + }, + "width": 595.0, + "height": 842.0, + "page": 2 + } + ], + "sectionNumber": 12, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 0, + "endOffset": 0, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": true, + "recommendation": false, + "image": true, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "3fa33291266f9aa5703d045aa7b61559", + "type": "hint_only", + "value": "study director", + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.98039216, + 0.59607846, + 0.96862745 + ], + "positions": [ + { + "topLeft": { + "x": 264.0, + "y": 705.0 + }, + "width": 106.957794, + "height": 14.827606, + "page": 3 + } + ], + "sectionNumber": 19, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 16, + "endOffset": 30, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": true, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "46f47677c67d073395b600a3c497656b", + "type": "hint_only", + "value": "test facility", + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "Footer", + "color": [ + 0.98039216, + 0.59607846, + 0.96862745 + ], + "positions": [ + { + "topLeft": { + "x": 74.0, + "y": 16.0 + }, + "width": 60.07109, + "height": 12.824793, + "page": 3 + } + ], + "sectionNumber": 226, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 0, + "endOffset": 13, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": true, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "543b03999e80e77a7389ffffe236e23d", + "type": "hint_only", + "value": "study director", + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.98039216, + 0.59607846, + 0.96862745 + ], + "positions": [ + { + "topLeft": { + "x": 78.0, + "y": 376.0 + }, + "width": 71.974976, + "height": 13.105732, + "page": 3 + } + ], + "sectionNumber": 24, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 31, + "endOffset": 45, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": true, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "abf2c3552ee4ed859c159876bad46b67", + "type": "CBI_author", + "value": "Suzannah Fussell", + "reason": "Author found", + "matchedRule": 1, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 78.0, + "y": 390.0 + }, + "width": 84.025024, + "height": 12.661274, + "page": 3 + } + ], + "sectionNumber": 24, + "textBefore": "S bevel ", + "textAfter": " (MSc) Study", + "comments": [], + "startOffset": 8, + "endOffset": 24, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "b89ab076ddd33a1692c6513fbc729740", + "type": "CBI_address", + "value": "Mambo-Tox Ltd.", + "reason": "Address found", + "matchedRule": 2, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "Footer", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 141.0, + "y": 16.0 + }, + "width": 83.34999, + "height": 13.283176, + "page": 3 + } + ], + "sectionNumber": 226, + "textBefore": "Test Facility: ", + "textAfter": " Sponsor: Syngenta", + "comments": [], + "startOffset": 15, + "endOffset": 29, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "898c8d9d3a9fcab37327f4d2c9663bce", + "type": "ocr", + "value": null, + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.7411765, + 0.8392157, + 1.0 + ], + "positions": [ + { + "topLeft": { + "x": 0.0, + "y": 0.0 + }, + "width": 595.0, + "height": 842.0, + "page": 3 + } + ], + "sectionNumber": 19, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 0, + "endOffset": 0, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": true, + "recommendation": false, + "image": true, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "44a69ea025ccfed2dbce99b73f871dd8", + "type": "CBI_author", + "value": "Suzannah Fussell", + "reason": "Author found", + "matchedRule": 1, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 81.0, + "y": 588.0 + }, + "width": 83.025024, + "height": 12.661274, + "page": 4 + } + ], + "sectionNumber": 31, + "textBefore": null, + "textAfter": " (MSc) Study", + "comments": [], + "startOffset": 0, + "endOffset": 16, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "8ddeb9eb1d237a5ac874b0e3914c47e5", + "type": "CBI_author", + "value": "Sandra", + "reason": "Author found", + "matchedRule": 1, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 80.0, + "y": 560.0 + }, + "width": 33.92498, + "height": 12.7784, + "page": 4 + } + ], + "sectionNumber": 32, + "textBefore": null, + "textAfter": " Tew Experimental", + "comments": [], + "startOffset": 0, + "endOffset": 6, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "c71238edc1ebe578188c6c2041771c0e", + "type": "CBI_author", + "value": "David A.", + "reason": "Author found", + "matchedRule": 1, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 93.0, + "y": 249.0 + }, + "width": 44.814667, + "height": 13.105732, + "page": 4 + } + ], + "sectionNumber": 37, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 11, + "endOffset": 19, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "a35f9548a3df36ae69b2ebfd7e1905d0", + "type": "CBI_author", + "value": "Stacey", + "reason": "Author found", + "matchedRule": 1, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 141.0, + "y": 249.0 + }, + "width": 37.024963, + "height": 13.731002, + "page": 4 + } + ], + "sectionNumber": 37, + "textBefore": "Dr David A. ", + "textAfter": " _| Monitoring", + "comments": [], + "startOffset": 20, + "endOffset": 26, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "78fc730f0b30f6ea898c79bc3715d718", + "type": "hint_only", + "value": "test facility", + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.98039216, + 0.59607846, + 0.96862745 + ], + "positions": [ + { + "topLeft": { + "x": 77.0, + "y": 16.0 + }, + "width": 58.07109, + "height": 12.4924965, + "page": 4 + } + ], + "sectionNumber": 248, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 34, + "endOffset": 47, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": true, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "4e516ffad7ae8e19dc14b4a585552a31", + "type": "CBI_author", + "value": "Tew", + "reason": "Author found", + "matchedRule": 1, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 116.0, + "y": 560.0 + }, + "width": 22.361328, + "height": 13.618595, + "page": 4 + } + ], + "sectionNumber": 32, + "textBefore": "Sandra ", + "textAfter": " Experimental Scientist", + "comments": [], + "startOffset": 7, + "endOffset": 10, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "e4c73ea1a356dcf6543b837c61f5ed7d", + "type": "hint_only", + "value": "test facility", + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.98039216, + 0.59607846, + 0.96862745 + ], + "positions": [ + { + "topLeft": { + "x": 185.0, + "y": 488.0 + }, + "width": 63.05002, + "height": 13.293408, + "page": 4 + } + ], + "sectionNumber": 33, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 18, + "endOffset": 31, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": true, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "21421a94035f730bdd90eab539390819", + "type": "CBI_address", + "value": "Mambo-Tox Ltd.", + "reason": "Address found", + "matchedRule": 2, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 143.0, + "y": 16.0 + }, + "width": 83.34999, + "height": 13.447645, + "page": 4 + } + ], + "sectionNumber": 248, + "textBefore": "21 Test Facility: ", + "textAfter": null, + "comments": [], + "startOffset": 49, + "endOffset": 63, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "f936b6f1b8f1ea4c3e19a0929ead7eaf", + "type": "CBI_author", + "value": "Mike", + "reason": "Author found", + "matchedRule": 1, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 79.0, + "y": 404.0 + }, + "width": 24.22499, + "height": 13.250972, + "page": 4 + } + ], + "sectionNumber": 34, + "textBefore": "Wo, me ", + "textAfter": " Mead-Briggs (BSc)", + "comments": [], + "startOffset": 7, + "endOffset": 11, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "0c27114c7e2b0d91034ff16e4dd541fb", + "type": "CBI_address", + "value": "Mambo-Tox Ltd.", + "reason": "Address found", + "matchedRule": 2, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 80.0, + "y": 617.0 + }, + "width": 82.34999, + "height": 13.283176, + "page": 4 + } + ], + "sectionNumber": 30, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 0, + "endOffset": 14, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "0de5ceaf85ffd2e903fc531a9f5b5cc2", + "type": "hint_only", + "value": "study director", + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.98039216, + 0.59607846, + 0.96862745 + ], + "positions": [ + { + "topLeft": { + "x": 226.0, + "y": 588.0 + }, + "width": 70.97504, + "height": 12.809136, + "page": 4 + } + ], + "sectionNumber": 31, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 23, + "endOffset": 37, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": true, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "33c5a3e12240583839e22ca499360341", + "type": "ocr", + "value": null, + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.7411765, + 0.8392157, + 1.0 + ], + "positions": [ + { + "topLeft": { + "x": 0.0, + "y": 0.0 + }, + "width": 595.0, + "height": 842.0, + "page": 4 + } + ], + "sectionNumber": 28, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 0, + "endOffset": 0, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": true, + "recommendation": false, + "image": true, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "534f0cb1fc3d9c5ad8fcdaab66d857c2", + "type": "hint_only", + "value": "quality assurance", + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.98039216, + 0.59607846, + 0.96862745 + ], + "positions": [ + { + "topLeft": { + "x": 78.0, + "y": 194.0 + }, + "width": 86.97499, + "height": 12.98608, + "page": 5 + } + ], + "sectionNumber": 47, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 25, + "endOffset": 42, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": true, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "8948cfb858f5e3f1da3e6f3ad4967fef", + "type": "CBI_address", + "value": "Mambo-Tox Ltd.", + "reason": "Address found", + "matchedRule": 2, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "Footer", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 142.0, + "y": 16.0 + }, + "width": 83.34999, + "height": 13.283176, + "page": 5 + } + ], + "sectionNumber": 228, + "textBefore": "Test Facility: ", + "textAfter": " Sponsor: Syngenta", + "comments": [], + "startOffset": 15, + "endOffset": 29, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "605648d688421d72a7f9b1a093d7eb47", + "type": "hint_only", + "value": "study director", + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.98039216, + 0.59607846, + 0.96862745 + ], + "positions": [ + { + "topLeft": { + "x": 309.0, + "y": 587.0 + }, + "width": 75.99997, + "height": 13.105732, + "page": 5 + } + ], + "sectionNumber": 41, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 72, + "endOffset": 86, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": true, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "fc83fb232b207a4343db1bb71044158a", + "type": "hint_only", + "value": "test facility", + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "Footer", + "color": [ + 0.98039216, + 0.59607846, + 0.96862745 + ], + "positions": [ + { + "topLeft": { + "x": 76.0, + "y": 16.0 + }, + "width": 59.07109, + "height": 12.824793, + "page": 5 + } + ], + "sectionNumber": 228, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 0, + "endOffset": 13, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": true, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "e943b0b659900268f059f726a9bf1ee9", + "type": "hint_only", + "value": "quality assurance", + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.98039216, + 0.59607846, + 0.96862745 + ], + "positions": [ + { + "topLeft": { + "x": 199.0, + "y": 705.0 + }, + "width": 132.0253, + "height": 15.374582, + "page": 5 + } + ], + "sectionNumber": 39, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 0, + "endOffset": 17, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": true, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "b340cf223072e67b62e0928597dee91e", + "type": "CBI_author", + "value": "Diane", + "reason": "Author found", + "matchedRule": 1, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 78.0, + "y": 208.0 + }, + "width": 28.975014, + "height": 13.008173, + "page": 5 + } + ], + "sectionNumber": 47, + "textBefore": null, + "textAfter": " Metters (M.I.Q.A.)", + "comments": [], + "startOffset": 0, + "endOffset": 5, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "930139985d0b4c57007a86e4da129102", + "type": "hint_only", + "value": "test facility", + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.98039216, + 0.59607846, + 0.96862745 + ], + "positions": [ + { + "topLeft": { + "x": 196.0, + "y": 659.0 + }, + "width": 61.539764, + "height": 12.824793, + "page": 5 + } + ], + "sectionNumber": 40, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 23, + "endOffset": 36, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": true, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "59f407b90bf06b7462dbe9ce1bbcc387", + "type": "ocr", + "value": null, + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.7411765, + 0.8392157, + 1.0 + ], + "positions": [ + { + "topLeft": { + "x": 0.0, + "y": 0.0 + }, + "width": 595.0, + "height": 842.0, + "page": 5 + } + ], + "sectionNumber": 39, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 0, + "endOffset": 0, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": true, + "recommendation": false, + "image": true, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "ddba76ced887442ecea6dcfd3dae8534", + "type": "CBI_address", + "value": "Mambo-Tox Ltd.", + "reason": "Address found", + "matchedRule": 2, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "Footer", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 141.0, + "y": 17.0 + }, + "width": 83.34999, + "height": 13.283176, + "page": 6 + } + ], + "sectionNumber": 229, + "textBefore": "Test Facility: ", + "textAfter": " Sponsor: Syngenta", + "comments": [], + "startOffset": 15, + "endOffset": 29, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "dd49b2e4fcff0b068954868621a27ccb", + "type": "hint_only", + "value": "references", + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.98039216, + 0.59607846, + 0.96862745 + ], + "positions": [ + { + "topLeft": { + "x": 105.0, + "y": 248.0 + }, + "width": 75.04994, + "height": 14.211501, + "page": 6 + } + ], + "sectionNumber": 56, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 3, + "endOffset": 13, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": true, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "0e23871105ede6d29d1488eb9a82b166", + "type": "hint_only", + "value": "study director", + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.98039216, + 0.59607846, + 0.96862745 + ], + "positions": [ + { + "topLeft": { + "x": 193.0, + "y": 647.0 + }, + "width": 102.14923, + "height": 14.100634, + "page": 6 + } + ], + "sectionNumber": 50, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 106, + "endOffset": 120, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": true, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "120edf80495a9b05f2bfbe33a3715a06", + "type": "hint_only", + "value": "quality assurance", + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.98039216, + 0.59607846, + 0.96862745 + ], + "positions": [ + { + "topLeft": { + "x": 80.0, + "y": 587.0 + }, + "width": 129.0001, + "height": 15.025164, + "page": 6 + } + ], + "sectionNumber": 50, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 424, + "endOffset": 441, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": true, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "6230c2b8163b96468389e532e618312e", + "type": "hint_only", + "value": "test facility", + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "Footer", + "color": [ + 0.98039216, + 0.59607846, + 0.96862745 + ], + "positions": [ + { + "topLeft": { + "x": 74.0, + "y": 17.0 + }, + "width": 59.07109, + "height": 12.824793, + "page": 6 + } + ], + "sectionNumber": 229, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 0, + "endOffset": 13, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": true, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "debbfaa1798bb99e00f07564e5eecce0", + "type": "hint_only", + "value": "test facility", + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.98039216, + 0.59607846, + 0.96862745 + ], + "positions": [ + { + "topLeft": { + "x": 334.0, + "y": 147.0 + }, + "width": 59.23819, + "height": 12.824793, + "page": 6 + } + ], + "sectionNumber": 58, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 156, + "endOffset": 169, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": true, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "67e11858482c67df9c07e62a96de6557", + "type": "ocr", + "value": null, + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.7411765, + 0.8392157, + 1.0 + ], + "positions": [ + { + "topLeft": { + "x": 0.0, + "y": 0.0 + }, + "width": 595.0, + "height": 842.0, + "page": 6 + } + ], + "sectionNumber": 49, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 0, + "endOffset": 0, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": true, + "recommendation": false, + "image": true, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "b4fbe2f6a9d9bc5e542ae41df111d3e9", + "type": "CBI_address", + "value": "Mambo-Tox Ltd.", + "reason": "Address found", + "matchedRule": 2, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 139.0, + "y": 16.0 + }, + "width": 84.34999, + "height": 13.447645, + "page": 7 + } + ], + "sectionNumber": 251, + "textBefore": "21 Test Facility: ", + "textAfter": null, + "comments": [], + "startOffset": 49, + "endOffset": 63, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "f0458446c6d52b18705d8533bb739593", + "type": "hint_only", + "value": "test facility", + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.98039216, + 0.59607846, + 0.96862745 + ], + "positions": [ + { + "topLeft": { + "x": 73.0, + "y": 16.0 + }, + "width": 59.07109, + "height": 12.4924965, + "page": 7 + } + ], + "sectionNumber": 251, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 34, + "endOffset": 47, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": true, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "92c01bdc96520c303ed8ce07a74c9ce4", + "type": "CBI_address", + "value": "BASF", + "reason": "Address found", + "matchedRule": 2, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 171.0, + "y": 427.0 + }, + "width": 31.050064, + "height": 14.490892, + "page": 7 + } + ], + "sectionNumber": 62, + "textBefore": "reference treatment of ", + "textAfter": " Perfekthion (nominally", + "comments": [], + "startOffset": 282, + "endOffset": 286, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "8dc9744b9150b59f0fb3dc4456794596", + "type": "PII", + "value": "De Stefani-Perez", + "reason": "PII (Personal Identification Information) found", + "matchedRule": 12, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 359.02634, + "y": 555.0 + }, + "width": 86.276886, + "height": 13.526152, + "page": 7 + } + ], + "sectionNumber": 61, + "textBefore": "Aphidius rhopalosiphi (", + "textAfter": ") (Hymenoptera, Braconidae).", + "comments": [], + "startOffset": 296, + "endOffset": 312, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "76beabafca68a589d3783c070f6c6111", + "type": "ocr", + "value": null, + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.7411765, + 0.8392157, + 1.0 + ], + "positions": [ + { + "topLeft": { + "x": 0.0, + "y": 0.0 + }, + "width": 595.0, + "height": 842.0, + "page": 7 + } + ], + "sectionNumber": 59, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 0, + "endOffset": 0, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": true, + "recommendation": false, + "image": true, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "1e4fb11fd8d280f1513fb94320fc7faf", + "type": "CBI_address", + "value": "Mambo-Tox Ltd.", + "reason": "Address found", + "matchedRule": 2, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "Footer", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 140.0, + "y": 16.0 + }, + "width": 83.34999, + "height": 13.283176, + "page": 8 + } + ], + "sectionNumber": 231, + "textBefore": "Test Facility: ", + "textAfter": " Sponsor: Syngenta", + "comments": [], + "startOffset": 15, + "endOffset": 29, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "bb98c8bd86394923dd94c6643b6bb17f", + "type": "hint_only", + "value": "test facility", + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "Footer", + "color": [ + 0.98039216, + 0.59607846, + 0.96862745 + ], + "positions": [ + { + "topLeft": { + "x": 74.0, + "y": 16.0 + }, + "width": 59.07109, + "height": 12.824793, + "page": 8 + } + ], + "sectionNumber": 231, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 0, + "endOffset": 13, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": true, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "b5951f631964aff63f7ec1a6a3763a76", + "type": "ocr", + "value": null, + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.7411765, + 0.8392157, + 1.0 + ], + "positions": [ + { + "topLeft": { + "x": 0.0, + "y": 0.0 + }, + "width": 595.0, + "height": 842.0, + "page": 8 + } + ], + "sectionNumber": 64, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 0, + "endOffset": 0, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": true, + "recommendation": false, + "image": true, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "aeaec60905c031787193f419147b3d39", + "type": "CBI_author", + "value": "Barrett", + "reason": "Author found", + "matchedRule": 1, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 492.5908, + "y": 516.0 + }, + "width": 33.40915, + "height": 12.712021, + "page": 9 + } + ], + "sectionNumber": 81, + "textBefore": "agricultural ecosystem (", + "textAfter": " et al.,", + "comments": [], + "startOffset": 166, + "endOffset": 173, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "35e3f5d4e4668e725f3f273a4d5ff3f4", + "type": "hint_only", + "value": "certificate of analysis", + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.98039216, + 0.59607846, + 0.96862745 + ], + "positions": [ + { + "topLeft": { + "x": 269.0, + "y": 164.0 + }, + "width": 104.07504, + "height": 12.80097, + "page": 9 + } + ], + "sectionNumber": 87, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 35, + "endOffset": 58, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": true, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "c4b928a523bd0ebde32fc48ca30f440d", + "type": "CBI_author", + "value": "Candolfi", + "reason": "Author found", + "matchedRule": 1, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 312.0, + "y": 474.0 + }, + "width": 41.924927, + "height": 13.276667, + "page": 9 + } + ], + "sectionNumber": 81, + "textBefore": "et al., 1994, ", + "textAfter": " et al.,", + "comments": [], + "startOffset": 380, + "endOffset": 388, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "7cff34865f9e5168d5d38500d036c371", + "type": "hint_only", + "value": "test facility", + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.98039216, + 0.59607846, + 0.96862745 + ], + "positions": [ + { + "topLeft": { + "x": 73.0, + "y": 16.0 + }, + "width": 58.774216, + "height": 12.620304, + "page": 9 + } + ], + "sectionNumber": 253, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 34, + "endOffset": 47, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": true, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "df1c8f7f94a25353046ca33e944dc457", + "type": "PII", + "value": "De Stefani-Perez", + "reason": "PII (Personal Identification Information) found", + "matchedRule": 12, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 275.0, + "y": 616.0 + }, + "width": 83.14993, + "height": 13.209379, + "page": 9 + } + ], + "sectionNumber": 80, + "textBefore": "parasitoid Aphidius rhopalosiphi ", + "textAfter": " (Hymenoptera: Braconidae)", + "comments": [], + "startOffset": 125, + "endOffset": 141, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "fd7c113e8827686720067ae92296e8d5", + "type": "CBI_author", + "value": "Barrett", + "reason": "Author found", + "matchedRule": 1, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 213.59079, + "y": 474.0 + }, + "width": 33.409225, + "height": 12.712021, + "page": 9 + } + ], + "sectionNumber": 81, + "textBefore": "guidance documents (", + "textAfter": " et al.,", + "comments": [], + "startOffset": 358, + "endOffset": 365, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "953ae26d43040e1049af30300e1c46d8", + "type": "CBI_address", + "value": "Mambo-Tox Ltd.", + "reason": "Address found", + "matchedRule": 2, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 140.0, + "y": 16.0 + }, + "width": 83.0, + "height": 13.317305, + "page": 9 + } + ], + "sectionNumber": 253, + "textBefore": "21 Test Facility: ", + "textAfter": null, + "comments": [], + "startOffset": 49, + "endOffset": 63, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "91b9f07c9b4e98b81cbb62dc74dc8da2", + "type": "ocr", + "value": null, + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.7411765, + 0.8392157, + 1.0 + ], + "positions": [ + { + "topLeft": { + "x": 0.0, + "y": 0.0 + }, + "width": 595.0, + "height": 842.0, + "page": 9 + } + ], + "sectionNumber": 78, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 0, + "endOffset": 0, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": true, + "recommendation": false, + "image": true, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "b065260b8eacdd161016d09ce13563bd", + "type": "hint_only", + "value": "test facility", + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "Footer", + "color": [ + 0.98039216, + 0.59607846, + 0.96862745 + ], + "positions": [ + { + "topLeft": { + "x": 75.0, + "y": 21.0 + }, + "width": 59.07109, + "height": 12.824793, + "page": 10 + } + ], + "sectionNumber": 233, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 0, + "endOffset": 13, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": true, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "42788293d2449bf1382d1bd172bf33cb", + "type": "CBI_address", + "value": "BASF", + "reason": "Address found", + "matchedRule": 2, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 264.0, + "y": 293.0 + }, + "width": 31.05008, + "height": 14.490892, + "page": 10 + } + ], + "sectionNumber": 103, + "textBefore": null, + "textAfter": " Perfekthion (BAS", + "comments": [], + "startOffset": 0, + "endOffset": 4, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "525022dcbd6b506187b0881cce8f42de", + "type": "CBI_address", + "value": "Mambo-Tox Ltd.", + "reason": "Address found", + "matchedRule": 2, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "Footer", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 141.0, + "y": 21.0 + }, + "width": 83.34999, + "height": 13.283176, + "page": 10 + } + ], + "sectionNumber": 233, + "textBefore": "Test Facility: ", + "textAfter": " Sponsor: Syngenta", + "comments": [], + "startOffset": 15, + "endOffset": 29, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "e9855b85a63c833a01cdbb369d792d32", + "type": "ocr", + "value": null, + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.7411765, + 0.8392157, + 1.0 + ], + "positions": [ + { + "topLeft": { + "x": 0.0, + "y": 0.0 + }, + "width": 595.0, + "height": 842.0, + "page": 10 + } + ], + "sectionNumber": 90, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 0, + "endOffset": 0, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": true, + "recommendation": false, + "image": true, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "33c9307222370074f7fda1f18d71a73a", + "type": "CBI_address", + "value": "Katz Biotech AG, Baruth, Germany", + "reason": "Address found", + "matchedRule": 2, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 272.0, + "y": 660.0 + }, + "width": 186.30496, + "height": 13.345026, + "page": 11 + } + ], + "sectionNumber": 105, + "textBefore": "commercial supplier (presently ", + "textAfter": "). The wasp", + "comments": [], + "startOffset": 196, + "endOffset": 228, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "62b43b2b88e567c9cec62717cd37c832", + "type": "hint_only", + "value": "test facility", + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.98039216, + 0.59607846, + 0.96862745 + ], + "positions": [ + { + "topLeft": { + "x": 75.0, + "y": 17.0 + }, + "width": 59.07109, + "height": 12.824793, + "page": 11 + } + ], + "sectionNumber": 255, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 35, + "endOffset": 48, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": true, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "331865d00ee47906566182677f597ad0", + "type": "CBI_address", + "value": "Mambo-Tox Ltd.", + "reason": "Address found", + "matchedRule": 2, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 141.0, + "y": 17.0 + }, + "width": 84.34999, + "height": 13.447645, + "page": 11 + } + ], + "sectionNumber": 255, + "textBefore": "21 Test Facility: ", + "textAfter": null, + "comments": [], + "startOffset": 50, + "endOffset": 64, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "0c58d48a57432d24ce9668a1bfebb46b", + "type": "ocr", + "value": null, + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.7411765, + 0.8392157, + 1.0 + ], + "positions": [ + { + "topLeft": { + "x": 0.0, + "y": 0.0 + }, + "width": 595.0, + "height": 842.0, + "page": 11 + } + ], + "sectionNumber": 104, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 0, + "endOffset": 0, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": true, + "recommendation": false, + "image": true, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "6f94a3c70dbe92a2721fa969feedf358", + "type": "CBI_address", + "value": "Mambo-Tox Ltd.", + "reason": "Address found", + "matchedRule": 2, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "Footer", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 137.0, + "y": 20.0 + }, + "width": 83.34999, + "height": 13.283176, + "page": 12 + } + ], + "sectionNumber": 235, + "textBefore": "Test Facility: ", + "textAfter": " Sponsor: Syngenta", + "comments": [], + "startOffset": 15, + "endOffset": 29, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "306ab1ac2d95961d315f0b89d855b718", + "type": "CBI_author", + "value": "Burkard", + "reason": "Author found", + "matchedRule": 1, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 488.7734, + "y": 563.0 + }, + "width": 39.40158, + "height": 13.053352, + "page": 12 + } + ], + "sectionNumber": 115, + "textBefore": "Spray Tower (", + "textAfter": " Manufacturing Co.", + "comments": [], + "startOffset": 73, + "endOffset": 80, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "f3b9d4866554158cca6d90acf19a770b", + "type": "hint_only", + "value": "test facility", + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "Footer", + "color": [ + 0.98039216, + 0.59607846, + 0.96862745 + ], + "positions": [ + { + "topLeft": { + "x": 71.0, + "y": 20.0 + }, + "width": 59.07109, + "height": 12.824793, + "page": 12 + } + ], + "sectionNumber": 235, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 0, + "endOffset": 13, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": true, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "a320375773db0ca9ea2fee62b322570a", + "type": "CBI_author", + "value": "Grant", + "reason": "Author found", + "matchedRule": 1, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 493.7787, + "y": 68.0 + }, + "width": 28.371338, + "height": 13.063248, + "page": 12 + } + ], + "sectionNumber": 119, + "textBefore": "data logger (", + "textAfter": null, + "comments": [], + "startOffset": 479, + "endOffset": 484, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "83a61fdfd996a38e27e8416d6474591e", + "type": "ocr", + "value": null, + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.7411765, + 0.8392157, + 1.0 + ], + "positions": [ + { + "topLeft": { + "x": 0.0, + "y": 0.0 + }, + "width": 595.0, + "height": 842.0, + "page": 12 + } + ], + "sectionNumber": 112, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 0, + "endOffset": 0, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": true, + "recommendation": false, + "image": true, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "266f42e0dc5ed0b332945288c8dec994", + "type": "hint_only", + "value": "test facility", + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "Footer", + "color": [ + 0.98039216, + 0.59607846, + 0.96862745 + ], + "positions": [ + { + "topLeft": { + "x": 72.0, + "y": 17.0 + }, + "width": 60.07109, + "height": 12.824793, + "page": 13 + } + ], + "sectionNumber": 236, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 0, + "endOffset": 13, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": true, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "7d3bb108194acd5aa36638496e877bda", + "type": "CBI_author", + "value": "Fowler", + "reason": "Author found", + "matchedRule": 1, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 218.90105, + "y": 100.0 + }, + "width": 34.098938, + "height": 13.291967, + "page": 13 + } + ], + "sectionNumber": 130, + "textBefore": "of variance (", + "textAfter": " & Cohen,", + "comments": [], + "startOffset": 186, + "endOffset": 192, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "c00c4806ecf8a4886a212def028065b3", + "type": "CBI_address", + "value": "Mambo-Tox Ltd.", + "reason": "Address found", + "matchedRule": 2, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "Footer", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 139.0, + "y": 17.0 + }, + "width": 83.34999, + "height": 13.283176, + "page": 13 + } + ], + "sectionNumber": 236, + "textBefore": "Test Facility: ", + "textAfter": " Sponsor: Syngenta", + "comments": [], + "startOffset": 15, + "endOffset": 29, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "8112dd50180f41f1814d5d97323dba0e", + "type": "CBI_author", + "value": "Cohen", + "reason": "Author found", + "matchedRule": 1, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 362.0, + "y": 157.0 + }, + "width": 30.28357, + "height": 12.685789, + "page": 13 + } + ], + "sectionNumber": 129, + "textBefore": "Test (Fowler & ", + "textAfter": ", 1990; SPSS,", + "comments": [], + "startOffset": 227, + "endOffset": 232, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "1faa336a5d4c6939528ae10879a58eba", + "type": "CBI_author", + "value": "Abbott", + "reason": "Author found", + "matchedRule": 1, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 305.7025, + "y": 215.0 + }, + "width": 32.80359, + "height": 12.92083, + "page": 13 + } + ], + "sectionNumber": 128, + "textBefore": "Abbott’s formula (", + "textAfter": ", 1925).", + "comments": [], + "startOffset": 296, + "endOffset": 302, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "affc42e528c9decc5acf3a713ae7ad66", + "type": "CBI_author", + "value": "Cohen", + "reason": "Author found", + "matchedRule": 1, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 279.0, + "y": 100.0 + }, + "width": 31.966003, + "height": 13.069906, + "page": 13 + } + ], + "sectionNumber": 130, + "textBefore": "variance (Fowler & ", + "textAfter": ", 1990; SPSS,", + "comments": [], + "startOffset": 195, + "endOffset": 200, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "5ddd2620bd5ae6b6b1b08b5425e4eafc", + "type": "CBI_author", + "value": "Fowler", + "reason": "Author found", + "matchedRule": 1, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 311.90106, + "y": 157.0 + }, + "width": 34.09897, + "height": 13.291967, + "page": 13 + } + ], + "sectionNumber": 129, + "textBefore": "Exact Test (", + "textAfter": " & Cohen,", + "comments": [], + "startOffset": 218, + "endOffset": 224, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "c65800de68c3dc21786fa857d3b93aae", + "type": "ocr", + "value": null, + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.7411765, + 0.8392157, + 1.0 + ], + "positions": [ + { + "topLeft": { + "x": 0.0, + "y": 0.0 + }, + "width": 595.0, + "height": 842.0, + "page": 13 + } + ], + "sectionNumber": 120, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 0, + "endOffset": 0, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": true, + "recommendation": false, + "image": true, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "a43e0c926bf2dea188839aa1db27f14b", + "type": "CBI_address", + "value": "Mambo-Tox Ltd.", + "reason": "Address found", + "matchedRule": 2, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "Footer", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 138.0, + "y": 18.0 + }, + "width": 83.34999, + "height": 13.283176, + "page": 14 + } + ], + "sectionNumber": 237, + "textBefore": "Test Facility: ", + "textAfter": " Sponsor: Syngenta", + "comments": [], + "startOffset": 15, + "endOffset": 29, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "3da3e0cebdb607a941023f10c45bc73c", + "type": "hint_only", + "value": "test facility", + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "Footer", + "color": [ + 0.98039216, + 0.59607846, + 0.96862745 + ], + "positions": [ + { + "topLeft": { + "x": 72.0, + "y": 18.0 + }, + "width": 59.07109, + "height": 12.824793, + "page": 14 + } + ], + "sectionNumber": 237, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 0, + "endOffset": 13, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": true, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "def1dada18c73d54cfb586c21bf800d5", + "type": "ocr", + "value": null, + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.7411765, + 0.8392157, + 1.0 + ], + "positions": [ + { + "topLeft": { + "x": 0.0, + "y": 0.0 + }, + "width": 595.0, + "height": 842.0, + "page": 14 + } + ], + "sectionNumber": 131, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 0, + "endOffset": 0, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": true, + "recommendation": false, + "image": true, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "a5f92cc03bdf1b948a4c4064d78163c0", + "type": "CBI_address", + "value": "Mambo-Tox Ltd.", + "reason": "Address found", + "matchedRule": 2, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 139.0, + "y": 17.0 + }, + "width": 83.0, + "height": 13.447645, + "page": 15 + } + ], + "sectionNumber": 259, + "textBefore": "21 Test Facility: ", + "textAfter": null, + "comments": [], + "startOffset": 50, + "endOffset": 64, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "4249df33e78b918b1d10a1d2730d51bc", + "type": "hint_only", + "value": "test facility", + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.98039216, + 0.59607846, + 0.96862745 + ], + "positions": [ + { + "topLeft": { + "x": 72.0, + "y": 17.0 + }, + "width": 59.756195, + "height": 12.620304, + "page": 15 + } + ], + "sectionNumber": 259, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 35, + "endOffset": 48, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": true, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "f20440288bd28577239e377aa50db26d", + "type": "ocr", + "value": null, + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.7411765, + 0.8392157, + 1.0 + ], + "positions": [ + { + "topLeft": { + "x": 0.0, + "y": 0.0 + }, + "width": 595.0, + "height": 842.0, + "page": 15 + } + ], + "sectionNumber": 137, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 0, + "endOffset": 0, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": true, + "recommendation": false, + "image": true, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "e2bf497d59a5ec86c67bc9aadb2db6ff", + "type": "hint_only", + "value": "test facility", + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.98039216, + 0.59607846, + 0.96862745 + ], + "positions": [ + { + "topLeft": { + "x": 74.0, + "y": 16.0 + }, + "width": 58.07109, + "height": 12.824793, + "page": 16 + } + ], + "sectionNumber": 260, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 35, + "endOffset": 48, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": true, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "4886474261482ad5d023e88734ec1c7c", + "type": "CBI_address", + "value": "Mambo-Tox Ltd.", + "reason": "Address found", + "matchedRule": 2, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 140.0, + "y": 16.0 + }, + "width": 83.0, + "height": 13.447645, + "page": 16 + } + ], + "sectionNumber": 260, + "textBefore": "21 Test Facility: ", + "textAfter": null, + "comments": [], + "startOffset": 50, + "endOffset": 64, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "52cd69ba74b365ee271f3c69df49b725", + "type": "ocr", + "value": null, + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.7411765, + 0.8392157, + 1.0 + ], + "positions": [ + { + "topLeft": { + "x": 0.0, + "y": 0.0 + }, + "width": 595.0, + "height": 842.0, + "page": 16 + } + ], + "sectionNumber": 155, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 0, + "endOffset": 0, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": true, + "recommendation": false, + "image": true, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "aa2bd752ea9453e61e887efe7a7aa95d", + "type": "CBI_author", + "value": "Grandy, N", + "reason": "Author found", + "matchedRule": 1, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 369.0, + "y": 559.0 + }, + "width": 50.774506, + "height": 12.794289, + "page": 17 + } + ], + "sectionNumber": 171, + "textBefore": "P., Forster, R., ", + "textAfter": "., Huet, M.-C.,", + "comments": [], + "startOffset": 55, + "endOffset": 64, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "9603d58ce6f4347b00093c5a6eb012ac", + "type": "CBI_author", + "value": "Oomen, P.A", + "reason": "Author found", + "matchedRule": 1, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 128.0, + "y": 545.0 + }, + "width": 63.47255, + "height": 12.859816, + "page": 17 + } + ], + "sectionNumber": 171, + "textBefore": "M.-C., Lewis, G., ", + "textAfter": "., Schmuck, R.", + "comments": [], + "startOffset": 91, + "endOffset": 101, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "0580558d7845455857dd7c0a31082a78", + "type": "CBI_author", + "value": "Schmuck, R.", + "reason": "Author found", + "matchedRule": 1, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 206.0, + "y": 545.0 + }, + "width": 65.08664, + "height": 12.868959, + "page": 17 + } + ], + "sectionNumber": 171, + "textBefore": "G., Oomen, P.A., ", + "textAfter": " and Vogt,", + "comments": [], + "startOffset": 104, + "endOffset": 115, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "14bc1b97cdf5361505dcd08d9ee91deb", + "type": "CBI_author", + "value": "Barrett, K.L.", + "reason": "Published Information found", + "matchedRule": 11, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.76862746, + 0.59607846, + 0.98039216 + ], + "positions": [ + { + "topLeft": { + "x": 109.0, + "y": 645.0 + }, + "width": 64.49942, + "height": 12.83319, + "page": 17 + } + ], + "sectionNumber": 170, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 0, + "endOffset": 13, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "a6a0b1c8f2ce15996c568f9ee440b3da", + "type": "CBI_author", + "value": "Barrett, K.L.", + "reason": "Author found", + "matchedRule": 1, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 173.0, + "y": 559.0 + }, + "width": 60.5822, + "height": 12.647993, + "page": 17 + } + ], + "sectionNumber": 171, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 13, + "endOffset": 26, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "dbc2f813c67a260b310d43a45bd98ac7", + "type": "CBI_author", + "value": "Schmuck, R.", + "reason": "Published Information found", + "matchedRule": 11, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.76862746, + 0.59607846, + 0.98039216 + ], + "positions": [ + { + "topLeft": { + "x": 121.0, + "y": 277.0 + }, + "width": 61.078003, + "height": 12.868959, + "page": 17 + } + ], + "sectionNumber": 174, + "textBefore": "M.A., Reber, B., ", + "textAfter": " & Vogt,", + "comments": [], + "startOffset": 574, + "endOffset": 585, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "5f08bd46ff2ffba5b74bdca7ce4d3498", + "type": "CBI_author", + "value": "Candolfi M.,", + "reason": "Author found", + "matchedRule": 1, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 106.0, + "y": 559.0 + }, + "width": 63.42534, + "height": 13.276667, + "page": 17 + } + ], + "sectionNumber": 171, + "textBefore": null, + "textAfter": " Barrett, K.L.,", + "comments": [], + "startOffset": 0, + "endOffset": 12, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "f5312801a6bc08063125974bb8280849", + "type": "CBI_author", + "value": "Mead-Briggs, M.A.", + "reason": "Published Information found", + "matchedRule": 11, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.76862746, + 0.59607846, + 0.98039216 + ], + "positions": [ + { + "topLeft": { + "x": 105.0, + "y": 375.0 + }, + "width": 95.610596, + "height": 13.205683, + "page": 17 + } + ], + "sectionNumber": 174, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 0, + "endOffset": 17, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "ce11c81d7787634df6c78ea8ceca6c70", + "type": "published_information", + "value": "ISBN", + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.52156866, + 0.92156863, + 1.0 + ], + "positions": [ + { + "topLeft": { + "x": 193.0, + "y": 589.0 + }, + "width": 26.699982, + "height": 13.925249, + "page": 17 + } + ], + "sectionNumber": 170, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 339, + "endOffset": 343, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": true, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "d3850812276104ab95c2cd0b3ce40497", + "type": "CBI_author", + "value": "Harrison, E.G.", + "reason": "Published Information found", + "matchedRule": 11, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.76862746, + 0.59607846, + 0.98039216 + ], + "positions": [ + { + "topLeft": { + "x": 248.0, + "y": 645.0 + }, + "width": 73.76752, + "height": 13.037651, + "page": 17 + } + ], + "sectionNumber": 170, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 27, + "endOffset": 41, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "82ad35d44b9962b436a446d922ed4817", + "type": "CBI_author", + "value": "Lewis, G.", + "reason": "Author found", + "matchedRule": 1, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 494.0, + "y": 559.0 + }, + "width": 31.950073, + "height": 13.261847, + "page": 17 + }, + { + "topLeft": { + "x": 106.0, + "y": 545.0 + }, + "width": 11.524612, + "height": 13.019613, + "page": 17 + } + ], + "sectionNumber": 171, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 80, + "endOffset": 89, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "73462cfa81561f34cb18566aa82abd05", + "type": "CBI_author", + "value": "Heimbach, U.", + "reason": "Published Information found", + "matchedRule": 11, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.76862746, + 0.59607846, + 0.98039216 + ], + "positions": [ + { + "topLeft": { + "x": 311.0, + "y": 291.0 + }, + "width": 69.03934, + "height": 13.142002, + "page": 17 + } + ], + "sectionNumber": 174, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 530, + "endOffset": 542, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "35079ea88af4c61931ca7955e12a164c", + "type": "CBI_author", + "value": "Huet, M.", + "reason": "Author found", + "matchedRule": 1, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 429.0, + "y": 559.0 + }, + "width": 43.70932, + "height": 12.722609, + "page": 17 + } + ], + "sectionNumber": 171, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 67, + "endOffset": 75, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "341434d1f379e8b8c827ec9fa20ae4a0", + "type": "CBI_author", + "value": "Coulson, M.J.M.", + "reason": "Published Information found", + "matchedRule": 11, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.76862746, + 0.59607846, + 0.98039216 + ], + "positions": [ + { + "topLeft": { + "x": 351.0, + "y": 375.0 + }, + "width": 81.47208, + "height": 13.117353, + "page": 17 + } + ], + "sectionNumber": 174, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 46, + "endOffset": 61, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "bfb9520c4b7785f1e65903755512ba77", + "type": "CBI_author", + "value": "Perez", + "reason": "Published Information found", + "matchedRule": 11, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.76862746, + 0.59607846, + 0.98039216 + ], + "positions": [ + { + "topLeft": { + "x": 237.58588, + "y": 333.0 + }, + "width": 27.790833, + "height": 13.05327, + "page": 17 + } + ], + "sectionNumber": 174, + "textBefore": "Aphidius rhopalosiphi (DeStephani-", + "textAfter": ") (Hymenoptera, Braconidae).", + "comments": [], + "startOffset": 277, + "endOffset": 282, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "c5526dcdeda603da946863109a78d699", + "type": "CBI_address", + "value": "Bassett Crescent East", + "reason": "Address found", + "matchedRule": 2, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 405.0, + "y": 149.0 + }, + "width": 115.04602, + "height": 12.627275, + "page": 17 + } + ], + "sectionNumber": 177, + "textBefore": "Biomedical Sciences Building, ", + "textAfter": ", Southampton $O16", + "comments": [], + "startOffset": 221, + "endOffset": 242, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "8a12becbdb7e5d3dd18e356945fcebcb", + "type": "CBI_address", + "value": "Mambo-Tox Ltd.", + "reason": "Address found", + "matchedRule": 2, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 387.0, + "y": 164.0 + }, + "width": 84.350006, + "height": 13.447645, + "page": 17 + } + ], + "sectionNumber": 177, + "textBefore": "GLP Archives of ", + "textAfter": " which are", + "comments": [], + "startOffset": 142, + "endOffset": 156, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "25201d8b5eaf9a63e30397db29d50732", + "type": "CBI_author", + "value": "Reber, B.", + "reason": "Published Information found", + "matchedRule": 11, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.76862746, + 0.59607846, + 0.98039216 + ], + "positions": [ + { + "topLeft": { + "x": 492.0, + "y": 291.0 + }, + "width": 32.025024, + "height": 12.876629, + "page": 17 + }, + { + "topLeft": { + "x": 104.0, + "y": 277.0 + }, + "width": 11.491112, + "height": 13.617552, + "page": 17 + } + ], + "sectionNumber": 174, + "textBefore": "U., Mead-Briggs, M.A., ", + "textAfter": ", Schmuck, R.", + "comments": [], + "startOffset": 563, + "endOffset": 572, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "43a4a1b00abbd628fd946e52f12e223d", + "type": "CBI_author", + "value": "Grimm, C.", + "reason": "Published Information found", + "matchedRule": 11, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.76862746, + 0.59607846, + 0.98039216 + ], + "positions": [ + { + "topLeft": { + "x": 178.0, + "y": 291.0 + }, + "width": 53.04663, + "height": 13.035927, + "page": 17 + } + ], + "sectionNumber": 174, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 505, + "endOffset": 514, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "8e27286e9774790bf0331bd08ec731f2", + "type": "CBI_author", + "value": "Abbott, W.S.", + "reason": "Author found", + "matchedRule": 1, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 109.0, + "y": 688.0 + }, + "width": 65.82501, + "height": 13.159819, + "page": 17 + } + ], + "sectionNumber": 169, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 0, + "endOffset": 12, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "f142767ff7de39bdf0dc3a4bbe2b6d52", + "type": "CBI_author", + "value": "Moll, M.", + "reason": "Published Information found", + "matchedRule": 11, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.76862746, + 0.59607846, + 0.98039216 + ], + "positions": [ + { + "topLeft": { + "x": 498.0, + "y": 375.0 + }, + "width": 27.049927, + "height": 14.084482, + "page": 17 + }, + { + "topLeft": { + "x": 105.0, + "y": 361.0 + }, + "width": 13.940826, + "height": 13.988032, + "page": 17 + } + ], + "sectionNumber": 174, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 74, + "endOffset": 82, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "baf60b8607c2efe1afdbd1a69f291fbb", + "type": "CBI_author", + "value": "Nienstedt, K.M.", + "reason": "Published Information found", + "matchedRule": 11, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.76862746, + 0.59607846, + 0.98039216 + ], + "positions": [ + { + "topLeft": { + "x": 126.0, + "y": 361.0 + }, + "width": 77.571686, + "height": 12.790123, + "page": 17 + } + ], + "sectionNumber": 174, + "textBefore": "M., Moll, M., ", + "textAfter": ", Schuld, M.,", + "comments": [], + "startOffset": 84, + "endOffset": 99, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "d5f4038e6199831786378d65b721941a", + "type": "CBI_author", + "value": "Miles, M.", + "reason": "Published Information found", + "matchedRule": 11, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.76862746, + 0.59607846, + 0.98039216 + ], + "positions": [ + { + "topLeft": { + "x": 442.0, + "y": 375.0 + }, + "width": 48.940826, + "height": 13.618598, + "page": 17 + } + ], + "sectionNumber": 174, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 63, + "endOffset": 72, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "19e2448656bc9525e77ee53ec035e0b4", + "type": "published_information", + "value": "ISBN", + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.52156866, + 0.92156863, + 1.0 + ], + "positions": [ + { + "topLeft": { + "x": 342.0, + "y": 277.0 + }, + "width": 26.700012, + "height": 13.925249, + "page": 17 + } + ], + "sectionNumber": 174, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 616, + "endOffset": 620, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": true, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "8f86892d3b910f6109cdf735022edfc4", + "type": "CBI_author", + "value": "Brown, K.", + "reason": "Published Information found", + "matchedRule": 11, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.76862746, + 0.59607846, + 0.98039216 + ], + "positions": [ + { + "topLeft": { + "x": 209.0, + "y": 375.0 + }, + "width": 52.75357, + "height": 13.124463, + "page": 17 + } + ], + "sectionNumber": 174, + "textBefore": "Mead-Briggs, M.A., ", + "textAfter": ", Candolfi, M.P.,", + "comments": [], + "startOffset": 19, + "endOffset": 28, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "44604c3d27fdb2021f349215064e3e2a", + "type": "CBI_author", + "value": "Cohen L.", + "reason": "Author found", + "matchedRule": 1, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 178.0, + "y": 418.0 + }, + "width": 44.47499, + "height": 12.837944, + "page": 17 + } + ], + "sectionNumber": 173, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 15, + "endOffset": 23, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "27cd984339af29ce4257429a356ffbae", + "type": "hint_only", + "value": "test facility", + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.98039216, + 0.59607846, + 0.96862745 + ], + "positions": [ + { + "topLeft": { + "x": 502.0, + "y": 121.0 + }, + "width": 21.025024, + "height": 12.824793, + "page": 17 + }, + { + "topLeft": { + "x": 100.0, + "y": 107.0 + }, + "width": 37.074997, + "height": 13.395579, + "page": 17 + } + ], + "sectionNumber": 177, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 401, + "endOffset": 414, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": true, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "343bf54b6f4699ec04b4107dc569a383", + "type": "CBI_author", + "value": "Schuld, M.", + "reason": "Published Information found", + "matchedRule": 11, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.76862746, + 0.59607846, + 0.98039216 + ], + "positions": [ + { + "topLeft": { + "x": 211.0, + "y": 361.0 + }, + "width": 53.940826, + "height": 12.935787, + "page": 17 + } + ], + "sectionNumber": 174, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 101, + "endOffset": 111, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "2ad03f29c902e500bb862284537d634d", + "type": "CBI_author", + "value": "Campbell, P", + "reason": "Author found", + "matchedRule": 1, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 241.0, + "y": 559.0 + }, + "width": 59.97647, + "height": 13.078268, + "page": 17 + } + ], + "sectionNumber": 171, + "textBefore": "M., Barrett, K.L., ", + "textAfter": "., Forster, R.,", + "comments": [], + "startOffset": 28, + "endOffset": 39, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "e67b37fa3cd094c2434411b63d1133a9", + "type": "CBI_author", + "value": "Vogt, H.", + "reason": "Published Information found", + "matchedRule": 11, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.76862746, + 0.59607846, + 0.98039216 + ], + "positions": [ + { + "topLeft": { + "x": 198.0, + "y": 277.0 + }, + "width": 41.310165, + "height": 13.094016, + "page": 17 + } + ], + "sectionNumber": 174, + "textBefore": "Schmuck, R. & ", + "textAfter": ". IOBC Publication.", + "comments": [], + "startOffset": 588, + "endOffset": 596, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "5f5189258885034c156931c0a0a78686", + "type": "CBI_author", + "value": "McIndoe, E.", + "reason": "Published Information found", + "matchedRule": 11, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.76862746, + 0.59607846, + 0.98039216 + ], + "positions": [ + { + "topLeft": { + "x": 336.0, + "y": 361.0 + }, + "width": 60.483337, + "height": 13.270658, + "page": 17 + } + ], + "sectionNumber": 174, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 126, + "endOffset": 137, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "9134f07d73ea40354c60bc4ca4406421", + "type": "CBI_author", + "value": "Oomen, P.A", + "reason": "Published Information found", + "matchedRule": 11, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.76862746, + 0.59607846, + 0.98039216 + ], + "positions": [ + { + "topLeft": { + "x": 426.0, + "y": 645.0 + }, + "width": 62.692688, + "height": 13.021711, + "page": 17 + } + ], + "sectionNumber": 170, + "textBefore": "Hassan, S.A. and ", + "textAfter": ". (Eds.) (1994).", + "comments": [], + "startOffset": 60, + "endOffset": 70, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "d772ce2c8f55e72b316cc4be384cdb82", + "type": "CBI_author", + "value": "Candolfi", + "reason": "Published Information found", + "matchedRule": 11, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.76862746, + 0.59607846, + 0.98039216 + ], + "positions": [ + { + "topLeft": { + "x": 318.0, + "y": 305.0 + }, + "width": 41.832947, + "height": 13.260299, + "page": 17 + } + ], + "sectionNumber": 174, + "textBefore": "Joint Initiative. Eds. ", + "textAfter": ", M_P., Bliimel,", + "comments": [], + "startOffset": 449, + "endOffset": 457, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "62d31f1e459c6521086a9c65ce616e1f", + "type": "CBI_author", + "value": "Bliimel, S.", + "reason": "Published Information found", + "matchedRule": 11, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.76862746, + 0.59607846, + 0.98039216 + ], + "positions": [ + { + "topLeft": { + "x": 402.0, + "y": 305.0 + }, + "width": 56.287567, + "height": 13.481841, + "page": 17 + } + ], + "sectionNumber": 174, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 465, + "endOffset": 476, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": false, + "recommendation": true, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "ac1f42efd469e3d1a98481ae66c48fc8", + "type": "CBI_author", + "value": "Hassan, S.A.", + "reason": "Published Information found", + "matchedRule": 11, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.76862746, + 0.59607846, + 0.98039216 + ], + "positions": [ + { + "topLeft": { + "x": 331.0, + "y": 645.0 + }, + "width": 65.0, + "height": 12.726548, + "page": 17 + } + ], + "sectionNumber": 170, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 43, + "endOffset": 55, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "7eb5215fc27d88a7d731520d7621e3ad", + "type": "CBI_author", + "value": "Ufer, A.", + "reason": "Published Information found", + "matchedRule": 11, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.76862746, + 0.59607846, + 0.98039216 + ], + "positions": [ + { + "topLeft": { + "x": 271.0, + "y": 361.0 + }, + "width": 39.829987, + "height": 13.205933, + "page": 17 + } + ], + "sectionNumber": 174, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 113, + "endOffset": 121, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "ac95c6845c242e4bbcb6508b396776c4", + "type": "CBI_address", + "value": "Biomedical Sciences Building", + "reason": "Address found", + "matchedRule": 2, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 235.0, + "y": 149.0 + }, + "width": 157.77942, + "height": 13.264905, + "page": 17 + } + ], + "sectionNumber": 177, + "textBefore": "housed in the ", + "textAfter": ", Bassett Crescent", + "comments": [], + "startOffset": 191, + "endOffset": 219, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "43f30bf131552c0a645332a44b7f2535", + "type": "CBI_author", + "value": "Mead-Briggs, M.A.", + "reason": "Published Information found", + "matchedRule": 11, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.76862746, + 0.59607846, + 0.98039216 + ], + "positions": [ + { + "topLeft": { + "x": 388.0, + "y": 291.0 + }, + "width": 96.41803, + "height": 13.258383, + "page": 17 + } + ], + "sectionNumber": 174, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 544, + "endOffset": 561, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "ed44d9713dddba4ca9562d90c7e99f4b", + "type": "hint_only", + "value": "test facility", + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "Footer", + "color": [ + 0.98039216, + 0.59607846, + 0.96862745 + ], + "positions": [ + { + "topLeft": { + "x": 72.0, + "y": 16.0 + }, + "width": 59.07109, + "height": 12.824793, + "page": 17 + } + ], + "sectionNumber": 240, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 0, + "endOffset": 13, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": true, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "4de7c5593ba2fa8fa5a181ed618c7778", + "type": "CBI_author", + "value": "Forster, R", + "reason": "Author found", + "matchedRule": 1, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 311.0, + "y": 559.0 + }, + "width": 47.763763, + "height": 12.807779, + "page": 17 + } + ], + "sectionNumber": 171, + "textBefore": "K.L., Campbell, P., ", + "textAfter": "., Grandy, N.,", + "comments": [], + "startOffset": 42, + "endOffset": 52, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "32290639c4343c540b39e131a71439d9", + "type": "CBI_author", + "value": "Grandy, N", + "reason": "Published Information found", + "matchedRule": 11, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.76862746, + 0.59607846, + 0.98039216 + ], + "positions": [ + { + "topLeft": { + "x": 183.0, + "y": 645.0 + }, + "width": 52.096268, + "height": 12.794289, + "page": 17 + } + ], + "sectionNumber": 170, + "textBefore": "Barrett, K.L., ", + "textAfter": "., Harrison, E.G.,", + "comments": [], + "startOffset": 15, + "endOffset": 24, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "18212c4419f36bb15e576f069e2ac1a1", + "type": "CBI_author", + "value": "Bakker, F.M.", + "reason": "Published Information found", + "matchedRule": 11, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.76862746, + 0.59607846, + 0.98039216 + ], + "positions": [ + { + "topLeft": { + "x": 104.0, + "y": 291.0 + }, + "width": 65.698105, + "height": 12.904496, + "page": 17 + } + ], + "sectionNumber": 174, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 491, + "endOffset": 503, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "055582facd05663b1ea9a77587e669f2", + "type": "CBI_author", + "value": "Vogt, H.", + "reason": "Author found", + "matchedRule": 1, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 304.0, + "y": 545.0 + }, + "width": 45.466675, + "height": 12.900793, + "page": 17 + } + ], + "sectionNumber": 171, + "textBefore": "Schmuck, R. and ", + "textAfter": " (2001). Guidance", + "comments": [], + "startOffset": 120, + "endOffset": 128, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "5e10ab5eb6611bf22a38fbe5426fa55f", + "type": "CBI_address", + "value": "Mambo-Tox Ltd.", + "reason": "Address found", + "matchedRule": 2, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "Footer", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 139.0, + "y": 16.0 + }, + "width": 83.34999, + "height": 13.283176, + "page": 17 + } + ], + "sectionNumber": 240, + "textBefore": "Test Facility: ", + "textAfter": " Sponsor: Syngenta", + "comments": [], + "startOffset": 15, + "endOffset": 29, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "25ba6ae391ba57ca1d7d1f51194f9f65", + "type": "CBI_author", + "value": "Fowler, J.", + "reason": "Author found", + "matchedRule": 1, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 106.0, + "y": 418.0 + }, + "width": 46.156967, + "height": 13.250803, + "page": 17 + } + ], + "sectionNumber": 173, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 0, + "endOffset": 10, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "0d364d1245031ccfacb4372a825e73b6", + "type": "CBI_author", + "value": "Forster, R", + "reason": "Published Information found", + "matchedRule": 11, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.76862746, + 0.59607846, + 0.98039216 + ], + "positions": [ + { + "topLeft": { + "x": 467.0, + "y": 305.0 + }, + "width": 50.763733, + "height": 12.807779, + "page": 17 + } + ], + "sectionNumber": 174, + "textBefore": "M_P., Bliimel, S., ", + "textAfter": "., Bakker, F.M.,", + "comments": [], + "startOffset": 478, + "endOffset": 488, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "83709bd90f52f07d2a4be1f0e082e372", + "type": "CBI_author", + "value": "Candolfi, M.P.", + "reason": "Published Information found", + "matchedRule": 11, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.76862746, + 0.59607846, + 0.98039216 + ], + "positions": [ + { + "topLeft": { + "x": 269.0, + "y": 375.0 + }, + "width": 73.714874, + "height": 13.260299, + "page": 17 + } + ], + "sectionNumber": 174, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 30, + "endOffset": 44, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "d38e855215494d97723059d0e33b3cac", + "type": "hint_only", + "value": "references", + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.98039216, + 0.59607846, + 0.96862745 + ], + "positions": [ + { + "topLeft": { + "x": 108.0, + "y": 718.0 + }, + "width": 80.950134, + "height": 14.865781, + "page": 17 + } + ], + "sectionNumber": 168, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 3, + "endOffset": 13, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": true, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "0ebd295642767d7bb957f5d8e29b6b74", + "type": "CBI_author", + "value": "Hassan, S.A.", + "reason": "Published Information found", + "matchedRule": 11, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.76862746, + 0.59607846, + 0.98039216 + ], + "positions": [ + { + "topLeft": { + "x": 239.0, + "y": 291.0 + }, + "width": 64.513336, + "height": 12.7862, + "page": 17 + } + ], + "sectionNumber": 174, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 516, + "endOffset": 528, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "d70364f7f0d645b12e7d032188bc3765", + "type": "ocr", + "value": null, + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.7411765, + 0.8392157, + 1.0 + ], + "positions": [ + { + "topLeft": { + "x": 0.0, + "y": 0.0 + }, + "width": 595.0, + "height": 842.0, + "page": 17 + } + ], + "sectionNumber": 168, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 0, + "endOffset": 0, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": true, + "recommendation": false, + "image": true, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "33fbcd64bba68fb347db8ff450de7ab4", + "type": "hint_only", + "value": "test facility", + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "Footer", + "color": [ + 0.98039216, + 0.59607846, + 0.96862745 + ], + "positions": [ + { + "topLeft": { + "x": 71.0, + "y": 14.0 + }, + "width": 59.07109, + "height": 12.824793, + "page": 18 + } + ], + "sectionNumber": 241, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 0, + "endOffset": 13, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": true, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "755a8cfeff9dc1dee76615f7839951d1", + "type": "CBI_address", + "value": "Mambo-Tox Ltd.", + "reason": "Address found", + "matchedRule": 2, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "Footer", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 137.0, + "y": 14.0 + }, + "width": 83.34999, + "height": 13.283176, + "page": 18 + } + ], + "sectionNumber": 241, + "textBefore": "Test Facility; ", + "textAfter": " Sponsor: Syngenta", + "comments": [], + "startOffset": 15, + "endOffset": 29, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "a6da5c5284731f0a1e5e9ba523c06866", + "type": "ocr", + "value": null, + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.7411765, + 0.8392157, + 1.0 + ], + "positions": [ + { + "topLeft": { + "x": 0.0, + "y": 0.0 + }, + "width": 595.0, + "height": 842.0, + "page": 18 + } + ], + "sectionNumber": 178, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 0, + "endOffset": 0, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": true, + "recommendation": false, + "image": true, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "3e9889853d170e3848bd0ac0ef17edd8", + "type": "hint_only", + "value": "test facility", + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.98039216, + 0.59607846, + 0.96862745 + ], + "positions": [ + { + "topLeft": { + "x": 71.0, + "y": 16.0 + }, + "width": 59.756195, + "height": 12.620304, + "page": 19 + } + ], + "sectionNumber": 263, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 35, + "endOffset": 48, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": true, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "d6e02d4c3385f0b5a0f87354185742bc", + "type": "CBI_address", + "value": "Mambo-Tox Ltd.", + "reason": "Address found", + "matchedRule": 2, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 137.0, + "y": 16.0 + }, + "width": 83.0, + "height": 13.317305, + "page": 19 + } + ], + "sectionNumber": 263, + "textBefore": "21 Test Facility: ", + "textAfter": null, + "comments": [], + "startOffset": 50, + "endOffset": 64, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "ce05d56b2dd1346ca4f91272b07964d6", + "type": "ocr", + "value": null, + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.7411765, + 0.8392157, + 1.0 + ], + "positions": [ + { + "topLeft": { + "x": 0.0, + "y": 0.0 + }, + "width": 595.0, + "height": 842.0, + "page": 19 + } + ], + "sectionNumber": 189, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 0, + "endOffset": 0, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": true, + "recommendation": false, + "image": true, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "81dc9fff7f0213d8b51c347a38ec6129", + "type": "hint_only", + "value": "test facility", + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.98039216, + 0.59607846, + 0.96862745 + ], + "positions": [ + { + "topLeft": { + "x": 71.0, + "y": 14.0 + }, + "width": 59.756195, + "height": 12.620304, + "page": 20 + } + ], + "sectionNumber": 264, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 35, + "endOffset": 48, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": true, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "3811e1824d5cf6fe29eba4b3dc0b4d6b", + "type": "CBI_address", + "value": "Mambo-Tox Ltd.", + "reason": "Address found", + "matchedRule": 2, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 137.0, + "y": 14.0 + }, + "width": 83.0, + "height": 13.317305, + "page": 20 + } + ], + "sectionNumber": 264, + "textBefore": "21 Test Facility: ", + "textAfter": null, + "comments": [], + "startOffset": 50, + "endOffset": 64, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "1a4cab00d89980c99f8c8690db511b3a", + "type": "ocr", + "value": null, + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.7411765, + 0.8392157, + 1.0 + ], + "positions": [ + { + "topLeft": { + "x": 0.0, + "y": 0.0 + }, + "width": 595.0, + "height": 842.0, + "page": 20 + } + ], + "sectionNumber": 200, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 0, + "endOffset": 0, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": true, + "recommendation": false, + "image": true, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "8aa24ecc6839880a6ed91e09de5ea7a9", + "type": "hint_only", + "value": "test facility", + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.98039216, + 0.59607846, + 0.96862745 + ], + "positions": [ + { + "topLeft": { + "x": 354.0, + "y": 706.0 + }, + "width": 63.33615, + "height": 13.514938, + "page": 21 + } + ], + "sectionNumber": 213, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 51, + "endOffset": 64, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": true, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "c7f0f1696a41990961631b9d1392cb9b", + "type": "hint_only", + "value": "test facility", + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.98039216, + 0.59607846, + 0.96862745 + ], + "positions": [ + { + "topLeft": { + "x": 68.0, + "y": 17.0 + }, + "width": 58.756195, + "height": 12.620304, + "page": 21 + } + ], + "sectionNumber": 265, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 35, + "endOffset": 48, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": true, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "f4ff4975f7ef8ce2758cf6d455667af1", + "type": "CBI_address", + "value": "Mambo-Tox Ltd.", + "reason": "Address found", + "matchedRule": 2, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 134.0, + "y": 17.0 + }, + "width": 83.0, + "height": 13.447645, + "page": 21 + } + ], + "sectionNumber": 265, + "textBefore": "21 Test Facility: ", + "textAfter": null, + "comments": [], + "startOffset": 50, + "endOffset": 64, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "07f41c4068065772ba0c239797b394c8", + "type": "CBI_author", + "value": "Roger G.", + "reason": "Author found", + "matchedRule": 1, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 315.0, + "y": 157.0 + }, + "width": 17.024994, + "height": 9.93606, + "page": 21 + }, + { + "topLeft": { + "x": 333.0, + "y": 156.0 + }, + "width": 7.1268616, + "height": 10.086437, + "page": 21 + } + ], + "sectionNumber": 223, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 12, + "endOffset": 20, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + }, + { + "id": "1d0b80e99a0ab9b9305e6633dddb558d", + "type": "CBI_address", + "value": "Bassett Crescent East", + "reason": "Address found", + "matchedRule": 2, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 137.0, + "y": 407.0 + }, + "width": 77.0, + "height": 10.678076, + "page": 21 + } + ], + "sectionNumber": 218, + "textBefore": "Biomedical Sciences Building ", + "textAfter": " Southampton Hampshire", + "comments": [], + "startOffset": 45, + "endOffset": 66, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "d8f99aedd53309cebebd337156f31ecb", + "type": "CBI_author", + "value": "Alexander", + "reason": "Author found", + "matchedRule": 1, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 342.0, + "y": 156.0 + }, + "width": 30.100006, + "height": 10.178434, + "page": 21 + } + ], + "sectionNumber": 223, + "textBefore": "Dr. Roger G. ", + "textAfter": " Head, UK", + "comments": [], + "startOffset": 21, + "endOffset": 30, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "f5f63e9d258394d78294ff3dd7f48c12", + "type": "CBI_address", + "value": "Biomedical Sciences Building", + "reason": "Address found", + "matchedRule": 2, + "rectangle": false, + "legalBasis": "Article 39(e)(3) of Regulation (EC) No 178/2002", + "imported": false, + "redacted": true, + "section": "", + "color": [ + 0.5764706, + 0.59607846, + 0.627451 + ], + "positions": [ + { + "topLeft": { + "x": 137.0, + "y": 415.0 + }, + "width": 102.95003, + "height": 11.025991, + "page": 21 + } + ], + "sectionNumber": 218, + "textBefore": "Mambo -Tox Ltd. ", + "textAfter": " Bassett Crescent", + "comments": [], + "startOffset": 16, + "endOffset": 44, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "DICTIONARY" + ], + "reference": null, + "dossierDictionaryEntry": true, + "hint": false, + "recommendation": false, + "image": false, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": true, + "localManualRedaction": false + }, + { + "id": "66de3cfe53b5372356ab2a0fa3c7deb0", + "type": "ocr", + "value": null, + "reason": null, + "matchedRule": 0, + "rectangle": false, + "legalBasis": null, + "imported": false, + "redacted": false, + "section": "", + "color": [ + 0.7411765, + 0.8392157, + 1.0 + ], + "positions": [ + { + "topLeft": { + "x": 0.0, + "y": 0.0 + }, + "width": 595.0, + "height": 842.0, + "page": 21 + } + ], + "sectionNumber": 213, + "textBefore": null, + "textAfter": null, + "comments": [], + "startOffset": 0, + "endOffset": 0, + "imageHasTransparency": false, + "excluded": false, + "changes": [ + { + "analysisNumber": 1, + "type": "ADDED", + "dateTime": "2021-07-09T06:54:09Z" + } + ], + "manualChanges": [], + "engines": [ + "RULE" + ], + "reference": null, + "dossierDictionaryEntry": false, + "hint": true, + "recommendation": false, + "image": true, + "manuallyRemoved": false, + "falsePositive": false, + "dictionaryEntry": false, + "localManualRedaction": false + } + ], + "legalBasis": [ + { + "name": "1.1 personal data (incl. geolocation); Article 39(e)(1)", + "description": "any other personal data except for\n a. the name and address of the applicant;\n b. the names of authors of published or publicly available studies supporting such requests; and the names of all participants and observers in meetings of the Scientific Committee and the Scientific Panels, their working groups and any other ad hoc group meeting on the subject matter.", + "reason": "Article 39(e)(3) of Regulation (EC) No 178/2002" + }, + { + "name": "1.2 vertebrate study related personal data (incl. geolocation); Article 39(e)(2)", + "description": "personal data (names and addresses) of individuals involved in testing on vertebrate studies or in obtaining toxicological information", + "reason": "Article 39(e)(2) of Regulation (EC) No 178/2002" + }, + { + "name": "2. manufacturing or production process", + "description": "the manufacturing or production process, including the method and innovative aspects thereof, as well as other technical and industrial specifications inherent to that process or method, except for information which is relevant to the assessment of safety", + "reason": "Article 63(2)(a) of Regulation (EC) No 1107/2009 (making reference to Article 39 of Regulation EC No 178/2002)" + }, + { + "name": "3. links between a producer and applicant", + "description": "commercial links between a producer or importer and the applicant or the authorisation holder, where applicable;", + "reason": "Article 63(2)(a) of Regulation (EC) No 1107/2009 (making reference to Article 39 of Regulation EC No 178/2002)" + }, + { + "name": "4. commercial information", + "description": "commercial information revealing sourcing, market shares or business strategy of the applicant", + "reason": "Article 63(2)(a) of Regulation (EC) No 1107/2009 (making reference to Article 39 of Regulation EC No 178/2002)" + }, + { + "name": "5. quantitative composition", + "description": "quantitative composition of the subject matter of the request, except for information which is relevant to the assessment of safety", + "reason": "Article 63(2)(a) of Regulation (EC) No 1107/2009 (making reference to Article 39 of Regulation EC No 178/2002)" + }, + { + "name": "6. specification of impurity", + "description": "the specification of impurity of the active substance and the related methods of analysis for impurities in the active substance as manufactured, except for the impurities that are considered to be toxicologically, ecotoxicologically or environmentally relevant and the related methods of analysis for such impurities", + "reason": "Article 63(2)(b) of Regulation (EC) No 1107/2009" + }, + { + "name": "7. results of production batches", + "description": "results of production batches of the active substance including impurities", + "reason": "Article 63(2)(c) of Regulation (EC) No 1107/2009" + }, + { + "name": "8. composition of a plant protection product", + "description": "information on the complete composition of a plant protection product", + "reason": "Article 63(2)(d) of Regulation (EC) No 1107/2009" + } + ], + "dictionaryVersion": 492, + "dossierDictionaryVersion": 1, + "rulesVersion": 15, + "legalBasisVersion": 1 +} \ No newline at end of file diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/migration/def8f960580f088b975ba806dfae1f87.TABLES.json b/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/migration/def8f960580f088b975ba806dfae1f87.TABLES.json new file mode 100644 index 00000000..64975f82 --- /dev/null +++ b/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/migration/def8f960580f088b975ba806dfae1f87.TABLES.json @@ -0,0 +1,682 @@ +{ + "dossierId": "12778ddd-0d87-4127-90f4-a15802e8f967", + "fileId": "4a15b5c89a4310eaef6243fb6f1f4f6f", + "targetFileExtension": "ORIGIN.pdf.gz", + "responseFileExtension": "TABLES.json.gz", + "X-TENANT-ID": "documine", + "operation": "table", + "data": [ + { + "pageInfo": { + "number": 4, + "rotation": 0, + "width": 595.0, + "height": 842.0 + }, + "tableCells": [ + { + "x0": 299.5199890136719, + "y0": 262.760009765625, + "x1": 359.6400146484375, + "y1": 284.0, + "width": 60.120025634765625, + "height": 21.239990234375 + }, + { + "x0": 360.7200012207031, + "y0": 262.760009765625, + "x1": 383.3999938964844, + "y1": 284.0, + "width": 22.67999267578125, + "height": 21.239990234375 + }, + { + "x0": 384.1199951171875, + "y0": 262.4000244140625, + "x1": 477.7200012207031, + "y1": 284.0, + "width": 93.60000610351562, + "height": 21.5999755859375 + }, + { + "x0": 114.12000274658203, + "y0": 264.20001220703125, + "x1": 140.0399932861328, + "y1": 274.6400146484375, + "width": 25.91999053955078, + "height": 10.44000244140625 + }, + { + "x0": 141.1199951171875, + "y0": 263.47998046875, + "x1": 208.8000030517578, + "y1": 274.6400146484375, + "width": 67.68000793457031, + "height": 11.1600341796875 + }, + { + "x0": 209.52000427246094, + "y0": 263.47998046875, + "x1": 256.67999267578125, + "y1": 274.6400146484375, + "width": 47.15998840332031, + "height": 11.1600341796875 + }, + { + "x0": 78.83999633789062, + "y0": 253.03997802734375, + "x1": 208.8000030517578, + "y1": 262.760009765625, + "width": 129.9600067138672, + "height": 9.72003173828125 + }, + { + "x0": 209.52000427246094, + "y0": 253.03997802734375, + "x1": 256.67999267578125, + "y1": 262.4000244140625, + "width": 47.15998840332031, + "height": 9.36004638671875 + }, + { + "x0": 299.5199890136719, + "y0": 250.52001953125, + "x1": 359.6400146484375, + "y1": 262.03997802734375, + "width": 60.120025634765625, + "height": 11.51995849609375 + }, + { + "x0": 399.6000061035156, + "y0": 250.52001953125, + "x1": 477.7200012207031, + "y1": 261.32000732421875, + "width": 78.1199951171875, + "height": 10.79998779296875 + } + ] + }, + { + "pageInfo": { + "number": 11, + "rotation": 0, + "width": 595.0, + "height": 842.0 + }, + "tableCells": [ + { + "x0": 217.8000030517578, + "y0": 147.55999755859375, + "x1": 398.5199890136719, + "y1": 171.67999267578125, + "width": 180.71998596191406, + "height": 24.1199951171875 + }, + { + "x0": 229.67999267578125, + "y0": 121.280029296875, + "x1": 306.7200012207031, + "y1": 148.280029296875, + "width": 77.04000854492188, + "height": 27.0 + }, + { + "x0": 307.44000244140625, + "y0": 121.280029296875, + "x1": 399.239990234375, + "y1": 147.55999755859375, + "width": 91.79998779296875, + "height": 26.27996826171875 + } + ] + }, + { + "pageInfo": { + "number": 18, + "rotation": 0, + "width": 595.0, + "height": 842.0 + }, + "tableCells": [ + { + "x0": 64.08000183105469, + "y0": 585.6799926757812, + "x1": 220.67999267578125, + "y1": 614.1199951171875, + "width": 156.59999084472656, + "height": 28.44000244140625 + }, + { + "x0": 221.75999450683594, + "y0": 584.9599609375, + "x1": 309.9599914550781, + "y1": 614.1199951171875, + "width": 88.19999694824219, + "height": 29.1600341796875 + }, + { + "x0": 311.3999938964844, + "y0": 584.239990234375, + "x1": 399.9599914550781, + "y1": 614.1199951171875, + "width": 88.55999755859375, + "height": 29.8800048828125 + }, + { + "x0": 401.0400085449219, + "y0": 583.52001953125, + "x1": 494.2799987792969, + "y1": 614.1199951171875, + "width": 93.239990234375, + "height": 30.5999755859375 + }, + { + "x0": 495.3599853515625, + "y0": 583.1600341796875, + "x1": 537.1199951171875, + "y1": 614.1199951171875, + "width": 41.760009765625, + "height": 30.9599609375 + }, + { + "x0": 64.08000183105469, + "y0": 262.760009765625, + "x1": 220.32000732421875, + "y1": 585.3200073242188, + "width": 156.24000549316406, + "height": 322.55999755859375 + }, + { + "x0": 221.39999389648438, + "y0": 543.5599975585938, + "x1": 309.9599914550781, + "y1": 584.239990234375, + "width": 88.55999755859375, + "height": 40.67999267578125 + }, + { + "x0": 311.0400085449219, + "y0": 542.47998046875, + "x1": 399.9599914550781, + "y1": 583.1600341796875, + "width": 88.91998291015625, + "height": 40.6800537109375 + }, + { + "x0": 400.67999267578125, + "y0": 541.760009765625, + "x1": 493.9200134277344, + "y1": 582.4400024414062, + "width": 93.24002075195312, + "height": 40.67999267578125 + }, + { + "x0": 495.0, + "y0": 541.760009765625, + "x1": 537.1199951171875, + "y1": 581.719970703125, + "width": 42.1199951171875, + "height": 39.9599609375 + }, + { + "x0": 220.67999267578125, + "y0": 485.6000061035156, + "x1": 309.239990234375, + "y1": 543.2000122070312, + "width": 88.55999755859375, + "height": 57.600006103515625 + }, + { + "x0": 310.32000732421875, + "y0": 484.8800048828125, + "x1": 399.239990234375, + "y1": 542.1199951171875, + "width": 88.91998291015625, + "height": 57.239990234375 + }, + { + "x0": 399.9599914550781, + "y0": 484.1600036621094, + "x1": 493.9200134277344, + "y1": 541.4000244140625, + "width": 93.96002197265625, + "height": 57.240020751953125 + }, + { + "x0": 494.6400146484375, + "y0": 483.79998779296875, + "x1": 537.1199951171875, + "y1": 540.6799926757812, + "width": 42.47998046875, + "height": 56.8800048828125 + }, + { + "x0": 219.9600067138672, + "y0": 438.0799865722656, + "x1": 308.8800048828125, + "y1": 485.239990234375, + "width": 88.91999816894531, + "height": 47.160003662109375 + }, + { + "x0": 309.6000061035156, + "y0": 437.3599853515625, + "x1": 398.8800048828125, + "y1": 484.1600036621094, + "width": 89.27999877929688, + "height": 46.800018310546875 + }, + { + "x0": 399.6000061035156, + "y0": 436.6400146484375, + "x1": 493.20001220703125, + "y1": 483.44000244140625, + "width": 93.60000610351562, + "height": 46.79998779296875 + }, + { + "x0": 493.9200134277344, + "y0": 436.2799987792969, + "x1": 537.1199951171875, + "y1": 482.7200012207031, + "width": 43.199981689453125, + "height": 46.44000244140625 + }, + { + "x0": 219.60000610351562, + "y0": 388.0400085449219, + "x1": 308.1600036621094, + "y1": 437.7200012207031, + "width": 88.55999755859375, + "height": 49.67999267578125 + }, + { + "x0": 309.239990234375, + "y0": 387.32000732421875, + "x1": 398.5199890136719, + "y1": 436.6400146484375, + "width": 89.27999877929688, + "height": 49.32000732421875 + }, + { + "x0": 398.8800048828125, + "y0": 386.6000061035156, + "x1": 492.8399963378906, + "y1": 435.9200134277344, + "width": 93.95999145507812, + "height": 49.32000732421875 + }, + { + "x0": 493.9200134277344, + "y0": 385.8800048828125, + "x1": 537.1199951171875, + "y1": 435.20001220703125, + "width": 43.199981689453125, + "height": 49.32000732421875 + }, + { + "x0": 218.8800048828125, + "y0": 339.0799865722656, + "x1": 307.79998779296875, + "y1": 387.67999267578125, + "width": 88.91998291015625, + "height": 48.600006103515625 + }, + { + "x0": 308.5199890136719, + "y0": 338.3599853515625, + "x1": 397.79998779296875, + "y1": 386.6000061035156, + "width": 89.27999877929688, + "height": 48.240020751953125 + }, + { + "x0": 398.5199890136719, + "y0": 337.6400146484375, + "x1": 492.4800109863281, + "y1": 385.8800048828125, + "width": 93.96002197265625, + "height": 48.239990234375 + }, + { + "x0": 493.20001220703125, + "y0": 337.2799987792969, + "x1": 537.1199951171875, + "y1": 385.1600036621094, + "width": 43.91998291015625, + "height": 47.8800048828125 + }, + { + "x0": 218.16000366210938, + "y0": 289.03997802734375, + "x1": 307.0799865722656, + "y1": 338.7200012207031, + "width": 88.91998291015625, + "height": 49.680023193359375 + }, + { + "x0": 308.1600036621094, + "y0": 288.32000732421875, + "x1": 397.44000244140625, + "y1": 337.6400146484375, + "width": 89.27999877929688, + "height": 49.32000732421875 + }, + { + "x0": 398.1600036621094, + "y0": 287.96002197265625, + "x1": 492.1199951171875, + "y1": 336.9200134277344, + "width": 93.95999145507812, + "height": 48.959991455078125 + }, + { + "x0": 492.8399963378906, + "y0": 287.239990234375, + "x1": 537.1199951171875, + "y1": 336.20001220703125, + "width": 44.279998779296875, + "height": 48.96002197265625 + }, + { + "x0": 217.8000030517578, + "y0": 262.760009765625, + "x1": 306.7200012207031, + "y1": 288.67999267578125, + "width": 88.91999816894531, + "height": 25.91998291015625 + }, + { + "x0": 307.79998779296875, + "y0": 262.760009765625, + "x1": 397.0799865722656, + "y1": 287.96002197265625, + "width": 89.27999877929688, + "height": 25.20001220703125 + }, + { + "x0": 397.79998779296875, + "y0": 262.760009765625, + "x1": 492.1199951171875, + "y1": 287.239990234375, + "width": 94.32000732421875, + "height": 24.47998046875 + }, + { + "x0": 492.8399963378906, + "y0": 262.760009765625, + "x1": 537.1199951171875, + "y1": 286.52001953125, + "width": 44.279998779296875, + "height": 23.760009765625 + } + ] + }, + { + "pageInfo": { + "number": 19, + "rotation": 0, + "width": 595.0, + "height": 842.0 + }, + "tableCells": [ + { + "x0": 71.27999877929688, + "y0": 620.239990234375, + "x1": 231.47999572753906, + "y1": 643.280029296875, + "width": 160.1999969482422, + "height": 23.0400390625 + }, + { + "x0": 232.55999755859375, + "y0": 618.7999877929688, + "x1": 333.3599853515625, + "y1": 643.280029296875, + "width": 100.79998779296875, + "height": 24.48004150390625 + }, + { + "x0": 334.0799865722656, + "y0": 617.719970703125, + "x1": 434.1600036621094, + "y1": 643.280029296875, + "width": 100.08001708984375, + "height": 25.56005859375 + }, + { + "x0": 435.6000061035156, + "y0": 616.6400146484375, + "x1": 537.1199951171875, + "y1": 643.280029296875, + "width": 101.51998901367188, + "height": 26.6400146484375 + }, + { + "x0": 71.27999877929688, + "y0": 47.84002685546875, + "x1": 230.75999450683594, + "y1": 620.5999755859375, + "width": 159.47999572753906, + "height": 572.7599487304688 + }, + { + "x0": 231.83999633789062, + "y0": 559.4000244140625, + "x1": 333.0, + "y1": 618.7999877929688, + "width": 101.16000366210938, + "height": 59.39996337890625 + }, + { + "x0": 333.7200012207031, + "y0": 557.9599609375, + "x1": 433.79998779296875, + "y1": 617.3599853515625, + "width": 100.07998657226562, + "height": 59.4000244140625 + }, + { + "x0": 434.8800048828125, + "y0": 556.8800048828125, + "x1": 537.1199951171875, + "y1": 615.9199829101562, + "width": 102.239990234375, + "height": 59.03997802734375 + }, + { + "x0": 230.39999389648438, + "y0": 488.4800109863281, + "x1": 332.2799987792969, + "y1": 559.0400390625, + "width": 101.8800048828125, + "height": 70.56002807617188 + }, + { + "x0": 332.6400146484375, + "y0": 487.0400085449219, + "x1": 433.0799865722656, + "y1": 557.9599609375, + "width": 100.43997192382812, + "height": 70.91995239257812 + }, + { + "x0": 433.79998779296875, + "y0": 485.9599914550781, + "x1": 537.1199951171875, + "y1": 556.52001953125, + "width": 103.32000732421875, + "height": 70.56002807617188 + }, + { + "x0": 229.32000732421875, + "y0": 417.20001220703125, + "x1": 331.55999755859375, + "y1": 488.1199951171875, + "width": 102.239990234375, + "height": 70.91998291015625 + }, + { + "x0": 331.55999755859375, + "y0": 416.1199951171875, + "x1": 432.0, + "y1": 487.0400085449219, + "width": 100.44000244140625, + "height": 70.92001342773438 + }, + { + "x0": 432.7200012207031, + "y0": 415.0400085449219, + "x1": 537.1199951171875, + "y1": 485.6000061035156, + "width": 104.39999389648438, + "height": 70.55999755859375 + }, + { + "x0": 228.24000549316406, + "y0": 346.6400146484375, + "x1": 330.1199951171875, + "y1": 417.20001220703125, + "width": 101.87998962402344, + "height": 70.55999755859375 + }, + { + "x0": 330.4800109863281, + "y0": 345.20001220703125, + "x1": 431.2799987792969, + "y1": 416.1199951171875, + "width": 100.79998779296875, + "height": 70.91998291015625 + }, + { + "x0": 432.0, + "y0": 344.1199951171875, + "x1": 537.1199951171875, + "y1": 414.67999267578125, + "width": 105.1199951171875, + "height": 70.55999755859375 + }, + { + "x0": 227.16000366210938, + "y0": 276.08001708984375, + "x1": 329.3999938964844, + "y1": 346.2799987792969, + "width": 102.239990234375, + "height": 70.19998168945312 + }, + { + "x0": 329.760009765625, + "y0": 274.6400146484375, + "x1": 430.55999755859375, + "y1": 345.20001220703125, + "width": 100.79998779296875, + "height": 70.55999755859375 + }, + { + "x0": 431.2799987792969, + "y0": 273.55999755859375, + "x1": 537.1199951171875, + "y1": 343.760009765625, + "width": 105.83999633789062, + "height": 70.20001220703125 + }, + { + "x0": 226.0800018310547, + "y0": 205.15997314453125, + "x1": 328.32000732421875, + "y1": 275.719970703125, + "width": 102.24000549316406, + "height": 70.55999755859375 + }, + { + "x0": 328.67999267578125, + "y0": 203.719970703125, + "x1": 429.4800109863281, + "y1": 274.6400146484375, + "width": 100.80001831054688, + "height": 70.9200439453125 + }, + { + "x0": 430.55999755859375, + "y0": 203.0, + "x1": 537.1199951171875, + "y1": 273.20001220703125, + "width": 106.55999755859375, + "height": 70.20001220703125 + }, + { + "x0": 224.63999938964844, + "y0": 133.52001953125, + "x1": 327.239990234375, + "y1": 205.15997314453125, + "width": 102.59999084472656, + "height": 71.63995361328125 + }, + { + "x0": 327.6000061035156, + "y0": 132.08001708984375, + "x1": 428.760009765625, + "y1": 203.719970703125, + "width": 101.16000366210938, + "height": 71.63995361328125 + }, + { + "x0": 429.1199951171875, + "y0": 131.0, + "x1": 537.1199951171875, + "y1": 202.280029296875, + "width": 108.0, + "height": 71.280029296875 + }, + { + "x0": 223.9199981689453, + "y0": 61.8800048828125, + "x1": 326.5199890136719, + "y1": 133.52001953125, + "width": 102.59999084472656, + "height": 71.6400146484375 + }, + { + "x0": 326.5199890136719, + "y0": 60.44000244140625, + "x1": 427.67999267578125, + "y1": 132.44000244140625, + "width": 101.16000366210938, + "height": 72.0 + }, + { + "x0": 428.3999938964844, + "y0": 59.3599853515625, + "x1": 537.1199951171875, + "y1": 131.0, + "width": 108.72000122070312, + "height": 71.6400146484375 + }, + { + "x0": 223.55999755859375, + "y0": 47.84002685546875, + "x1": 325.79998779296875, + "y1": 61.8800048828125, + "width": 102.239990234375, + "height": 14.03997802734375 + }, + { + "x0": 326.1600036621094, + "y0": 47.84002685546875, + "x1": 426.9599914550781, + "y1": 60.44000244140625, + "width": 100.79998779296875, + "height": 12.5999755859375 + }, + { + "x0": 428.0400085449219, + "y0": 47.84002685546875, + "x1": 537.1199951171875, + "y1": 59.3599853515625, + "width": 109.07998657226562, + "height": 11.51995849609375 + } + ] + } + ] +} \ No newline at end of file diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/migration/legacy_redactionlog.json b/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/migration/legacy_redactionlog.json deleted file mode 100644 index 46d9a1ae..00000000 --- a/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/migration/legacy_redactionlog.json +++ /dev/null @@ -1 +0,0 @@ -{"analysisVersion":1,"analysisNumber":0,"redactionLogEntry":[{"id":"2d9e1b1baaca3fac422c05c0d9721937","type":"PII","value":"Page","reason":"PII (Personal Identification Information) found","matchedRule":14,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":45,"textBefore":"This is a ","textAfter":"-Footer","comments":[],"startOffset":10,"endOffset":14,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243351729+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"188e6ba388f6bef50e69a7fa3672768e","type":"CBI_author","value":"Mustermann","reason":"No Vertebrate found","matchedRule":2,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 1/2: Redact CBI Authors based on Dict","color":[0.8,0.8,0.8],"positions":[{"topLeft":{"x":81.796005,"y":294.04202},"width":60.576004,"height":-12.641998,"page":1}],"sectionNumber":2,"textBefore":"David Ksenia Max ","textAfter":" Ranya Eikenboom","comments":[],"startOffset":131,"endOffset":141,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243369301+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"8db3b591647b0106ef78667468be105b","type":"CBI_author","value":"Doe","reason":"No Vertebrate found","matchedRule":2,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"","color":[0.8,0.8,0.8],"positions":[{"topLeft":{"x":131.776,"y":429.14203},"width":20.003998,"height":-12.641998,"page":1}],"sectionNumber":1,"textBefore":"F. Lastname, J. ","textAfter":", M. Mustermann","comments":[],"startOffset":67,"endOffset":70,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243371886+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"00ac3ed9b409f2ed8e9c735d98735011","type":"PII","value":"Page","reason":"PII (Personal Identification Information) found","matchedRule":14,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":36,"textBefore":"This is a ","textAfter":"-Header","comments":[],"startOffset":10,"endOffset":14,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243373132+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"28d8a6badb6870096775ccf4b73b0401","type":"PII","value":"David","reason":"PII (Personal Identification Information) found","matchedRule":14,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":307.84204},"width":29.291996,"height":-12.641998,"page":1}],"sectionNumber":2,"textBefore":"Study is No ","textAfter":" Ksenia Max","comments":[],"startOffset":114,"endOffset":119,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243374232+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"4838873220a40a2182ae7d8c22132571","type":"CBI_author","value":"Lastname M.","reason":"No Vertebrate found","matchedRule":2,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"","color":[0.8,0.8,0.8],"positions":[{"topLeft":{"x":56.8,"y":415.34204},"width":63.275997,"height":-12.641998,"page":1}],"sectionNumber":1,"textBefore":"Doe, M. Mustermann ","textAfter":", Doe J.","comments":[],"startOffset":86,"endOffset":97,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243375288+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"040b78c7ac09c65797d5d8ae3df90452","type":"CBI_author","value":"Mustermann M.","reason":"No Vertebrate found","matchedRule":2,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"","color":[0.8,0.8,0.8],"positions":[{"topLeft":{"x":159.66399,"y":415.34204},"width":77.36401,"height":-12.641998,"page":1}],"sectionNumber":1,"textBefore":"M., Doe J. ","textAfter":null,"comments":[],"startOffset":106,"endOffset":119,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243376289+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"354a1995d18c26c1071d7b15d77f6502","type":"CBI_author","value":"F. Lastname","reason":"No Vertebrate found","matchedRule":2,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"","color":[0.8,0.8,0.8],"positions":[{"topLeft":{"x":56.8,"y":429.14203},"width":58.295994,"height":-12.641998,"page":1}],"sectionNumber":1,"textBefore":"with firstname initials ","textAfter":", J. Doe,","comments":[],"startOffset":51,"endOffset":62,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243377325+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"b9f9423e69e7d50367b18b9c01d0a133","type":"CBI_author","value":"Doe J.","reason":"No Vertebrate found","matchedRule":2,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"","color":[0.8,0.8,0.8],"positions":[{"topLeft":{"x":126.076,"y":415.34204},"width":30.58799,"height":-12.641998,"page":1}],"sectionNumber":1,"textBefore":"Mustermann Lastname M., ","textAfter":" Mustermann M.","comments":[],"startOffset":99,"endOffset":105,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243378585+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"9a8f34beeeb8c30c54c40515a9d8b4a4","type":"CBI_author","value":"M. Mustermann","reason":"No Vertebrate found","matchedRule":2,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"","color":[0.8,0.8,0.8],"positions":[{"topLeft":{"x":157.768,"y":429.14203},"width":77.268005,"height":-12.641998,"page":1}],"sectionNumber":1,"textBefore":"Lastname, J. Doe, ","textAfter":" Lastname M.,","comments":[],"startOffset":72,"endOffset":85,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243379537+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"9020b603ab5f447ab58f2708a03c683f","type":"CBI_address","value":"Netherlands","reason":"No Vertebrate found","matchedRule":2,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 3/4: Redact (not) CBI Add/ress based on Dict","color":[0.8,0.8,0.8],"positions":[{"topLeft":{"x":217.252,"y":647.642},"width":57.86403,"height":-12.641998,"page":2}],"sectionNumber":3,"textBefore":"7232 CX Warnsveld, ","textAfter":", NL Institut","comments":[],"startOffset":174,"endOffset":185,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243380532+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"d8b821220916bf878bf818e445f9978a","type":"PII","value":"Page","reason":"PII (Personal Identification Information) found","matchedRule":14,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":46,"textBefore":"This is a ","textAfter":"-Footer","comments":[],"startOffset":10,"endOffset":14,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243381509+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"4d7e41d8f0903ccf13b56b7ddf92447f","type":"PII","value":"Page","reason":"PII (Personal Identification Information) found","matchedRule":14,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":37,"textBefore":"This is a ","textAfter":"-Header","comments":[],"startOffset":10,"endOffset":14,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243382661+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"af12c1348dfbf842c3f70740da4f8f1c","type":"CBI_author","value":"Melanie","reason":"Author found","matchedRule":12,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2g)","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":455.14203},"width":39.300003,"height":-12.641998,"page":3}],"sectionNumber":12,"textBefore":"dolore magna aliqua ","textAfter":" et al.","comments":[],"startOffset":292,"endOffset":299,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243383648+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"d012b10977bd4d3cc1199323a51ba8b9","type":"CBI_author","value":"Melanie","reason":"Author found","matchedRule":12,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2g)","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":481.235},"width":32.710007,"height":-11.535004,"page":3}],"sectionNumber":12,"textBefore":"Term “Desiree”, “","textAfter":"” and add","comments":[],"startOffset":77,"endOffset":84,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.24338468+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"e56839ce73666cf9f00723b97cb59360","type":"must_redact","value":"bl","reason":null,"matchedRule":0,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 12/13: Redact/Hint if CTL or BL was found","color":[0.98039216,0.7058824,0.7529412],"positions":[{"topLeft":{"x":56.8,"y":633.84204},"width":15.312,"height":-12.641998,"page":3}],"sectionNumber":11,"textBefore":null,"textAfter":null,"comments":[],"startOffset":163,"endOffset":165,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.24338574+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":true,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"b0ee886cd35ead9073665e931fb19073","type":"CBI_author","value":"Desiree","reason":"Author found","matchedRule":12,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2g)","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":481.235},"width":30.700005,"height":-11.535004,"page":3}],"sectionNumber":12,"textBefore":"Redact Term “","textAfter":"”, “Melanie” and","comments":[],"startOffset":66,"endOffset":73,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243386688+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"844c845dd528a3306ddaa68bfca78686","type":"must_redact","value":"ctl","reason":null,"matchedRule":0,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 12/13: Redact/Hint if CTL or BL was found","color":[0.98039216,0.7058824,0.7529412],"positions":[{"topLeft":{"x":229.79291,"y":705.9678},"width":27.382202,"height":-13.867798,"page":3}],"sectionNumber":11,"textBefore":null,"textAfter":null,"comments":[],"startOffset":27,"endOffset":30,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243387658+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":true,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"4e8ed7c89ef19c9fd0d068ced5169639","type":"CBI_author","value":"Desiree","reason":"Author found","matchedRule":12,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2g)","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":468.94202},"width":36.57602,"height":-12.641998,"page":3}],"sectionNumber":12,"textBefore":"consectetur adipiscing elit ","textAfter":" et al","comments":[],"startOffset":212,"endOffset":219,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243388695+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"e8b8848ca52246fc70d30a8dcd9dbec1","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":209.716,"y":356.74203},"width":32.60399,"height":-12.641998,"page":3}],"sectionNumber":13,"textBefore":null,"textAfter":null,"comments":[],"startOffset":169,"endOffset":174,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243389668+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"hint":true,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"6297da8bcb4ad9fda3729af2bfd0aa61","type":"PII","value":"Page","reason":"PII (Personal Identification Information) found","matchedRule":14,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":38,"textBefore":"This is a ","textAfter":"-Header","comments":[],"startOffset":10,"endOffset":14,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243390614+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"45486705028b69c37a26119aa2a97ad0","type":"must_redact","value":"ctl","reason":null,"matchedRule":0,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 12/13: Redact/Hint if CTL or BL was found","color":[0.98039216,0.7058824,0.7529412],"positions":[{"topLeft":{"x":56.8,"y":592.442},"width":22.607998,"height":-12.641998,"page":3}],"sectionNumber":11,"textBefore":null,"textAfter":null,"comments":[],"startOffset":208,"endOffset":211,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243391561+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":true,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"6a22b564909681c1ef1715699b814b64","type":"must_redact","value":"bl","reason":null,"matchedRule":0,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 12/13: Redact/Hint if CTL or BL was found","color":[0.98039216,0.7058824,0.7529412],"positions":[{"topLeft":{"x":278.87503,"y":705.9678},"width":18.78122,"height":-13.867798,"page":3}],"sectionNumber":11,"textBefore":null,"textAfter":null,"comments":[],"startOffset":34,"endOffset":36,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243392552+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":true,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"f334f16549061c2be9f8c872deb762fa","type":"PII","value":"Page","reason":"PII (Personal Identification Information) found","matchedRule":14,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":47,"textBefore":"This is a ","textAfter":"-Footer","comments":[],"startOffset":10,"endOffset":14,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.24339345+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"22e5997a9d2dd5b90c394b41df46bdb2","type":"vertebrate","value":"mouse","reason":null,"matchedRule":0,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 16/17 (additional) negative Test; missing second Key","color":[1.0,0.52156866,0.96862745],"positions":[{"topLeft":{"x":348.59204,"y":148.84204},"width":32.604004,"height":-12.642029,"page":3}],"sectionNumber":15,"textBefore":null,"textAfter":null,"comments":[],"startOffset":203,"endOffset":208,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243394515+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"hint":true,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"e9092f4ef1d0630c46a1344bff41ee56","type":"must_redact","value":"bl","reason":null,"matchedRule":0,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 12/13: Redact/Hint if CTL or BL was found","color":[0.98039216,0.7058824,0.7529412],"positions":[{"topLeft":{"x":56.8,"y":620.04205},"width":15.312,"height":-12.641998,"page":3}],"sectionNumber":11,"textBefore":null,"textAfter":null,"comments":[],"startOffset":191,"endOffset":193,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243395506+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":true,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"c4c93e8f52891ea116181b369eee1c0f","type":"must_redact","value":"bl","reason":null,"matchedRule":0,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 12/13: Redact/Hint if CTL or BL was found","color":[0.98039216,0.7058824,0.7529412],"positions":[{"topLeft":{"x":56.8,"y":551.04205},"width":15.312,"height":-12.641998,"page":3}],"sectionNumber":11,"textBefore":null,"textAfter":null,"comments":[],"startOffset":336,"endOffset":338,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243396483+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":true,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"0fb57c171645ae8960c90ea37597c470","type":"vertebrate","value":"mouse","reason":null,"matchedRule":0,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 16/17 (additional) negative Test; missing second Key","color":[1.0,0.52156866,0.96862745],"positions":[{"topLeft":{"x":336.9161,"y":162.64203},"width":32.603973,"height":-12.642029,"page":3}],"sectionNumber":15,"textBefore":null,"textAfter":null,"comments":[],"startOffset":115,"endOffset":120,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243397421+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"hint":true,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"4b2419a4ed2bd46a1bcd78ea96809746","type":"must_redact","value":"bl","reason":null,"matchedRule":0,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 12/13: Redact/Hint if CTL or BL was found","color":[0.98039216,0.7058824,0.7529412],"positions":[{"topLeft":{"x":56.8,"y":564.84204},"width":15.312,"height":-12.641998,"page":3}],"sectionNumber":11,"textBefore":null,"textAfter":null,"comments":[],"startOffset":295,"endOffset":297,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243398402+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":true,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"397ebcd721fb1ce243eaa6f08f3794ec","type":"must_redact","value":"ctl","reason":null,"matchedRule":0,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 12/13: Redact/Hint if CTL or BL was found","color":[0.98039216,0.7058824,0.7529412],"positions":[{"topLeft":{"x":56.8,"y":578.642},"width":22.607998,"height":-12.641998,"page":3}],"sectionNumber":11,"textBefore":null,"textAfter":null,"comments":[],"startOffset":250,"endOffset":253,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.24339936+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":true,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"80f105bfe099323268836c343e139c78","type":"must_redact","value":"ctl","reason":null,"matchedRule":0,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 12/13: Redact/Hint if CTL or BL was found","color":[0.98039216,0.7058824,0.7529412],"positions":[{"topLeft":{"x":56.8,"y":647.642},"width":22.607998,"height":-12.641998,"page":3}],"sectionNumber":11,"textBefore":null,"textAfter":null,"comments":[],"startOffset":145,"endOffset":148,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243400289+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":true,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"15255a149dec8caf8594a428ad07ea76","type":"must_redact","value":"ctl","reason":null,"matchedRule":0,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 12/13: Redact/Hint if CTL or BL was found","color":[0.98039216,0.7058824,0.7529412],"positions":[{"topLeft":{"x":56.8,"y":661.442},"width":22.607998,"height":-12.641998,"page":3}],"sectionNumber":11,"textBefore":null,"textAfter":null,"comments":[],"startOffset":116,"endOffset":119,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243401307+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":true,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"7b2c1111306baf6a105aee47f7538f1d","type":"PII","value":"Naka-27 Aomachi, Nomi, Ishikawa 923-1101, Japan, JP","reason":"PII (Personal Identification Information) found","matchedRule":14,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":494.14203},"width":269.37607,"height":-12.641998,"page":4}],"sectionNumber":17,"textBefore":"Study is No ","textAfter":" Sude Halide","comments":[],"startOffset":146,"endOffset":197,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243402236+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"9242beedf953556f50cd48c6ebec87d8","type":"CBI_author","value":"Liu","reason":"No Vertebrate found","matchedRule":2,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 18: Do not redact Names and Addresses if Published Information\nfound","color":[0.8,0.8,0.8],"positions":[{"topLeft":{"x":449.4521,"y":601.642},"width":16.596039,"height":-12.641998,"page":4}],"sectionNumber":16,"textBefore":"Zhou Mah, Ning ","textAfter":", Lei W.","comments":[],"startOffset":494,"endOffset":497,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243403228+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"58d1b1a3cec2f846fbf47828b1975b3f","type":"PII","value":"dinther@comcast.net","reason":"PII (Personal Identification Information) found","matchedRule":15,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":303.84204},"width":101.98816,"height":-12.641998,"page":4}],"sectionNumber":18,"textBefore":"pariatur. Excepteur sint ","textAfter":" occaecat cupidatat","comments":[],"startOffset":262,"endOffset":281,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243404231+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"5dcb245404303d9160bc2b310d81847f","type":"PII","value":"gordonjcp@msn.com","reason":"PII (Personal Identification Information) found","matchedRule":15,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":317.64203},"width":103.308075,"height":-12.641998,"page":4}],"sectionNumber":18,"textBefore":"reprehenderit in voluptate ","textAfter":" velit esse","comments":[],"startOffset":178,"endOffset":195,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243405288+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"e723fdeac531c28ea2ab172b7e537b3f","type":"PII","value":"Sude Halide Nurullah","reason":"PII (Personal Identification Information) found","matchedRule":14,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":480.34204},"width":104.556015,"height":-12.641998,"page":4}],"sectionNumber":17,"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":"2023-05-25T12:24:33.243406335+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"206e7a9a7eb04b39b3fa093e57e51aab","type":"PII","value":"Xinyi Y. Tao","reason":"PII (Personal Identification Information) found","matchedRule":14,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":425.14203},"width":60.599987,"height":-12.641998,"page":4}],"sectionNumber":17,"textBefore":"C. J. Alfred ","textAfter":" Clara Siegfried","comments":[],"startOffset":257,"endOffset":269,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243407352+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"19cbb3c4ef9f60dde6a10bfd21519822","type":"PII","value":"Page","reason":"PII (Personal Identification Information) found","matchedRule":14,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":39,"textBefore":"This is a ","textAfter":"-Header","comments":[],"startOffset":10,"endOffset":14,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243408254+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"3f5859286e2801eb163ed26b874ea072","type":"CBI_author","value":"Wong","reason":"No Vertebrate found","matchedRule":2,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 18: Do not redact Names and Addresses if Published Information\nfound","color":[0.8,0.8,0.8],"positions":[{"topLeft":{"x":269.51196,"y":601.642},"width":28.29602,"height":-12.641998,"page":4}],"sectionNumber":16,"textBefore":"Jun K., Tu ","textAfter":", Qiang Suen,","comments":[],"startOffset":461,"endOffset":465,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243409223+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"00642e9a0d683818870ab4abf3d99132","type":"PII","value":"B. Rahim","reason":"PII (Personal Identification Information) found","matchedRule":14,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":452.74203},"width":45.91199,"height":-12.641998,"page":4}],"sectionNumber":17,"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":"2023-05-25T12:24:33.24341029+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"ddbe416a72b9d5a0ea006581c643cee1","type":"PII","value":"kawasaki@me.com","reason":"PII (Personal Identification Information) found","matchedRule":15,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":290.04205},"width":93.99602,"height":-12.642029,"page":4}],"sectionNumber":18,"textBefore":"proident, sunt in ","textAfter":" culpa qui","comments":[],"startOffset":323,"endOffset":338,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243411232+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"12c20c1c1f6fd8daa5b12e503b0e4940","type":"PII","value":"library@outlook.com","reason":"PII (Personal Identification Information) found","matchedRule":15,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":317.64203},"width":103.296036,"height":-12.641998,"page":4}],"sectionNumber":18,"textBefore":"irure dolor in ","textAfter":" reprehenderit in","comments":[],"startOffset":131,"endOffset":150,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243412189+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"15670cc8b24fa89e657ecc52988e21ba","type":"CBI_author","value":"Huang","reason":"No Vertebrate found","matchedRule":2,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 18: Do not redact Names and Addresses if Published Information\nfound","color":[0.8,0.8,0.8],"positions":[{"topLeft":{"x":507.04016,"y":601.642},"width":31.991943,"height":-12.641998,"page":4}],"sectionNumber":16,"textBefore":"Liu, Lei W. ","textAfter":", Ru X.","comments":[],"startOffset":506,"endOffset":511,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243413173+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"b8f28659e26466db1d6341d637ff688e","type":"CBI_author","value":"Wu","reason":"No Vertebrate found","matchedRule":2,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 18: Do not redact Names and Addresses if Published Information\nfound","color":[0.8,0.8,0.8],"positions":[{"topLeft":{"x":88.192,"y":587.84204},"width":16.800003,"height":-12.641998,"page":4}],"sectionNumber":16,"textBefore":"Huang, Ru X. ","textAfter":null,"comments":[],"startOffset":519,"endOffset":521,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.2434141+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"0e72674bb524dff6c1d9e63f164a070b","type":"PII","value":"Page","reason":"PII (Personal Identification Information) found","matchedRule":14,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":48,"textBefore":"This is a ","textAfter":"-Footer","comments":[],"startOffset":10,"endOffset":14,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243415043+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"1fdfac58c3648655cc8b1ed89ffe8370","type":"PII","value":"Özgür U. Reyhan","reason":"PII (Personal Identification Information) found","matchedRule":14,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":466.54202},"width":84.192,"height":-12.641998,"page":4}],"sectionNumber":17,"textBefore":"Sude Halide Nurullah ","textAfter":" B. Rahim","comments":[],"startOffset":219,"endOffset":234,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243416046+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"d380934c73ae7308cc323de5047f4290","type":"PII","value":"Page","reason":"PII (Personal Identification Information) found","matchedRule":14,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":40,"textBefore":"This is a ","textAfter":"-Header","comments":[],"startOffset":10,"endOffset":14,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243417163+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"2f429d40393e13a0a09e239d0edeb077","type":"PII","value":"Page","reason":"PII (Personal Identification Information) found","matchedRule":14,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":49,"textBefore":"This is a ","textAfter":"-Footer","comments":[],"startOffset":10,"endOffset":14,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243429972+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"db41635251ff55a9b7b30f5f97035ddd","type":"PII","value":"493 1223 4592","reason":"Applicant information was found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":473.68152},"width":53.991028,"height":-10.981506,"page":5}],"sectionNumber":20,"textBefore":"1432 8933 Contact: ","textAfter":" European contact:","comments":[],"startOffset":664,"endOffset":677,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.24347322+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"ebd435e3aa7d2cfa8a80dbaed47a0423","type":"PII","value":"Central Research Industry","reason":"Applicant information was found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":628.88153},"width":93.77109,"height":-10.981506,"page":5}],"sectionNumber":20,"textBefore":"Contact point: ","textAfter":" Phone: +49","comments":[],"startOffset":243,"endOffset":268,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243474339+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"815ad6c1369cbc76c97f4dd571db1aaa","type":"PII","value":"\")","reason":"Contact information was found","matchedRule":16,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":22,"textBefore":"(contains \"Contact point:","textAfter":" Redact when","comments":[],"startOffset":64,"endOffset":66,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243475348+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"5b1a9187d0846eaf96eb7995e9979148","type":"PII","value":"+274 34223331","reason":"Applicant information was found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":494.3815},"width":56.79901,"height":-10.981506,"page":5}],"sectionNumber":20,"textBefore":"1432 8990 Telephone: ","textAfter":" Phone No.","comments":[],"startOffset":616,"endOffset":629,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243476405+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"7bda87d0a1c95e317d5a60842990be8c","type":"PII","value":"maximiliamschmitt@t-online.de","reason":"Applicant information was found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":556.4815},"width":116.82919,"height":-10.981506,"page":5}],"sectionNumber":20,"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":"2023-05-25T12:24:33.2434774+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"7e3055bdc31d168bc8945823884a9839","type":"PII","value":"+81 764770164","reason":"Applicant information was found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":597.88153},"width":56.889008,"height":-10.981506,"page":5}],"sectionNumber":20,"textBefore":"2311 560 Tel.: ","textAfter":" Tel: +81","comments":[],"startOffset":323,"endOffset":336,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243478491+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"bfbb43e30ff21aff5c54fb5c81c14275","type":"PII","value":"+49 2113 2311 563","reason":"Applicant information was found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":618.5815},"width":69.68704,"height":-10.981506,"page":5}],"sectionNumber":20,"textBefore":"Research Industry Phone: ","textAfter":" Fax: +49","comments":[],"startOffset":276,"endOffset":293,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.24347946+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"34e18828e7b568e40fcee9526abdc9c4","type":"PII","value":"+81 6653 44563","reason":"Applicant information was found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":587.4815},"width":59.085022,"height":-10.981506,"page":5}],"sectionNumber":20,"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":"2023-05-25T12:24:33.243480383+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"d25c1b20aa17503f8c0d9fd008ae2738","type":"PII","value":"Emilia Lockhart","reason":"Applicant information was found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":452.9815},"width":58.69806,"height":-10.981506,"page":5}],"sectionNumber":20,"textBefore":"Institute Alternative contact: ","textAfter":" Alternative contact:","comments":[],"startOffset":744,"endOffset":759,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243481349+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"45322c38892a816d3a37e29352b47f1a","type":"PII","value":"Maximiliam Schmitt","reason":"Applicant information was found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":535.7815},"width":74.59213,"height":-10.981506,"page":5}],"sectionNumber":20,"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":"2023-05-25T12:24:33.243482307+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"b594d911b3482334dcb695b1340acd78","type":"PII","value":"example@mail.com","reason":"Applicant information was found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":546.0815},"width":72.387085,"height":-10.981506,"page":5}],"sectionNumber":20,"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":"2023-05-25T12:24:33.24348326+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"98c722ff843e5251195055e66a031093","type":"PII","value":"European Central Institute","reason":"Applicant information was found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":463.2815},"width":94.86011,"height":-10.981506,"page":5}],"sectionNumber":20,"textBefore":"4592 European contact: ","textAfter":" Alternative contact:","comments":[],"startOffset":696,"endOffset":722,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243484217+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"212051e38cb5f80526f144684fc80fa4","type":"PII","value":"+49 2113 2311 560","reason":"Applicant information was found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":608.1815},"width":69.68704,"height":-10.981506,"page":5}],"sectionNumber":20,"textBefore":"2311 563 Fax: ","textAfter":" Tel.: +81","comments":[],"startOffset":299,"endOffset":316,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243485212+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"044298f0db79bbc360bdaad3d1411251","type":"PII","value":"+274 1432 8991","reason":"Applicant information was found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":515.08154},"width":59.085022,"height":-10.981506,"page":5}],"sectionNumber":20,"textBefore":"+27414328992 Telephone No: ","textAfter":" Fax number:","comments":[],"startOffset":563,"endOffset":577,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243486157+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"9a0114d10f74939b10002106806d7422","type":"PII","value":"Seriknowmobil@co.uk","reason":"Applicant information was found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":577.1815},"width":83.52905,"height":-10.981506,"page":5}],"sectionNumber":20,"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":"2023-05-25T12:24:33.243542304+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"138b4df6e48ed3fe06837499bf57d1b7","type":"PII","value":"+274 1432 8990","reason":"Applicant information was found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":504.68152},"width":58.995026,"height":-10.981506,"page":5}],"sectionNumber":20,"textBefore":"8991 Fax number: ","textAfter":" Telephone: +274","comments":[],"startOffset":590,"endOffset":604,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243544144+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"b4ce598ebbd19248881e990b0be749c6","type":"PII","value":"maximiliamschmitt@arcor.de","reason":"Applicant information was found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":566.7815},"width":106.83017,"height":-10.981506,"page":5}],"sectionNumber":20,"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":"2023-05-25T12:24:33.243545644+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"d6dd1bb84c826b4f4e89f93432866e03","type":"PII","value":"+27414328992","reason":"Applicant information was found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":525.38153},"width":54.593994,"height":-10.981506,"page":5}],"sectionNumber":20,"textBefore":"Schmitt Telephone number: ","textAfter":" Telephone No:","comments":[],"startOffset":536,"endOffset":548,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243547115+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"88c02bfa6be47a6aad387f91ea909d50","type":"PII","value":"+274 1432 8990","reason":"Applicant information was found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":309.0815},"width":58.995026,"height":-10.981506,"page":6}],"sectionNumber":24,"textBefore":"8991 Fax number: ","textAfter":" Telephone: +274","comments":[],"startOffset":590,"endOffset":604,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.24354862+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"6016a24511775bacabecb82fbec9d9b8","type":"PII","value":"Central Research Industry","reason":"Applicant information was found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":433.2815},"width":93.77109,"height":-10.981506,"page":6}],"sectionNumber":24,"textBefore":"Contact point: ","textAfter":" Phone: +49","comments":[],"startOffset":243,"endOffset":268,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.24355005+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"32e8c40a25a6cdcf9ddd9fb41c3dc8c8","type":"PII","value":"+82 122 34188","reason":"Applicant information was found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":26,"textBefore":"South Korea Phone: ","textAfter":" Fax: +82","comments":[],"startOffset":333,"endOffset":346,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243551366+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"07f0148ffec4d215e6daf04fb11d7a97","type":"PII","value":"493 1223 4592","reason":"Applicant information was found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":278.08148},"width":53.991028,"height":-10.981506,"page":6}],"sectionNumber":24,"textBefore":"1432 8933 Contact: ","textAfter":" European contact:","comments":[],"startOffset":664,"endOffset":677,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243552681+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"2206b5d18ef3649095d6a8285e8ae510","type":"PII","value":"Riddley Scott","reason":"Applicant information was found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":26,"textBefore":"Corporation Contact point: ","textAfter":" Address: 359-21","comments":[],"startOffset":256,"endOffset":269,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243553946+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"174b5962e6b66906ed96341bbf8da898","type":"PII","value":"+275 5678 1234 132","reason":"Applicant information was found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":99.696,"height":-12.641998,"page":6}],"sectionNumber":26,"textBefore":"be redacted Tel.: ","textAfter":null,"comments":[],"startOffset":501,"endOffset":519,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243555257+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"8d127621a973c216cc2f682ced59348c","type":"PII","value":"This is a special case, everything between this and the next keyword should be redacted","reason":"Applicant information was found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":26,"textBefore":"E-mail: food-industry@korea.com Contact: ","textAfter":" Tel.: +275","comments":[],"startOffset":407,"endOffset":494,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243556691+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"baac21659a54cf4b88fecfe9488afe23","type":"PII","value":"Page","reason":"PII (Personal Identification Information) found","matchedRule":14,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":50,"textBefore":"This is a ","textAfter":"-Footer","comments":[],"startOffset":10,"endOffset":14,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.24355812+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"a1c4bee8f2c7ddc33d1269c31f199f34","type":"PII","value":"food-industry@korea.com","reason":"Applicant information was found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":26,"textBefore":"122 34180 E-mail: ","textAfter":" Contact: This","comments":[],"startOffset":374,"endOffset":397,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243559424+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"f33c9953e285b806379220eefb2bf8f9","type":"PII","value":"+274 34223331","reason":"Applicant information was found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":298.7815},"width":56.79901,"height":-10.981506,"page":6}],"sectionNumber":24,"textBefore":"1432 8990 Telephone: ","textAfter":" Phone No.","comments":[],"startOffset":616,"endOffset":629,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243560877+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"33262ab2cf966c69daea340311ea2c93","type":"PII","value":"Maximiliam Schmitt","reason":"Applicant information was found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":340.18152},"width":74.59213,"height":-10.981506,"page":6}],"sectionNumber":24,"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":"2023-05-25T12:24:33.243562313+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"11a1cc600741966ba67ebc7d194a9092","type":"PII","value":"example@mail.com","reason":"Applicant information was found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":350.4815},"width":72.387085,"height":-10.981506,"page":6}],"sectionNumber":24,"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":"2023-05-25T12:24:33.243563676+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"3dd0fddae07b2ec44ef5877242b774e7","type":"PII","value":"+274 1432 8991","reason":"Applicant information was found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":319.4815},"width":59.085022,"height":-10.981506,"page":6}],"sectionNumber":24,"textBefore":"+27414328992 Telephone No: ","textAfter":" Fax number:","comments":[],"startOffset":563,"endOffset":577,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243565102+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"d99abab08d4e42148f37ab781d0a9536","type":"PII","value":"maximiliamschmitt@t-online.de","reason":"Applicant information was found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":360.8815},"width":116.82919,"height":-10.981506,"page":6}],"sectionNumber":24,"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":"2023-05-25T12:24:33.243566611+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"7363de5ea8ddc4aa939332b5af4a22a2","type":"PII","value":"+81 764770164","reason":"Applicant information was found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":402.2815},"width":56.889008,"height":-10.981506,"page":6}],"sectionNumber":24,"textBefore":"2311 560 Tel.: ","textAfter":" Tel: +81","comments":[],"startOffset":323,"endOffset":336,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243567811+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"727c450c0a0944c60a55625a4fafcff1","type":"PII","value":"+49 2113 2311 563","reason":"Applicant information was found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":422.9815},"width":69.68704,"height":-10.981506,"page":6}],"sectionNumber":24,"textBefore":"Research Industry Phone: ","textAfter":" Fax: +49","comments":[],"startOffset":276,"endOffset":293,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243568991+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"ffad12ecac583473bddf7ff3057f2123","type":"PII","value":"+81 6653 44563","reason":"Applicant information was found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":391.8815},"width":59.085022,"height":-10.981506,"page":6}],"sectionNumber":24,"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":"2023-05-25T12:24:33.243570197+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"74be768aad40501c90e30ad02d2f9177","type":"PII","value":"European Central Institute","reason":"Applicant information was found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":267.68152},"width":94.86011,"height":-10.981506,"page":6}],"sectionNumber":24,"textBefore":"4592 European contact: ","textAfter":" Alternative contact:","comments":[],"startOffset":696,"endOffset":722,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243571395+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"65e0a06c7164a9c631865c0e56b29518","type":"PII","value":"+27414328992","reason":"Applicant information was found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":329.7815},"width":54.593994,"height":-10.981506,"page":6}],"sectionNumber":24,"textBefore":"Schmitt Telephone number: ","textAfter":" Telephone No:","comments":[],"startOffset":536,"endOffset":548,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.24357247+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"c658bcdcbcd8cf678b79cc715c024c70","type":"PII","value":"+82 122 34180","reason":"Applicant information was found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":26,"textBefore":"122 34188 Fax: ","textAfter":" E-mail: food-industry@korea.com","comments":[],"startOffset":352,"endOffset":365,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243573586+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"46e0173e2da55fc771e151b6f90d08f3","type":"PII","value":"maximiliamschmitt@arcor.de","reason":"Applicant information was found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":371.18152},"width":106.83017,"height":-10.981506,"page":6}],"sectionNumber":24,"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":"2023-05-25T12:24:33.243574996+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"8332ab33f0b7ba918b086a7c5f1f25e6","type":"PII","value":"+49 2113 2311 560","reason":"Applicant information was found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":412.5815},"width":69.68704,"height":-10.981506,"page":6}],"sectionNumber":24,"textBefore":"2311 563 Fax: ","textAfter":" Tel.: +81","comments":[],"startOffset":299,"endOffset":316,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243576611+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"2d8809c60064fc8e389a92409380159d","type":"PII","value":"Page","reason":"PII (Personal Identification Information) found","matchedRule":14,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":41,"textBefore":"This is a ","textAfter":"-Header","comments":[],"startOffset":10,"endOffset":14,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.2435779+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"84311f71dd0c3babb2b34ae074a00794","type":"PII","value":"Seriknowmobil@co.uk","reason":"Applicant information was found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":381.5815},"width":83.52905,"height":-10.981506,"page":6}],"sectionNumber":24,"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":"2023-05-25T12:24:33.243579207+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"1e61596a94430ba7e602abaa1d226783","type":"PII","value":"Emilia Lockhart","reason":"Applicant information was found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":257.38153},"width":58.69806,"height":-10.981506,"page":6}],"sectionNumber":24,"textBefore":"Institute Alternative contact: ","textAfter":" Alternative contact:","comments":[],"startOffset":744,"endOffset":759,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243580378+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"09197adc6d8b3e60f87f67f51310c99c","type":"PII","value":"+82 122 34180","reason":"Contact information was found","matchedRule":16,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","imported":false,"redacted":true,"section":"Rule 27/28: Redact contact Information (contains Producer)","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":128.8,"y":527.942},"width":72.696,"height":-12.641998,"page":7}],"sectionNumber":27,"textBefore":"122 34188 Fax: ","textAfter":" E-mail: pharma-industry@korea.com","comments":[],"startOffset":335,"endOffset":348,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243581545+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"fb1bb307f2cd487256b65b767cefa6e1","type":"PII","value":"pharma-industry@korea.com","reason":"Contact information was found","matchedRule":16,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","imported":false,"redacted":true,"section":"Rule 27/28: Redact contact Information (contains Producer)","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":128.8,"y":514.142},"width":140.59203,"height":-12.641998,"page":7}],"sectionNumber":27,"textBefore":"122 34180 E-mail: ","textAfter":null,"comments":[],"startOffset":357,"endOffset":382,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243582928+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"b626ba58f50e7a3523c58d77c2d5843f","type":"CBI_author","value":"Grant","reason":"No Vertebrate found","matchedRule":2,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 29/30/31/32: If Text contains \"AUTHORS:\" and \"COMPLETION\nDATES\" but not \"STUDY COMPLETION DATES\", then Redact between\nboth","color":[0.8,0.8,0.8],"positions":[{"topLeft":{"x":244.38402,"y":346.64203},"width":27.312027,"height":-12.641998,"page":7}],"sectionNumber":28,"textBefore":"AUTHOR(S): Dr. Alan ","textAfter":" COMPLETION DATE:","comments":[],"startOffset":235,"endOffset":240,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243584355+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"1389caf8701b9944fa842c4772a84a53","type":"PII","value":"Jill Valentine","reason":"Contact information was found","matchedRule":16,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","imported":false,"redacted":true,"section":"Rule 27/28: Redact contact Information (contains Producer)","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":128.8,"y":596.942},"width":62.676025,"height":-12.641998,"page":7}],"sectionNumber":27,"textBefore":"Umbrella Corporation Contact: ","textAfter":" Address: 359-21","comments":[],"startOffset":238,"endOffset":252,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243587301+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"f163afe507f0eca1cde5fa049a6c870e","type":"PII","value":"Page","reason":"PII (Personal Identification Information) found","matchedRule":14,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":42,"textBefore":"This is a ","textAfter":"-Header","comments":[],"startOffset":10,"endOffset":14,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243596895+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"2c4dd52bc76fd344ace84ae6847b3a2e","type":"PII","value":"Page","reason":"PII (Personal Identification Information) found","matchedRule":14,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":51,"textBefore":"This is a ","textAfter":"-Footer","comments":[],"startOffset":10,"endOffset":14,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243598499+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"5adc8b81ad610d4739cdf69b0773d8c6","type":"PII","value":"+82 122 34188","reason":"Contact information was found","matchedRule":16,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","imported":false,"redacted":true,"section":"Rule 27/28: Redact contact Information (contains Producer)","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":128.8,"y":541.742},"width":72.696,"height":-12.641998,"page":7}],"sectionNumber":27,"textBefore":"South Korea Phone: ","textAfter":" Fax: +82","comments":[],"startOffset":316,"endOffset":329,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243599853+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"83e61843f54422d17470e00e3366988f","type":"CBI_author","value":"Grant","reason":"No Vertebrate found","matchedRule":2,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 29/30/31/32: (additional) negative Test for Study completion dates","color":[0.8,0.8,0.8],"positions":[{"topLeft":{"x":280.38403,"y":195.54205},"width":27.312012,"height":-12.642029,"page":7}],"sectionNumber":29,"textBefore":"AUTHOR(S): Dr. Alan ","textAfter":" STUDY COMPLETION","comments":[],"startOffset":144,"endOffset":149,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243601257+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"eb1dc583e51af761c5f1ce9024a3642d","type":"PII","value":"Umbrella Corporation","reason":"PII (Personal Identification Information) found","matchedRule":14,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","imported":false,"redacted":true,"section":"Rule 27/28: Redact contact Information (contains Producer)","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":128.8,"y":610.742},"width":106.16403,"height":-12.641998,"page":7}],"sectionNumber":27,"textBefore":"plant production Name: ","textAfter":" Contact: Jill","comments":[],"startOffset":208,"endOffset":228,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243602732+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":true,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"914e7b103972e36b06bab4d81dc0a60d","type":"purity","value":"99%","reason":"Purity found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2a)","imported":false,"redacted":true,"section":"Rule 39: Purity Hint","color":[1.0,0.88235295,0.5294118],"positions":[{"topLeft":{"x":164.8,"y":230.34204},"width":21.996002,"height":-12.642029,"page":8}],"sectionNumber":32,"textBefore":"Product-Code: EAK-L443 purity: ","textAfter":" ← not","comments":[],"startOffset":644,"endOffset":647,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243604682+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"161c4e3da3f995172904dc30843a60ac","type":"PII","value":"Page","reason":"PII (Personal Identification Information) found","matchedRule":14,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":43,"textBefore":"This is a ","textAfter":"-Header","comments":[],"startOffset":10,"endOffset":14,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243606629+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"b35fa03cf8dc88b6ecc1ddd1122d38cd","type":"purity","value":"101%","reason":"Purity found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2a)","imported":false,"redacted":true,"section":"Rule 39: Purity Hint","color":[1.0,0.88235295,0.5294118],"positions":[{"topLeft":{"x":164.8,"y":340.74203},"width":27.996002,"height":-12.641998,"page":8}],"sectionNumber":32,"textBefore":"be Hint Purity: ","textAfter":" ← should","comments":[],"startOffset":183,"endOffset":187,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243608065+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"fd877bb42040ac18eeea30d198f136b9","type":"purity","value":"45%","reason":"Purity found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2a)","imported":false,"redacted":true,"section":"Rule 39: Purity Hint","color":[1.0,0.88235295,0.5294118],"positions":[{"topLeft":{"x":178.408,"y":299.34204},"width":21.996002,"height":-12.642029,"page":8}],"sectionNumber":32,"textBefore":"symbols Purity: aa ","textAfter":" ← should","comments":[],"startOffset":374,"endOffset":377,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243609029+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"43284da7e4a2cbab327a3a46dd8ed5ec","type":"purity","value":"45%","reason":"Purity found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2a)","imported":false,"redacted":true,"section":"Rule 39: Purity Hint","color":[1.0,0.88235295,0.5294118],"positions":[{"topLeft":{"x":171.496,"y":368.34204},"width":21.996002,"height":-12.641998,"page":8}],"sectionNumber":32,"textBefore":"Hint Purity: <","textAfter":" ← should","comments":[],"startOffset":124,"endOffset":127,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243610032+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"810e2e001789f22ae3084a0a394dbc79","type":"purity","value":"45%","reason":"Purity found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2a)","imported":false,"redacted":true,"section":"Rule 39: Purity Hint","color":[1.0,0.88235295,0.5294118],"positions":[{"topLeft":{"x":164.8,"y":285.54205},"width":21.996002,"height":-12.642029,"page":8}],"sectionNumber":32,"textBefore":"additional symbols Purity: ","textAfter":" aa ←","comments":[],"startOffset":434,"endOffset":437,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243611061+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"7da27d812d47c2bdffb8e207b950a653","type":"purity","value":"45%","reason":"Purity found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2a)","imported":false,"redacted":true,"section":"Rule 39: Purity Hint","color":[1.0,0.88235295,0.5294118],"positions":[{"topLeft":{"x":171.496,"y":354.54202},"width":21.996002,"height":-12.641998,"page":8}],"sectionNumber":32,"textBefore":"Hint Purity: >","textAfter":" ← should","comments":[],"startOffset":154,"endOffset":157,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243612039+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"725b7fa856ec72811b053ec8ddb03da6","type":"purity","value":"45%","reason":"Purity found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2a)","imported":false,"redacted":true,"section":"Rule 39: Purity Hint","color":[1.0,0.88235295,0.5294118],"positions":[{"topLeft":{"x":178.288,"y":313.14203},"width":21.996002,"height":-12.641998,"page":8}],"sectionNumber":32,"textBefore":"symbols Purity: =<","textAfter":" ← should","comments":[],"startOffset":311,"endOffset":314,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243612999+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"d7f3c4658f09c65d17a1883fabd388dd","type":"purity","value":"99%","reason":"Purity found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2a)","imported":false,"redacted":true,"section":"Rule 39: Purity Hint","color":[1.0,0.88235295,0.5294118],"positions":[{"topLeft":{"x":171.496,"y":202.742},"width":21.996002,"height":-12.642029,"page":8}],"sectionNumber":32,"textBefore":"sensitive purity: <","textAfter":" ← not","comments":[],"startOffset":738,"endOffset":741,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243614289+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"fae4efb965c3c20715d7757c7956abbb","type":"purity","value":"99%","reason":"Purity found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2a)","imported":false,"redacted":true,"section":"Rule 39: Purity Hint","color":[1.0,0.88235295,0.5294118],"positions":[{"topLeft":{"x":171.496,"y":216.54205},"width":21.996002,"height":-12.642029,"page":8}],"sectionNumber":32,"textBefore":"sensitive purity: >","textAfter":" ← not","comments":[],"startOffset":691,"endOffset":694,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243615173+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"580aae7bbcd794b7b689aee1c82542b5","type":"purity","value":"45%","reason":"Purity found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2a)","imported":false,"redacted":true,"section":"Rule 39: Purity Hint","color":[1.0,0.88235295,0.5294118],"positions":[{"topLeft":{"x":164.8,"y":382.14203},"width":21.996002,"height":-12.641998,"page":8}],"sectionNumber":32,"textBefore":"Item: Soda Purity: ","textAfter":" ← should","comments":[],"startOffset":94,"endOffset":97,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243616142+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"1f9d675f57256b406d1a2baa3c201aff","type":"PII","value":"Umbrella Corporation","reason":"PERFORMING LABORATORY was found","matchedRule":20,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","imported":false,"redacted":true,"section":"Rule 33/34: If Text contains \"Performing Lab\" and \"Lab Project ID\", then\nRedact everything between","color":[0.4,0.8,1.0],"positions":[{"topLeft":{"x":236.8,"y":617.642},"width":106.16414,"height":-12.641998,"page":8}],"sectionNumber":30,"textBefore":"Report___ PERFORMING LABORATORY: ","textAfter":" LABORATORY PROJECT","comments":[],"startOffset":209,"endOffset":229,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243617175+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"5b889a101c0b5166aa0ea560b57d0d6b","type":"purity","value":"45%","reason":"Purity found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2a)","imported":false,"redacted":true,"section":"Rule 39: Purity Hint","color":[1.0,0.88235295,0.5294118],"positions":[{"topLeft":{"x":178.288,"y":326.94202},"width":21.996002,"height":-12.641998,"page":8}],"sectionNumber":32,"textBefore":"possible Purity: =>","textAfter":" ← should","comments":[],"startOffset":249,"endOffset":252,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243618051+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"d94bf1b70cfcb05ecb00994cc5abc890","type":"PII","value":"Page","reason":"PII (Personal Identification Information) found","matchedRule":14,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":52,"textBefore":"This is a ","textAfter":"-Footer","comments":[],"startOffset":10,"endOffset":14,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.24361896+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"b35ccd2ec823eeae613bf62c1235b937","type":"purity","value":"45%","reason":"Purity found","matchedRule":17,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2a)","imported":false,"redacted":true,"section":"Rule 39: Purity Hint","color":[1.0,0.88235295,0.5294118],"positions":[{"topLeft":{"x":164.8,"y":257.94202},"width":21.996002,"height":-12.642029,"page":8}],"sectionNumber":32,"textBefore":"additional symbols Purity: ","textAfter":"aa ← should","comments":[],"startOffset":559,"endOffset":562,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243619894+02:00"}],"manualChanges":[],"engines":["RULE"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":false,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"688b8e499afb958699834482b6c38323","type":"PII","value":"Page","reason":"PII (Personal Identification Information) found","matchedRule":14,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":44,"textBefore":"This is a ","textAfter":"-Header","comments":[],"startOffset":10,"endOffset":14,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243620842+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"8fafcbefac14ac6b258d4ee07c7a0954","type":"PII","value":"Page","reason":"PII (Personal Identification Information) found","matchedRule":14,"rectangle":false,"legalBasis":"Reg (EC) No 1107/2009 Art. 63 (2e)","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":53,"textBefore":"This is a ","textAfter":"-Footer","comments":[],"startOffset":10,"endOffset":14,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243621789+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false},{"id":"824ceb6b7d842de03ad899190fdae777","type":"CBI_author","value":"Müller","reason":"No Vertebrate found","matchedRule":2,"rectangle":false,"legalBasis":null,"imported":false,"redacted":false,"section":"Rule 41/42: Redact Signatures","color":[0.8,0.8,0.8],"positions":[{"topLeft":{"x":397.98404,"y":468.94202},"width":32.676025,"height":-12.641998,"page":9}],"sectionNumber":34,"textBefore":"Signed by: Tobias ","textAfter":null,"comments":[],"startOffset":204,"endOffset":210,"imageHasTransparency":false,"excluded":false,"sourceId":null,"changes":[{"analysisNumber":0,"type":"ADDED","dateTime":"2023-05-25T12:24:33.243622799+02:00"}],"manualChanges":[],"engines":["DICTIONARY"],"reference":[],"importedRedactionIntersections":[],"hint":false,"recommendation":false,"image":false,"falsePositive":false,"dictionaryEntry":true,"dossierDictionaryEntry":false,"localManualRedaction":false,"manuallyRemoved":false}],"legalBasis":[],"dictionaryVersion":0,"dossierDictionaryVersion":0,"rulesVersion":0,"legalBasisVersion":0} \ No newline at end of file