RED-7669: improve OCR performance

This commit is contained in:
Kilian Schuettler 2023-11-14 11:45:00 +01:00
parent 5eb4d86808
commit f600ffd118
4 changed files with 88 additions and 6 deletions

View File

@ -127,8 +127,8 @@
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.iqser.red.service</groupId>
<artifactId>ocr-service-api-v1</artifactId>
<groupId>com.knecon.fforesight.service</groupId>
<artifactId>ocr-service-api</artifactId>
<exclusions>
<exclusion>
<groupId>com.iqser.red.service</groupId>

View File

@ -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;
});

View File

@ -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<ComponentLogEntry> 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<String> 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));
}
}

View File

@ -37,7 +37,7 @@
<search-service.version>2.71.0</search-service.version>
<pdftron-redaction-service.version>4.38.0</pdftron-redaction-service.version>
<redaction-report-service.version>4.36.0</redaction-report-service.version>
<ocr-service.version>3.10.0</ocr-service.version>
<ocr-service.version>4.0.0</ocr-service.version>
<storage.commons.version>2.45.0</storage.commons.version>
</properties>
@ -61,8 +61,8 @@
<version>${redaction-service.version}</version>
</dependency>
<dependency>
<groupId>com.iqser.red.service</groupId>
<artifactId>ocr-service-api-v1</artifactId>
<groupId>com.knecon.fforesight.service</groupId>
<artifactId>ocr-service-api</artifactId>
<version>${ocr-service.version}</version>
</dependency>
<dependency>