|
|
|
@ -0,0 +1,128 @@
|
|
|
|
|
package com.docus.server.collect.collector;
|
|
|
|
|
|
|
|
|
|
import com.docus.core.util.Func;
|
|
|
|
|
import com.docus.server.collect.entity.TBasic;
|
|
|
|
|
import com.docus.server.collect.service.FileReportService;
|
|
|
|
|
import com.docus.server.collect.service.dto.ReportFileInfoDTO;
|
|
|
|
|
import com.docus.server.collect.util.JaxWsDynamicClientUtil;
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
|
|
|
|
import java.time.LocalDateTime;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 检验报告采集
|
|
|
|
|
* @author wyb
|
|
|
|
|
*/
|
|
|
|
|
@Component("LisSystemCollector")
|
|
|
|
|
@Slf4j
|
|
|
|
|
public class LisSystemCollector{
|
|
|
|
|
@Value("${docus.report.lis.url}")
|
|
|
|
|
private String url;
|
|
|
|
|
@Value("${docus.report.lis.method}")
|
|
|
|
|
private String method;
|
|
|
|
|
@Value("${docus.report.lis.namespaceUri:}")
|
|
|
|
|
private String namespaceUri;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private FileReportService fileReportService;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 采集检验报告的参数
|
|
|
|
|
* @param basic 患者信息
|
|
|
|
|
* @param beginDateTime 报告开始时间
|
|
|
|
|
* @param endDateTime 报告结束时间
|
|
|
|
|
*/
|
|
|
|
|
public void collect(TBasic basic, String beginDateTime, String endDateTime){
|
|
|
|
|
String collectData = collectData(basic, beginDateTime, endDateTime);
|
|
|
|
|
ReportFileInfoDTO reportFileInfoDTO = LisSystemCollectConverter.convert(collectData);
|
|
|
|
|
fileReportService.saveDownloadTaskAndReport(reportFileInfoDTO);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public String collectData(TBasic basic,String beginDateTime,String endDateTime){
|
|
|
|
|
String contextWorkId = Func.randomUUID();
|
|
|
|
|
Object[] params = createQrParams(basic, beginDateTime, endDateTime);
|
|
|
|
|
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 basic 患者信息
|
|
|
|
|
* @param beginDateTime 报告开始时间
|
|
|
|
|
* @param endDateTime 报告结束时间
|
|
|
|
|
* @return 检验报告
|
|
|
|
|
*/
|
|
|
|
|
private Object[] createQrParams(TBasic basic,String beginDateTime,String endDateTime) {
|
|
|
|
|
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/>" +
|
|
|
|
|
" <EMPI_ID>"+basic.getEmpId()+"</EMPI_ID/>" +
|
|
|
|
|
" <TEST_PAT_SOURCE_CODE/>" +
|
|
|
|
|
" <MICROBE_TEST_FLAG>" +
|
|
|
|
|
" </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};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private static class LisSystemCollectConverter{
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 检验系统报告采集数据转换文件上报信息
|
|
|
|
|
* @param lisSystemCollectData 验系统报告采集数据
|
|
|
|
|
* @return 文件上报信息
|
|
|
|
|
*/
|
|
|
|
|
public static ReportFileInfoDTO convert(String lisSystemCollectData) {
|
|
|
|
|
//todo 转换未实现 2023年9月1日15:49:45 2023-9-4
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|