From f600ffd1184be44b5bb027992baf9c4c72246a18 Mon Sep 17 00:00:00 2001 From: Kilian Schuettler Date: Tue, 14 Nov 2023 11:45:00 +0100 Subject: [PATCH 1/2] RED-7669: improve OCR performance --- .../persistence-service-processor-v1/pom.xml | 4 +- .../processor/service/FileStatusService.java | 3 +- .../tests/ComponentLogSortingTest.java | 81 +++++++++++++++++++ persistence-service-v1/pom.xml | 6 +- 4 files changed, 88 insertions(+), 6 deletions(-) create mode 100644 persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ComponentLogSortingTest.java diff --git a/persistence-service-v1/persistence-service-processor-v1/pom.xml b/persistence-service-v1/persistence-service-processor-v1/pom.xml index ef295ab42..588035403 100644 --- a/persistence-service-v1/persistence-service-processor-v1/pom.xml +++ b/persistence-service-v1/persistence-service-processor-v1/pom.xml @@ -127,8 +127,8 @@ ${project.version} - com.iqser.red.service - ocr-service-api-v1 + com.knecon.fforesight.service + ocr-service-api com.iqser.red.service 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 74cd03b42..c070f0c03 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 @@ -47,6 +47,7 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemp import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.ProcessingStatus; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.WorkflowStatus; import com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter; +import com.knecon.fforesight.service.ocr.v1.api.model.DocumentRequest; import jakarta.transaction.Transactional; import lombok.RequiredArgsConstructor; @@ -410,7 +411,7 @@ public class FileStatusService { private void addToOcrQueue(String dossierId, String fileId, int priority) { - rabbitTemplate.convertAndSend(MessagingConfiguration.OCR_QUEUE, new com.iqser.red.service.ocr.v1.api.model.DocumentRequest(dossierId, fileId), message -> { + rabbitTemplate.convertAndSend(MessagingConfiguration.OCR_QUEUE, new DocumentRequest(dossierId, fileId), message -> { message.getMessageProperties().setPriority(priority); return message; }); diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ComponentLogSortingTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ComponentLogSortingTest.java new file mode 100644 index 000000000..f10d4e9c2 --- /dev/null +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ComponentLogSortingTest.java @@ -0,0 +1,81 @@ +package com.iqser.red.service.peristence.v1.server.integration.tests; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.when; + +import java.util.Collections; +import java.util.LinkedList; +import java.util.List; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.mockito.MockitoAnnotations; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.mock.mockito.MockBean; + +import com.iqser.red.persistence.service.v1.external.api.impl.controller.DossierTemplateController; +import com.iqser.red.persistence.service.v1.external.api.impl.controller.StatusController; +import com.iqser.red.persistence.service.v2.external.api.impl.controller.ComponentControllerV2; +import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest; +import com.iqser.red.service.persistence.management.v1.processor.service.ComponentLogService; +import com.iqser.red.service.persistence.management.v1.processor.service.FileManagementStorageService; +import com.iqser.red.service.persistence.management.v1.processor.service.FileStatusService; +import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.ComponentLog; +import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.ComponentLogEntry; + +public class ComponentLogSortingTest extends AbstractPersistenceServerServiceTest { + + @Autowired + private ComponentLogService componentLogService; + + @Autowired + private ComponentControllerV2 componentControllerV2; + + @MockBean + private FileManagementStorageService fileManagementStorageService; + + @MockBean + private DossierTemplateController dossierTemplateController; + + @MockBean + private StatusController statusController; + + @MockBean + private FileStatusService fileStatusService; + + + @BeforeEach + public void stubMethods() { + + MockitoAnnotations.openMocks(this); + ComponentLog componentLog = new ComponentLog(); + List entries = List.of(new ComponentLogEntry("Sex", Collections.emptyList()), new ComponentLogEntry("Study_Title", Collections.emptyList())); + componentLog.setComponentLogEntries(entries); + when(fileManagementStorageService.getComponentLog(any(), any())).thenReturn(componentLog); + when(fileStatusService.getFileName(any())).thenReturn("file"); + } + + + @Test + public void testComponentLogIsSorted() { + + var componentLog = componentLogService.getComponentLog("123", "123"); + assertEquals(2, componentLog.getComponentLogEntries().size()); + assertEquals("Study_Title", componentLog.getComponentLogEntries().get(0).getName()); + assertEquals("Sex", componentLog.getComponentLogEntries().get(1).getName()); + } + + + @Test + public void testComponentLogIsSortedInController() { + + var result = componentControllerV2.getComponents("123", "123", "123", true); + List components = new LinkedList<>(); + result.getComponents().forEach((key, value) -> components.add(key)); + assertEquals(2, result.getComponents().size()); + assertEquals("Study_Title", components.get(0)); + assertEquals("Sex", components.get(1)); + } + +} diff --git a/persistence-service-v1/pom.xml b/persistence-service-v1/pom.xml index 8cae651b1..2c7460b63 100755 --- a/persistence-service-v1/pom.xml +++ b/persistence-service-v1/pom.xml @@ -37,7 +37,7 @@ 2.71.0 4.38.0 4.36.0 - 3.10.0 + 4.0.0 2.45.0 @@ -61,8 +61,8 @@ ${redaction-service.version} - com.iqser.red.service - ocr-service-api-v1 + com.knecon.fforesight.service + ocr-service-api ${ocr-service.version} -- 2.47.2 From cc45d215862ee9cae2f8b877f66c40b508049011 Mon Sep 17 00:00:00 2001 From: Kilian Schuettler Date: Tue, 14 Nov 2023 12:11:04 +0100 Subject: [PATCH 2/2] RED-7669: improve OCR performance --- .../tests/ComponentLogSortingTest.java | 81 ------------------- 1 file changed, 81 deletions(-) delete mode 100644 persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ComponentLogSortingTest.java diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ComponentLogSortingTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ComponentLogSortingTest.java deleted file mode 100644 index f10d4e9c2..000000000 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ComponentLogSortingTest.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.iqser.red.service.peristence.v1.server.integration.tests; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.when; - -import java.util.Collections; -import java.util.LinkedList; -import java.util.List; - -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.mockito.MockitoAnnotations; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.mock.mockito.MockBean; - -import com.iqser.red.persistence.service.v1.external.api.impl.controller.DossierTemplateController; -import com.iqser.red.persistence.service.v1.external.api.impl.controller.StatusController; -import com.iqser.red.persistence.service.v2.external.api.impl.controller.ComponentControllerV2; -import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest; -import com.iqser.red.service.persistence.management.v1.processor.service.ComponentLogService; -import com.iqser.red.service.persistence.management.v1.processor.service.FileManagementStorageService; -import com.iqser.red.service.persistence.management.v1.processor.service.FileStatusService; -import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.ComponentLog; -import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.ComponentLogEntry; - -public class ComponentLogSortingTest extends AbstractPersistenceServerServiceTest { - - @Autowired - private ComponentLogService componentLogService; - - @Autowired - private ComponentControllerV2 componentControllerV2; - - @MockBean - private FileManagementStorageService fileManagementStorageService; - - @MockBean - private DossierTemplateController dossierTemplateController; - - @MockBean - private StatusController statusController; - - @MockBean - private FileStatusService fileStatusService; - - - @BeforeEach - public void stubMethods() { - - MockitoAnnotations.openMocks(this); - ComponentLog componentLog = new ComponentLog(); - List entries = List.of(new ComponentLogEntry("Sex", Collections.emptyList()), new ComponentLogEntry("Study_Title", Collections.emptyList())); - componentLog.setComponentLogEntries(entries); - when(fileManagementStorageService.getComponentLog(any(), any())).thenReturn(componentLog); - when(fileStatusService.getFileName(any())).thenReturn("file"); - } - - - @Test - public void testComponentLogIsSorted() { - - var componentLog = componentLogService.getComponentLog("123", "123"); - assertEquals(2, componentLog.getComponentLogEntries().size()); - assertEquals("Study_Title", componentLog.getComponentLogEntries().get(0).getName()); - assertEquals("Sex", componentLog.getComponentLogEntries().get(1).getName()); - } - - - @Test - public void testComponentLogIsSortedInController() { - - var result = componentControllerV2.getComponents("123", "123", "123", true); - List components = new LinkedList<>(); - result.getComponents().forEach((key, value) -> components.add(key)); - assertEquals(2, result.getComponents().size()); - assertEquals("Study_Title", components.get(0)); - assertEquals("Sex", components.get(1)); - } - -} -- 2.47.2