|
|
|
@ -1,8 +1,11 @@
|
|
|
|
|
package com.docus.server.collect.controller;
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.util.PageUtil;
|
|
|
|
|
import com.docus.core.util.Func;
|
|
|
|
|
import com.docus.infrastructure.core.exception.BaseException;
|
|
|
|
|
import com.docus.infrastructure.web.api.CommonResult;
|
|
|
|
|
import com.docus.server.collect.collector.LisSystemCollector;
|
|
|
|
|
import com.docus.server.collect.dto.TBasicQrDto;
|
|
|
|
|
import com.docus.server.collect.entity.TBasic;
|
|
|
|
|
import com.docus.server.collect.feign.api.GdSzyCollectServiceApi;
|
|
|
|
|
import com.docus.server.collect.infrastructure.dao.DownloadTaskDao;
|
|
|
|
@ -26,20 +29,63 @@ public class CollectController implements GdSzyCollectServiceApi {
|
|
|
|
|
private DownloadTaskDao downloadTaskDao;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public CommonResult<String> lisSystemCollect(String jzh) {
|
|
|
|
|
public CommonResult<String> lisSystemCollectByJzh(String jzh) {
|
|
|
|
|
log.info("根据jzh进行lis采集,jzh为:{}", jzh);
|
|
|
|
|
TBasic basic = new TBasic();
|
|
|
|
|
basic.setJzh(jzh);
|
|
|
|
|
List<TBasic> basicInfo = downloadTaskDao.getBasicInfo(basic);
|
|
|
|
|
if(Func.isEmpty(basicInfo) || basicInfo.size()>1){
|
|
|
|
|
log.error("采集失败,基础数据匹配失败!");
|
|
|
|
|
if (Func.isEmpty(basicInfo) || basicInfo.size() > 1) {
|
|
|
|
|
log.error("采集失败,jzh:{} 基础数据匹配失败!", jzh);
|
|
|
|
|
return CommonResult.failed("采集失败,基础数据匹配失败!");
|
|
|
|
|
}
|
|
|
|
|
TBasic tBasic = basicInfo.get(0);
|
|
|
|
|
if(Func.isBlank(tBasic.getAdmissDate()) || Func.isBlank(tBasic.getDisDate())){
|
|
|
|
|
log.error("采集失败,患者住院或者出院时间为空!");
|
|
|
|
|
if (Func.isBlank(tBasic.getAdmissDate()) || Func.isBlank(tBasic.getDisDate())) {
|
|
|
|
|
log.error("采集失败,jzh:{} 患者住院或者出院时间为空!", jzh);
|
|
|
|
|
return CommonResult.failed("采集失败,患者住院或者出院时间为空!");
|
|
|
|
|
}
|
|
|
|
|
lisSystemCollector.collect(tBasic, tBasic.getAdmissDate(), tBasic.getDisDate());
|
|
|
|
|
return CommonResult.success("采集完成!");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public CommonResult<String> lisSystemCollectByDisDate(String disDateStart, String disDateEnd) {
|
|
|
|
|
log.info("根据出院时间进行lis采集,出院时间开始:{} ,出院时间结束:{}", disDateStart, disDateEnd);
|
|
|
|
|
validateDateStr(disDateStart);
|
|
|
|
|
validateDateStr(disDateEnd);
|
|
|
|
|
disDateStart = disDateStart + " 00:00:00";
|
|
|
|
|
disDateEnd = disDateEnd + " 23:59:59";
|
|
|
|
|
TBasicQrDto qrDto = new TBasicQrDto();
|
|
|
|
|
qrDto.setDisDateStart(disDateStart);
|
|
|
|
|
qrDto.setDisDateEnd(disDateEnd);
|
|
|
|
|
int count = downloadTaskDao.countBasicInfo(qrDto);
|
|
|
|
|
log.warn("本次根据出院日期时间 :{} 到 {} ,可采集患者有 {} 个!", disDateStart, disDateEnd, count);
|
|
|
|
|
if (count <= 0) {
|
|
|
|
|
return CommonResult.success("本次采集0个患者");
|
|
|
|
|
}
|
|
|
|
|
final int size=200;
|
|
|
|
|
int page = PageUtil.totalPage(count, size);
|
|
|
|
|
for (int i = 1; i <= page; i++) {
|
|
|
|
|
List<TBasic> tBasics = downloadTaskDao.pageBasicInfo(qrDto, (i - 1) * size, size);
|
|
|
|
|
if(Func.isNotEmpty(tBasics)){
|
|
|
|
|
for (TBasic basic : tBasics) {
|
|
|
|
|
if (Func.isBlank(basic.getAdmissDate()) || Func.isBlank(basic.getDisDate())) {
|
|
|
|
|
log.error("采集失败,jzh:{} 患者住院或者出院时间为空!", basic.getJzh());
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
lisSystemCollector.collect(basic, basic.getAdmissDate(), basic.getDisDate());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return CommonResult.success("本次采集" + count + "个患者");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void validateDateStr(String dateStr) {
|
|
|
|
|
try {
|
|
|
|
|
Func.parseDate(dateStr);
|
|
|
|
|
} catch (Exception ex) {
|
|
|
|
|
log.error(ex.getMessage(), ex);
|
|
|
|
|
throw new BaseException("日期验证失败,格式为 yyyy-MM-dd");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|