输血报告查询

3.2.4.44
wyb 2 years ago
parent 36769b856f
commit bdfe72cc22

@ -11,5 +11,6 @@
"bodyTemperature": "移动护理体温单分段id",
"authorization": "知情同意书分段id",
"xdxt": "xdxt文件分段id",
"blood": "输血报告单分段id",
"other": "其他文件分段id"
}

@ -1,6 +1,8 @@
package com.docus.server.report.api;
import com.docus.infrastructure.web.api.CommonResult;
import com.docus.server.report.api.dto.*;
import com.docus.server.report.api.vo.SdRyBloodReportVO;
import java.util.List;
@ -67,4 +69,16 @@ public interface ShunDePeopleService {
* @return
*/
SdNurDocFailResponse pushSdNurDocFail(SdNurDocFailRequest request);
/**
*
*
* @param inpatientNo
* @param admissTimes
* @return
*/
CommonResult<List<SdRyBloodReportVO>> getBloodView(String inpatientNo, Integer admissTimes);
}

@ -4,10 +4,13 @@ import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.docus.core.util.DateUtil;
import com.docus.core.util.Func;
import com.docus.infrastructure.web.api.CommonResult;
import com.docus.server.report.api.ShunDePeopleService;
import com.docus.server.report.api.dto.*;
import com.docus.server.report.api.vo.SdRyBloodReportVO;
import com.docus.server.report.client.JaxWsDynamicClient;
import com.docus.server.report.config.SdRyReportQueryConfig;
import com.docus.server.report.util.IdUtil;
@ -154,23 +157,24 @@ public class ShunDePeopleServiceImpl implements ShunDePeopleService {
}
public static void main(String[] args) {
SdNurseInsertSugarRequest request=new SdNurseInsertSugarRequest("10086","1","nur");
SdNurseInsertSugarRequest request = new SdNurseInsertSugarRequest("10086", "1", "nur");
String requestParam = Func.toJson(request);
System.out.println(requestParam);
}
@Override
public SdNurseInsertSugarResponse getNurseInsertSugarReport(SdNurseInsertSugarRequest request) {
String randomUuid = Func.randomUUID();
NURSE_INSERT_SUGAR_LOCK.lock();
try {
String requestParam = Func.toJson(request);
log.info("[{}]查询移动护理,请求地址:{},参数:{}", randomUuid,sdRyReportQueryConfig.getReportQueryNurseInsertSugarUrl(), requestParam);
log.info("[{}]查询移动护理,请求地址:{},参数:{}", randomUuid, sdRyReportQueryConfig.getReportQueryNurseInsertSugarUrl(), requestParam);
String respBody = sendPost(sdRyReportQueryConfig.getReportQueryNurseInsertSugarUrl(), requestParam);
log.info("[{}]查询移动护理,响应:{}", randomUuid, respBody);
TimeUnit.MILLISECONDS.sleep(sdRyReportQueryConfig.getReportQueryNurseInsertSugarInterval());
return JSON.parseObject(respBody,SdNurseInsertSugarResponse.class);
return JSON.parseObject(respBody, SdNurseInsertSugarResponse.class);
} catch (Exception ex) {
log.error("["+randomUuid+"]"+"查询移动护理出错了:" + ex.getMessage(), ex);
log.error("[" + randomUuid + "]" + "查询移动护理出错了:" + ex.getMessage(), ex);
return new SdNurseInsertSugarResponse();
} finally {
NURSE_INSERT_SUGAR_LOCK.unlock();
@ -182,20 +186,37 @@ public class ShunDePeopleServiceImpl implements ShunDePeopleService {
String randomUuid = Func.randomUUID();
NURSE_INSERT_SUGAR_PUSH_ERR_LOCK.lock();
try {
String body=Func.toJson(request);
log.info("[{}] 移动护理推送错误,请求地址:{},参数:{}", randomUuid,sdRyReportQueryConfig.getReportQueryNurseInsertSugarErrPushUrl(), body);
String body = Func.toJson(request);
log.info("[{}] 移动护理推送错误,请求地址:{},参数:{}", randomUuid, sdRyReportQueryConfig.getReportQueryNurseInsertSugarErrPushUrl(), body);
String respBody = sendPost(sdRyReportQueryConfig.getReportQueryNurseInsertSugarErrPushUrl(), body);
log.info("[{}] 移动护理推送错误,响应:{}", randomUuid, respBody);
TimeUnit.MILLISECONDS.sleep(sdRyReportQueryConfig.getReportQueryNurseInsertSugarErrPushInterval());
return JSON.parseObject(respBody,SdNurDocFailResponse.class);
}catch (Exception ex){
log.error("["+randomUuid+"]"+"移动护理推送异常,出错了:" + ex.getMessage(), ex);
return JSON.parseObject(respBody, SdNurDocFailResponse.class);
} catch (Exception ex) {
log.error("[" + randomUuid + "]" + "移动护理推送异常,出错了:" + ex.getMessage(), ex);
return null;
}finally {
} finally {
NURSE_INSERT_SUGAR_PUSH_ERR_LOCK.unlock();
}
}
@Override
public CommonResult<List<SdRyBloodReportVO>> getBloodView(String inpatientNo, Integer admissTimes) {
String rqId = Func.randomUUID();
String url = sdRyReportQueryConfig.getBloodUrl() + "?inpatientNo=" + inpatientNo + "&admissTimes=" + admissTimes;
try {
log.info("[{}]查询血液报告地址:{}", rqId, url);
String resp = HttpUtil.get(url);
log.info("[{}]查询血液报告结果:{}", rqId, resp);
return JSON.parseObject(resp, new TypeReference<CommonResult<List<SdRyBloodReportVO>>>() {
});
} catch (Exception ex) {
log.error("[" + rqId + "]" + "查询血液报告出错了:" + ex.getMessage(), ex);
return CommonResult.failed("");
}
}
private String organizationQuerySdRyInspectReportUrl(String reportQueryLisUrl) {
return reportQueryLisUrl + "/query?uuid=" + IdUtil.standardUUID() +
"&action=" + sdRyReportQueryConfig.getReportQueryInspectAction() +

@ -0,0 +1,27 @@
package com.docus.server.report.api.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
*
*
* @author WYBDEV
*/
@Data
@ApiModel("顺德人医血液报告单查询结果")
public class SdRyBloodReportVO {
@ApiModelProperty("文件id")
private String fileId;
@ApiModelProperty("住院号")
private String inpatientNo;
@ApiModelProperty("住院次数")
private Integer admissions;
@ApiModelProperty("保存文件名")
private String fileName;
@ApiModelProperty("文件描述标题")
private String fileDesc;
@ApiModelProperty("文件下载地址")
private String fileUrl;
}

@ -65,4 +65,16 @@ public class SdRyReportQueryConfig {
private String reportQueryNurseInsertSugarErrPushUrl;
@Value("${sdry.report-query-url.nurseInsertSugar.pushErr.interval:1000}")
private int reportQueryNurseInsertSugarErrPushInterval;
@Value("${sdry.report-query-url.blood.collectorId}")
private String bloodCollectorId;
@Value("${sdry.report-query-url.blood.url}")
private String bloodUrl;
@Value("${sdry.report-query-url.blood.defaultAssortType}")
private String bloodDefaultAssortType;
}

@ -5,12 +5,14 @@ import com.docus.core.util.Func;
import com.docus.infrastructure.core.exception.BaseException;
import com.docus.infrastructure.redis.service.IdService;
import com.docus.infrastructure.redis.service.RedisOps;
import com.docus.infrastructure.web.api.CommonResult;
import com.docus.infrastructure.web.api.ResultCode;
import com.docus.server.collection.entity.TBasic;
import com.docus.server.collection.mapper.TBasicMapper;
import com.docus.server.report.api.ShunDePeopleService;
import com.docus.server.report.api.TaskDistributeService;
import com.docus.server.report.api.dto.*;
import com.docus.server.report.api.vo.SdRyBloodReportVO;
import com.docus.server.report.config.SdRyCollectNurseInsertSugarConfig;
import com.docus.server.report.config.SdRyReportQueryConfig;
import com.docus.server.report.config.TaskValidateConfig;
@ -71,6 +73,44 @@ public class ReportJob {
@Resource
RedisOps redisOps;
/**
*
*/
@XxlJob("SdRyBloodCollectJob")
public void sdRyBloodCollectJob() {
String bloodCollectorId = sdRyReportQueryConfig.getBloodCollectorId();
ReportDownTwoDto reportDownTwoDto = taskDistributeService.getNoViewTaskByCollectorId(bloodCollectorId);
if (reportDownTwoDto == null) {
return;
}
String patientId = reportDownTwoDto.getPatient().getPatientId();
String inpatientNo = reportDownTwoDto.getPatient().getInpatientNo();
Integer admissTimes = reportDownTwoDto.getHospitals().get(0).getAdmissTimes();
Long taskId = reportDownTwoDto.getTasks().get(0).getTaskId();
CommonResult<List<SdRyBloodReportVO>> bloodViewReport = shunDePeopleService.getBloodView(inpatientNo, admissTimes);
List<SdRyBloodReportVO> sdRyBloodReportVOList = bloodViewReport.getData();
if (ResultCode.SUCCESS.getCode().equals(bloodViewReport.getCode()) && Func.isNotEmpty(sdRyBloodReportVOList)) {
ReportDto reportDto;
for (SdRyBloodReportVO bloodReportVO : sdRyBloodReportVOList) {
reportDto = new ReportDto();
reportDto.setSysFlag(bloodCollectorId);
reportDto.setTaskId(taskId);
reportDto.setDownUrl(bloodReportVO.getFileUrl());
reportDto.setFileTitle(bloodReportVO.getFileId() + bloodReportVO.getFileDesc());
reportDto.setSerialnum(bloodReportVO.getFileId());
reportDto.setAssortId(ZdAssortConfig.getZdAssortId(sdRyReportQueryConfig.getBloodDefaultAssortType()));
reportDto.setAdmisstimes(admissTimes);
reportDto.setInpatientNo(inpatientNo);
reportDto.setPatientId(patientId);
reportDto.setDowntype(1);
reportDto.setFileSource("1");
reportDto.setFilestoragetype("1");
reportService.report(reportDto);
}
}
log.info("病案号:{},住院次数:{},输血报告单采集:{} 份", inpatientNo, admissTimes, Func.isEmpty(sdRyBloodReportVOList) ? 0 : sdRyBloodReportVOList.size());
}
@XxlJob("SdRyLisCollectJob")
public void sdRyLisCollectJob() {
String reportQueryLisCollectorId = sdRyReportQueryConfig.getReportQueryLisCollectorId();
@ -512,8 +552,6 @@ public class ReportJob {
}
/**
*
*
* @param visitSn _
* @param patientSn id
* @return

@ -82,6 +82,14 @@ sdry:
url: http://127.0.0.1:9311/api/mockTest/nurseErrMock
interval: 1000
# 输血报告
blood:
# 输血报告采集器队列
collectorId: 10086
# 写docus-unified-message服务的ip和端口
url: http://127.0.0.1:9314/hospital/sdRy/getBloodView
# js-table-type 中配置的文件分段
defaultAssortType: blood

Loading…
Cancel
Save