|
|
|
@ -1,6 +1,7 @@
|
|
|
|
|
package com.docus.server.collect.collector;
|
|
|
|
|
|
|
|
|
|
import com.docus.core.util.Func;
|
|
|
|
|
import com.docus.server.collect.entity.Jzh;
|
|
|
|
|
import com.docus.server.collect.entity.TBasic;
|
|
|
|
|
import com.docus.server.collect.enums.DownWayEnum;
|
|
|
|
|
import com.docus.server.collect.service.FileReportService;
|
|
|
|
@ -43,14 +44,23 @@ public class LisSystemCollector {
|
|
|
|
|
/**
|
|
|
|
|
* 采集检验报告的参数
|
|
|
|
|
*
|
|
|
|
|
* @param basic 患者信息
|
|
|
|
|
* @param beginDateTime 报告开始时间
|
|
|
|
|
* @param endDateTime 报告结束时间
|
|
|
|
|
* @param basic 患者信息
|
|
|
|
|
*/
|
|
|
|
|
public void collect(TBasic basic, String beginDateTime, String endDateTime) {
|
|
|
|
|
public void collect(TBasic basic) {
|
|
|
|
|
String jzh = basic.getJzh();
|
|
|
|
|
String admissDate = basic.getAdmissDate();
|
|
|
|
|
String disDate = basic.getDisDate();
|
|
|
|
|
if (Func.isBlank(admissDate) || Func.isBlank(disDate)) {
|
|
|
|
|
log.error("采集失败,jzh:{} 患者住院或者出院时间为空!", jzh);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
// 报告的开始和结束时间就是入院时间 和 出院时间+15天
|
|
|
|
|
String beginDateTime = admissDate;
|
|
|
|
|
LocalDateTime endLocalDateTime = Func.parseDateTime(disDate).plusDays(15L);
|
|
|
|
|
String endDateTime = Func.formatDateTime(endLocalDateTime);
|
|
|
|
|
// 普通的检验报告和 微生物检验报告
|
|
|
|
|
String collectDataNormal = collectData(basic, beginDateTime, endDateTime, 0);
|
|
|
|
|
String collectDataMtf = collectData(basic, beginDateTime, endDateTime, 1);
|
|
|
|
|
String collectDataNormal = collectData(new Jzh(jzh), beginDateTime, endDateTime, 0);
|
|
|
|
|
String collectDataMtf = collectData(new Jzh(jzh), beginDateTime, endDateTime, 1);
|
|
|
|
|
List<ReportFileInfoDTO> reportFileInfoDTOList = LisSystemCollectConverter.convert(collectDataNormal);
|
|
|
|
|
List<ReportFileInfoDTO> reportFileInfoDtoList2 = LisSystemCollectConverter.convert(collectDataMtf);
|
|
|
|
|
reportFileInfoDTOList.addAll(reportFileInfoDtoList2);
|
|
|
|
@ -65,6 +75,11 @@ public class LisSystemCollector {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private boolean isBelongToPatient(ReportFileInfoDTO reportFileInfoDTO, TBasic basic) {
|
|
|
|
|
// todo 验证报告是否属于患者,暂时描述说查询条件是患者唯一,不需要实现
|
|
|
|
|
return true;
|
|
|
|
@ -79,7 +94,7 @@ public class LisSystemCollector {
|
|
|
|
|
* @param microbeTestFlag 查细菌等微生物检验报告 1,空和0 是普通
|
|
|
|
|
* @return 检验报告结果
|
|
|
|
|
*/
|
|
|
|
|
public String collectData(TBasic basic, String beginDateTime, String endDateTime, int microbeTestFlag) {
|
|
|
|
|
private String collectData(TBasic basic, String beginDateTime, String endDateTime, int microbeTestFlag) {
|
|
|
|
|
String contextWorkId = Func.randomUUID();
|
|
|
|
|
Object[] params = createQrParams(basic, beginDateTime, endDateTime, microbeTestFlag);
|
|
|
|
|
log.info("[{}]:LIS检验报告采集地址:{},方法:{},命名空间:{},参数:{}", contextWorkId, url, method, namespaceUri, Func.toJson(params));
|
|
|
|
@ -150,7 +165,87 @@ public class LisSystemCollector {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private static class LisSystemCollectConverter {
|
|
|
|
|
/**
|
|
|
|
|
* 查询检验报告
|
|
|
|
|
*
|
|
|
|
|
* @param jzh 患者信息jzh
|
|
|
|
|
* @param beginDateTime 报告开始时间 入院时间
|
|
|
|
|
* @param endDateTime 报告结束时间 出院时间
|
|
|
|
|
* @param microbeTestFlag 查细菌等微生物检验报告 1,空和0 是普通
|
|
|
|
|
* @return 检验报告结果
|
|
|
|
|
*/
|
|
|
|
|
public String collectData(Jzh jzh, String beginDateTime, String endDateTime, int microbeTestFlag) {
|
|
|
|
|
String contextWorkId = Func.randomUUID();
|
|
|
|
|
Object[] params = createQrParams(jzh, beginDateTime, endDateTime, microbeTestFlag);
|
|
|
|
|
log.info("[{}]:LIS检验报告采集地址:{},方法:{},命名空间:{},参数:{}", contextWorkId, url, method, namespaceUri, Func.toJson(params));
|
|
|
|
|
String result = JaxWsDynamicClientUtil.send(url, namespaceUri, method, params);
|
|
|
|
|
log.info("[{}]:LIS检验报告采集结果为:{}", contextWorkId, result);
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 查询检验报告的ws参数
|
|
|
|
|
*
|
|
|
|
|
* @param jzh 患者信息jzh
|
|
|
|
|
* @param beginDateTime 报告开始时间
|
|
|
|
|
* @param endDateTime 报告结束时间
|
|
|
|
|
* @param microbeTestFlag 查细菌等微生物检验报告 1,空和0 是普通
|
|
|
|
|
* @return 检验报告
|
|
|
|
|
*/
|
|
|
|
|
private Object[] createQrParams(Jzh jzh, String beginDateTime, String endDateTime, int microbeTestFlag) {
|
|
|
|
|
String param1 = "<ESBEntry>" +
|
|
|
|
|
" <AccessControl>" +
|
|
|
|
|
" <SysFlag>1</SysFlag>" +
|
|
|
|
|
" <UserName>WZHBAGL</UserName>" +
|
|
|
|
|
" <Password>WZHBAGL_1127</Password>" +
|
|
|
|
|
" <Fid>BS03102</Fid>" +
|
|
|
|
|
" <OrderNo>BS03102S51001</OrderNo>" +
|
|
|
|
|
" <SUBOR_HOSPITAL_DISTRICT>GZ</SUBOR_HOSPITAL_DISTRICT>" +
|
|
|
|
|
" </AccessControl>" +
|
|
|
|
|
" <MessageHeader>" +
|
|
|
|
|
" <Fid>BS03102</Fid>" +
|
|
|
|
|
" <OrderNo>BS03102S51001</OrderNo>" +
|
|
|
|
|
" <SourceSysCode>S51</SourceSysCode>" +
|
|
|
|
|
" <TargetSysCode>S00</TargetSysCode>" +
|
|
|
|
|
" <MsgDate>" + Func.formatDateTime(LocalDateTime.now()) + "</MsgDate>" +
|
|
|
|
|
" </MessageHeader>" +
|
|
|
|
|
" <RequestOption>" +
|
|
|
|
|
" <triggerData>0</triggerData>" +
|
|
|
|
|
" <dataAmount>500</dataAmount>" +
|
|
|
|
|
" </RequestOption>" +
|
|
|
|
|
" <MsgInfo flag=\"1\">" +
|
|
|
|
|
" <Msg/>" +
|
|
|
|
|
" <distinct value=\"0\"/>" +
|
|
|
|
|
" <query item=\"WS_INPUT\" compy=\" = \" value=\" 1 \" splice=\"AND\"/>" +
|
|
|
|
|
" <query_ws action=\"Q_WS_JYBGLBCX\">" +
|
|
|
|
|
" <content>" +
|
|
|
|
|
" <Request>" +
|
|
|
|
|
" <Msg>" +
|
|
|
|
|
" <VUID/>" +
|
|
|
|
|
" <OUTHOSP_INDEX_NO/>" +
|
|
|
|
|
" <OUTHOSP_NO/>" +
|
|
|
|
|
" <INHOSP_INDEX_NO/>" +
|
|
|
|
|
" <INHOSP_NO>" + jzh.getJzh() + "</INHOSP_NO>" +
|
|
|
|
|
" <EMPI_ID/>" +
|
|
|
|
|
" <TEST_PAT_SOURCE_CODE/>" +
|
|
|
|
|
" <MICROBE_TEST_FLAG>" + microbeTestFlag + "</MICROBE_TEST_FLAG>" +
|
|
|
|
|
" <BEGIN_DATETIME>" + beginDateTime + "</BEGIN_DATETIME>" +
|
|
|
|
|
" <END_DATETIME>" + endDateTime + "</END_DATETIME>" +
|
|
|
|
|
" </Msg>" +
|
|
|
|
|
" </Request>" +
|
|
|
|
|
" </content>" +
|
|
|
|
|
" </query_ws>" +
|
|
|
|
|
" </MsgInfo>" +
|
|
|
|
|
" <GroupInfo flag=\"0\">" +
|
|
|
|
|
" <AS ID=\"\" linkField=\"\"/>" +
|
|
|
|
|
" </GroupInfo>" +
|
|
|
|
|
"</ESBEntry>";
|
|
|
|
|
|
|
|
|
|
return new Object[]{param1};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static class LisSystemCollectConverter {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 检验系统报告采集数据转换文件上报信息
|
|
|
|
|