annotationMode: ignore IDs of manual adds in annotationMode

This commit is contained in:
Kilian Schuettler 2024-07-25 17:01:41 +02:00
parent 359c237943
commit afeddb4d91

View File

@ -15,6 +15,7 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.ManualRedactions; import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.ManualRedactions;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.BaseAnnotation; import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.BaseAnnotation;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.IdRemoval; import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.IdRemoval;
import com.iqser.red.service.redaction.v1.server.RedactionServiceSettings;
import com.iqser.red.service.redaction.v1.server.model.PrecursorEntity; import com.iqser.red.service.redaction.v1.server.model.PrecursorEntity;
import com.iqser.red.service.redaction.v1.server.model.document.entity.EntityType; import com.iqser.red.service.redaction.v1.server.model.document.entity.EntityType;
import com.iqser.red.service.redaction.v1.server.model.document.entity.TextEntity; import com.iqser.red.service.redaction.v1.server.model.document.entity.TextEntity;
@ -35,6 +36,7 @@ public class EntityFromPrecursorCreationService {
static double MATCH_THRESHOLD = 10; // Is compared to the average sum of distances in pdf coordinates for each corner of the bounding box of the entities static double MATCH_THRESHOLD = 10; // Is compared to the average sum of distances in pdf coordinates for each corner of the bounding box of the entities
EntityFindingUtility entityFindingUtility; EntityFindingUtility entityFindingUtility;
DictionaryService dictionaryService; DictionaryService dictionaryService;
RedactionServiceSettings settings;
public List<PrecursorEntity> createEntitiesIfFoundAndReturnNotFoundEntries(ManualRedactions manualRedactions, SemanticNode node, String dossierTemplateId) { public List<PrecursorEntity> createEntitiesIfFoundAndReturnNotFoundEntries(ManualRedactions manualRedactions, SemanticNode node, String dossierTemplateId) {
@ -92,7 +94,7 @@ public class EntityFromPrecursorCreationService {
notFoundEntities.add(precursorEntity); notFoundEntities.add(precursorEntity);
continue; continue;
} }
createCorrectEntity(precursorEntity, optionalClosestEntity.get()); createCorrectEntity(precursorEntity, optionalClosestEntity.get(), settings.isAnnotationMode());
} }
tempEntitiesByValue.values() tempEntitiesByValue.values()
@ -129,8 +131,7 @@ public class EntityFromPrecursorCreationService {
precursorEntity.type(), precursorEntity.type(),
precursorEntity.getEntityType(), precursorEntity.getEntityType(),
precursorEntity.getId(), precursorEntity.getId(),
precursorEntity.getManualOverwrite().getSection() precursorEntity.getManualOverwrite().getSection().orElse(null));
.orElse(null));
} }
correctEntity.setDeepestFullyContainingNode(closestEntity.getDeepestFullyContainingNode()); correctEntity.setDeepestFullyContainingNode(closestEntity.getDeepestFullyContainingNode());
correctEntity.setIntersectingNodes(new ArrayList<>(closestEntity.getIntersectingNodes())); correctEntity.setIntersectingNodes(new ArrayList<>(closestEntity.getIntersectingNodes()));