|
|
|
@ -3,13 +3,11 @@ package com.docus.server.service.handler;
|
|
|
|
|
import com.docus.core.util.Func;
|
|
|
|
|
import com.docus.log.annotation.TrackRetryListener;
|
|
|
|
|
import com.docus.server.api.ocr.OcrApi;
|
|
|
|
|
import com.docus.server.entity.segmentation.OcrBasicTest;
|
|
|
|
|
import com.docus.server.entity.segmentation.OcrFileInfoTest;
|
|
|
|
|
import com.docus.server.entity.segmentation.OcrRuleResult;
|
|
|
|
|
import com.docus.server.entity.segmentation.OcrSpecialResult;
|
|
|
|
|
import com.docus.server.entity.segmentation.*;
|
|
|
|
|
import com.docus.server.enums.OcrStatusEnum;
|
|
|
|
|
import com.docus.server.infrastructure.dao.IOcrBasicTestDao;
|
|
|
|
|
import com.docus.server.infrastructure.dao.IOcrFileInfoTestDao;
|
|
|
|
|
import com.docus.server.infrastructure.dao.IOcrUrlConfigTestDao;
|
|
|
|
|
import com.docus.server.service.IOcrBasicTestService;
|
|
|
|
|
import com.docus.server.service.IOcrRuleTestService;
|
|
|
|
|
import com.docus.server.service.IOcrSpecialRuleTestService;
|
|
|
|
@ -18,6 +16,7 @@ import org.springframework.stereotype.Component;
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 开始OCR处理器
|
|
|
|
@ -34,6 +33,8 @@ public class StartOcrTestHandler {
|
|
|
|
|
private IOcrRuleTestService iOcrRuleTestService;
|
|
|
|
|
@Resource
|
|
|
|
|
private IOcrBasicTestDao iOcrBasicTestDao;
|
|
|
|
|
@Resource
|
|
|
|
|
private IOcrUrlConfigTestDao iOcrUrlConfigTestDao;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@TrackRetryListener("START_OCR_TEST")
|
|
|
|
@ -42,12 +43,13 @@ public class StartOcrTestHandler {
|
|
|
|
|
OcrSpecialResult lastSpecialResul = null;
|
|
|
|
|
|
|
|
|
|
//根据病案号查询文件列表
|
|
|
|
|
OcrBasicTest ocrBasicTest = iOcrBasicTestDao.findBy("patientId",patientId).get(0);
|
|
|
|
|
List<OcrBasicTest> ocrBasicTestList = iOcrBasicTestDao.findBy("patientId",patientId);
|
|
|
|
|
List<OcrFileInfoTest> fileInfoTestList = iOcrFileInfoTestDao.findBy("patientId", patientId);
|
|
|
|
|
String url = iOcrUrlConfigTestDao.findAll().get(0).getUrl();
|
|
|
|
|
for (OcrFileInfoTest fileInfoTest : fileInfoTestList) {
|
|
|
|
|
|
|
|
|
|
//遍历文件列表 获取ocr识别结果
|
|
|
|
|
List<String> ocrTextList = ocrApi.getText(fileInfoTest.getPicCutUrl());
|
|
|
|
|
List<String> ocrTextList = ocrApi.getText(fileInfoTest.getPicCutUrl(),url);
|
|
|
|
|
|
|
|
|
|
fileInfoTest.setOcrText(Func.toJson(ocrTextList));
|
|
|
|
|
fileInfoTest.setOcrStatus(OcrStatusEnum.COMPLETE);
|
|
|
|
@ -90,11 +92,13 @@ public class StartOcrTestHandler {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//更新数据库表
|
|
|
|
|
ocrBasicTest.setOcrFinishTime(new Date());
|
|
|
|
|
ocrBasicTest.setOcrStatue(OcrStatusEnum.COMPLETE);
|
|
|
|
|
List<OcrBasicTest> collect = ocrBasicTestList.stream().peek(p -> {
|
|
|
|
|
p.setOcrFinishTime(new Date());
|
|
|
|
|
p.setOcrStatue(OcrStatusEnum.COMPLETE);
|
|
|
|
|
}).collect(Collectors.toList());
|
|
|
|
|
|
|
|
|
|
iOcrFileInfoTestDao.updateBatchById(fileInfoTestList, 1000);
|
|
|
|
|
iOcrBasicTestDao.updateById(ocrBasicTest);
|
|
|
|
|
iOcrBasicTestDao.updateBatchById(collect,1000);
|
|
|
|
|
|
|
|
|
|
return fileInfoTestList;
|
|
|
|
|
}
|
|
|
|
|