添加出院日期采集

collector-LIS
wyb 2 years ago
parent 63fd3f1df3
commit 15471e8371

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

@ -20,10 +20,20 @@ public interface GdSzyCollectServiceApi {
String PREFIX = "/collect/gdszy";
@ApiOperation("LIS 检验报告采集")
@ApiOperation("LIS 检验报告采集,根据jzh")
@ApiImplicitParams({
@ApiImplicitParam(name ="empId",value = "你别看这个参数名是empId其实传的和使用的是jzh有偷懒的选手",required = true,paramType = "query",dataTypeClass = String.class)
})
@GetMapping(PREFIX + "/lis")
CommonResult<String> lisSystemCollect(@RequestParam("empId") String empId);
@GetMapping(PREFIX + "/lisByJzh")
CommonResult<String> lisSystemCollectByJzh(@RequestParam("empId") String empId);
@ApiOperation("LIS 检验报告采集,根据出院区间")
@ApiImplicitParams({
@ApiImplicitParam(name ="disDateStart",value = "出院时间 开始区间 yyyy-MM-dd",required = true,paramType = "query",dataTypeClass = String.class),
@ApiImplicitParam(name ="disDateEnd",value = "出院时间 结束区间 yyyy-MM-dd",required = true,paramType = "query",dataTypeClass = String.class)
})
@GetMapping(PREFIX + "/lisByDisDate")
CommonResult<String> lisSystemCollectByDisDate(@RequestParam("disDateStart") String disDateStart,@RequestParam("disDateEnd")String disDateEnd);
}

@ -1,8 +1,10 @@
package com.docus.server.collect.infrastructure.dao;
import com.docus.infrastructure.core.db.dao.IBaseDao;
import com.docus.server.collect.dto.TBasicQrDto;
import com.docus.server.collect.entity.DownloadTask;
import com.docus.server.collect.entity.TBasic;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -20,6 +22,22 @@ public interface DownloadTaskDao extends IBaseDao<DownloadTask> {
*/
List<TBasic> getBasicInfo(TBasic tBasic);
/**
*
* @param qrDto
* @return
*/
int countBasicInfo(@Param("dto") TBasicQrDto qrDto);
/**
*
* @param qrDto
* @param offset
* @param size
* @return
*/
List<TBasic> pageBasicInfo(@Param("dto") TBasicQrDto qrDto,@Param("offset") int offset,@Param("size") int size);
/**
* id

@ -3,6 +3,7 @@ package com.docus.server.collect.infrastructure.dao.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.docus.core.util.Func;
import com.docus.infrastructure.core.db.dao.impl.BaseDaoImpl;
import com.docus.server.collect.dto.TBasicQrDto;
import com.docus.server.collect.entity.DownloadTask;
import com.docus.server.collect.entity.TBasic;
import com.docus.server.collect.infrastructure.dao.DownloadTaskDao;
@ -23,6 +24,16 @@ public class DownloadTaskDaoImpl extends BaseDaoImpl<DownloadTaskMapper, Downloa
return baseMapper.getBasicInfo(basic);
}
@Override
public int countBasicInfo(TBasicQrDto qrDto) {
return baseMapper.countBasicInfo(qrDto);
}
@Override
public List<TBasic> pageBasicInfo(TBasicQrDto qrDto, int offset, int size) {
return baseMapper.pageBasicInfo(qrDto,offset,size);
}
@Override
public Long getDownloadTaskIdFromDownloadTask(DownloadTask downloadTask) {
LambdaQueryWrapper<DownloadTask> wrapper = new LambdaQueryWrapper<>();

Loading…
Cancel
Save