RED-6009 - Document Tree Structure

* remove unused code
This commit is contained in:
Kilian Schuettler 2023-05-12 14:27:10 +02:00
parent 643e2e81d4
commit 8ec88869e2
8 changed files with 12 additions and 90 deletions

View File

@ -2,9 +2,7 @@ package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.m
import java.util.List;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text.ClassificationTextBlock;
import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text.SearchableText;
import lombok.AllArgsConstructor;
import lombok.Data;
@ -15,13 +13,4 @@ public class ClassificationFooter {
private List<ClassificationTextBlock> textBlocks;
@JsonIgnore
public SearchableText getSearchableText() {
SearchableText searchableText = new SearchableText();
textBlocks.forEach(block -> searchableText.addAll(block.getSequences()));
return searchableText;
}
}

View File

@ -2,9 +2,7 @@ package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.m
import java.util.List;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text.ClassificationTextBlock;
import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text.SearchableText;
import lombok.AllArgsConstructor;
import lombok.Data;
@ -15,13 +13,4 @@ public class ClassificationHeader {
private List<ClassificationTextBlock> textBlocks;
@JsonIgnore
public SearchableText getSearchableText() {
SearchableText searchableText = new SearchableText();
textBlocks.forEach(block -> searchableText.addAll(block.getSequences()));
return searchableText;
}
}

View File

@ -35,10 +35,4 @@ public class ClassificationPage {
private float pageWidth;
private float pageHeight;
public boolean isRotated() {
return rotation != 0;
}
}

View File

@ -5,33 +5,19 @@ import java.util.List;
import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.image.ClassifiedImage;
import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.table.TablePageBlock;
import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text.ClassificationTextBlock;
import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text.SearchableText;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
public class ClassificationSection implements Comparable {
public class ClassificationSection {
private List<AbstractPageBlock> pageBlocks = new ArrayList<>();
private List<ClassifiedImage> images = new ArrayList<>();
private String headline;
public SearchableText getSearchableText() {
SearchableText searchableText = new SearchableText();
pageBlocks.forEach(block -> {
if (block instanceof ClassificationTextBlock) {
searchableText.addAll(((ClassificationTextBlock) block).getSequences());
}
});
return searchableText;
}
public List<TablePageBlock> getTables() {
List<TablePageBlock> tables = new ArrayList<>();
@ -43,23 +29,4 @@ public class ClassificationSection implements Comparable {
return tables;
}
public List<ClassificationTextBlock> getTextBlocks() {
List<ClassificationTextBlock> textBlocks = new ArrayList<>();
pageBlocks.forEach(block -> {
if (block instanceof ClassificationTextBlock) {
textBlocks.add((ClassificationTextBlock) block);
}
});
return textBlocks;
}
@Override
public int compareTo(Object o) {
return 0;
}
}

View File

@ -1,7 +1,5 @@
package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text;
import java.util.Objects;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
@ -46,18 +44,4 @@ public enum TextDirection {
throw new IllegalArgumentException(String.format("A value of %f is not supported by TextDirection", degrees));
}
public static TextDirection fromString(String degreesAsString) {
Objects.requireNonNull(degreesAsString, "Cannot construct a text direction from a null value");
String value = degreesAsString.strip();
if (degreesAsString.endsWith(VALUE_STRING_SUFFIX)) {
value = degreesAsString.replace(VALUE_STRING_SUFFIX + "$", "");
}
return fromDegrees(Float.parseFloat(value));
}
}

View File

@ -2,8 +2,6 @@ package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.m
import java.util.List;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor;
import lombok.Data;
@ -13,13 +11,4 @@ public class UnclassifiedText {
private List<ClassificationTextBlock> textBlocks;
@JsonIgnore
public SearchableText getSearchableText() {
SearchableText searchableText = new SearchableText();
textBlocks.forEach(block -> searchableText.addAll(block.getSequences()));
return searchableText;
}
}

View File

@ -89,6 +89,12 @@ public class RedactionEntity {
}
public boolean occursInNode(SemanticNode semanticNode) {
return intersectingNodes.stream().anyMatch(node -> node.equals(semanticNode));
}
public boolean isType(String type) {
return this.type.equals(type);

View File

@ -318,6 +318,7 @@ rule "21: Redact Emails by RegEx (Non vertebrate study)"
entityCreationService.byRegex("\\b([A-Za-z0-9._%+\\-]+@[A-Za-z0-9.\\-]+\\.[A-Za-z\\-]{1,23}[A-Za-z])\\b", "PII", EntityType.ENTITY, 1, $section)
.forEach(emailEntity -> {
emailEntity.setRedaction(true);
emailEntity.addEngine(Engine.RULE);
emailEntity.setRedactionReason("Found by Email Regex");
emailEntity.setLegalBasis("Article 39(e)(3) of Regulation (EC) No 178/2002");
emailEntity.addMatchedRule(21);
@ -587,17 +588,20 @@ rule "Apply id removals that are valid and not in forced redactions to Image"
$entityToBeRemoved: Image($id == id)
then
$entityToBeRemoved.setIgnored(true);
retract($entityToBeRemoved);
end
rule "Apply force redaction"
salience 128
when
ManualForceRedaction($id: annotationId, status == AnnotationStatus.APPROVED, requestDate != null, $legalBasis: legalBasis)
$forceRedaction: ManualForceRedaction($id: annotationId, status == AnnotationStatus.APPROVED, requestDate != null, $legalBasis: legalBasis)
$entityToForce: RedactionEntity(matchesAnnotationId($id))
then
$entityToForce.setLegalBasis($legalBasis);
$entityToForce.setRedaction(true);
$entityToForce.setSkipRemoveEntitiesContainedInLarger(true);
retract($forceRedaction);
update($entityToForce);
end
rule "Apply image recategorization"