diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/UnprocessedChangesService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/UnprocessedChangesService.java index 125990cc..7a09e0c6 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/UnprocessedChangesService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/UnprocessedChangesService.java @@ -17,6 +17,7 @@ import org.springframework.stereotype.Service; import com.iqser.red.service.persistence.service.v1.api.shared.model.AnalyzeRequest; 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.Position; +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.ManualRedactionEntry; import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualResizeRedaction; import com.iqser.red.service.redaction.v1.model.AnalyzeResponse; @@ -35,7 +36,7 @@ import com.iqser.red.service.redaction.v1.server.service.document.DocumentGraphM 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.service.document.ManualRedactionEntryService; +import com.iqser.red.service.redaction.v1.server.service.document.ManualEntityCreationService; import com.iqser.red.service.redaction.v1.server.storage.ObservedStorageService; import com.iqser.red.service.redaction.v1.server.storage.RedactionStorageService; @@ -56,10 +57,11 @@ public class UnprocessedChangesService { final RabbitTemplate rabbitTemplate; final ObservedStorageService observedStorageService; - final ManualRedactionEntryService manualRedactionEntryService; final EntityFindingUtility entityFindingUtility; final RedactionStorageService redactionStorageService; final EntityEnrichmentService entityEnrichmentService; + final ManualEntityCreationService manualEntityCreationService; + final DictionaryService dictionaryService; EntityCreationService entityCreationService; @@ -91,9 +93,11 @@ public class UnprocessedChangesService { processManualResizeRedactions(document, manualEntitiesToBeResized, unprocessedManualEntities, manualResizeRedactions); } - List notFoundManualRedactionEntries = manualRedactionEntryService.addManualRedactionEntriesAndReturnNotFoundEntries(analyzeRequest, - document, - analyzeRequest.getDossierTemplateId()); + List notFoundManualEntities = new ArrayList<>(); + List manualEntities = manualEntitiesConverter(analyzeRequest.getManualRedactions(), analyzeRequest.getDossierTemplateId()); + if (!manualEntities.isEmpty()) { + notFoundManualEntities = manualEntityCreationService.toTextEntity(manualEntities, document); + } document.getEntities().forEach(textEntity -> { Set processedIds = new HashSet<>(); @@ -116,7 +120,7 @@ public class UnprocessedChangesService { } }); - notFoundManualRedactionEntries.forEach(manualEntity -> unprocessedManualEntities.add(builDefaultUnprocessedManualEntity(manualEntity))); + notFoundManualEntities.forEach(manualEntity -> unprocessedManualEntities.add(builDefaultUnprocessedManualEntity(manualEntity))); rabbitTemplate.convertAndSend(QueueNames.REDACTION_ANALYSIS_RESPONSE_QUEUE, AnalyzeResponse.builder().fileId(analyzeRequest.getFileId()).unprocessedManualEntities(unprocessedManualEntities).build()); @@ -263,4 +267,15 @@ public class UnprocessedChangesService { .build(); } + + private List manualEntitiesConverter(ManualRedactions manualRedactions, String dossierTemplateId) { + + return manualRedactions.getEntriesToAdd() + .stream() + .filter(manualRedactionEntry -> manualRedactionEntry.getPositions() != null && !manualRedactionEntry.getPositions().isEmpty()) + .map(manualRedactionEntry -> ManualEntity.fromManualRedactionEntry(manualRedactionEntry, + dictionaryService.isHint(manualRedactionEntry.getType(), dossierTemplateId))) + .toList(); + } + }