diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogMergeService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogMergeService.java index 09752425e..892c1f884 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogMergeService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogMergeService.java @@ -45,6 +45,7 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileModel; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.DictionaryEntryType; +import io.micrometer.observation.annotation.Observed; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -59,6 +60,7 @@ public class EntityLogMergeService { private final FileStatusPersistenceService fileStatusPersistenceService; + @Observed(name = "EntityLogMergeService", contextualName = "merge-entity-log") public EntityLog mergeEntityLog(ManualRedactions manualRedactions, EntityLog entityLog, DossierEntity dossier, FileModel fileModel) { log.info("Merging EntityLog"); @@ -91,6 +93,8 @@ public class EntityLogMergeService { sendToAnalyseQueue(fileModel.getId(), dossier, fileModel, manualRedactionsWhichRequireExtraInformation); } + + log.info("EntityLog merged successfully."); return entityLog; } @@ -359,7 +363,6 @@ public class EntityLogMergeService { .dossierTemplateId(dossier.getDossierTemplateId()) .lastProcessed(fileModel.getLastProcessed()) .fileAttributes(fileStatusService.convertAttributes(fileEntity.getFileAttributes(), dossier.getDossierTemplateId())) - .excludedPages(fileModel.getExcludedPages()) .build(); log.info("Sending Surrounding Text Analysis for unprocessed manual redactions: {} for file: {} ", manualRedactions, fileId); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogService.java index 75491e9a3..754de4650 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogService.java @@ -15,8 +15,10 @@ import com.iqser.red.service.persistence.management.v1.processor.service.manualr 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.FilteredEntityLogRequest; +import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.ManualRedactionType; import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.ManualRedactions; +import io.micrometer.observation.annotation.Observed; import lombok.AccessLevel; import lombok.RequiredArgsConstructor; import lombok.experimental.FieldDefaults; @@ -37,12 +39,14 @@ public class EntityLogService { EntityLogMergeService entityLogMergeService; + @Observed(name = "EntityLogService", contextualName = "get-entity-log") public EntityLog getEntityLog(String dossierId, String fileId) { return getEntityLog(dossierId, fileId, Collections.emptyList(), false); } + @Observed(name = "EntityLogService", contextualName = "get-entity-log") public EntityLog getEntityLog(String dossierId, String fileId, List excludedTypes, boolean includeUnprocessed) { var fileStatus = fileStatusService.getStatus(fileId); @@ -65,6 +69,12 @@ public class EntityLogService { entityLogMergeService.mergeEntityLog(manualRedactions, entityLog, dossier, fileStatus); } + if (fileStatus.getExcludedPages() != null && !fileStatus.getExcludedPages().isEmpty()) { + entityLog.getEntityLogEntry() + .forEach(entry -> entry.setExcluded(entry.getPositions().stream().anyMatch(position -> fileStatus.getExcludedPages().contains(position.getPageNumber())) // + && entry.getManualChanges().stream().noneMatch(m -> m.getManualRedactionType().equals(ManualRedactionType.ADD_LOCALLY)))); + } + Map commentCountPerAnnotationId = commentService.getCommentCounts(fileId); entityLog.getEntityLogEntry().forEach(entityLogEntry -> entityLogEntry.setNumberOfComments(commentCountPerAnnotationId.getOrDefault(entityLogEntry.getId(), 0))); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileStatusService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileStatusService.java index e3e09e7a8..385238d2b 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileStatusService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileStatusService.java @@ -217,7 +217,6 @@ public class FileStatusService { .dossierTemplateId(dossier.getDossierTemplateId()) .lastProcessed(fileModel.getLastProcessed()) .fileAttributes(convertAttributes(fileEntity.getFileAttributes(), dossier.getDossierTemplateId())) - .excludedPages(fileModel.getExcludedPages()) .build(); log.info("Add file: {} from dossier {} to Analysis queue with MessageType {}", fileId, dossierId, messageType); diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/Application.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/Application.java index 9060d42ba..2eaa4b563 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/Application.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/Application.java @@ -54,6 +54,7 @@ import io.micrometer.common.KeyValues; import io.micrometer.core.aop.TimedAspect; import io.micrometer.core.instrument.MeterRegistry; import io.micrometer.observation.ObservationRegistry; +import io.micrometer.observation.aop.ObservedAspect; import lombok.extern.slf4j.Slf4j; @Slf4j @@ -78,6 +79,13 @@ public class Application implements ApplicationContextAware { } + @Bean + public ObservedAspect observedAspect(ObservationRegistry observationRegistry) { + + return new ObservedAspect(observationRegistry); + } + + @Bean public TimedAspect timedAspect(MeterRegistry registry) { diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/AnalyzeRequest.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/AnalyzeRequest.java index 56b51d754..b00739042 100644 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/AnalyzeRequest.java +++ b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/AnalyzeRequest.java @@ -28,8 +28,6 @@ public class AnalyzeRequest { private OffsetDateTime lastProcessed; private int analysisNumber; - @Builder.Default - private Set excludedPages = new HashSet<>(); @Builder.Default private Set sectionsToReanalyse = new HashSet<>();