省中医lis采集,查询二次接口,有微生物

collector-LIS
wyb 2 years ago
parent fba6c0540c
commit fb208d6b94

@ -20,11 +20,12 @@ import java.util.List;
/** /**
* *
*
* @author wyb * @author wyb
*/ */
@Component("LisSystemCollector") @Component("LisSystemCollector")
@Slf4j @Slf4j
public class LisSystemCollector{ public class LisSystemCollector {
@Value("${docus.report.lis.url}") @Value("${docus.report.lis.url}")
private String url; private String url;
@Value("${docus.report.lis.assortId}") @Value("${docus.report.lis.assortId}")
@ -41,15 +42,20 @@ public class LisSystemCollector{
/** /**
* *
* @param basic *
* @param basic
* @param beginDateTime * @param beginDateTime
* @param endDateTime * @param endDateTime
*/ */
public void collect(TBasic basic, String beginDateTime, String endDateTime){ public void collect(TBasic basic, String beginDateTime, String endDateTime) {
String collectData = collectData(basic, beginDateTime, endDateTime); // 普通的检验报告和 微生物检验报告
List<ReportFileInfoDTO> reportFileInfoDTOList = LisSystemCollectConverter.convert(collectData); String collectDataNormal = collectData(basic, beginDateTime, endDateTime, 0);
String collectDataMtf = collectData(basic, beginDateTime, endDateTime, 1);
List<ReportFileInfoDTO> reportFileInfoDTOList = LisSystemCollectConverter.convert(collectDataNormal);
List<ReportFileInfoDTO> reportFileInfoDtoList2 = LisSystemCollectConverter.convert(collectDataMtf);
reportFileInfoDTOList.addAll(reportFileInfoDtoList2);
for (ReportFileInfoDTO reportFileInfoDTO : reportFileInfoDTOList) { for (ReportFileInfoDTO reportFileInfoDTO : reportFileInfoDTOList) {
if(!isBelongToPatient(reportFileInfoDTO,basic)){ if (!isBelongToPatient(reportFileInfoDTO, basic)) {
continue; continue;
} }
reportFileInfoDTO.setPatientId(basic.getPatientId()); reportFileInfoDTO.setPatientId(basic.getPatientId());
@ -64,9 +70,18 @@ public class LisSystemCollector{
return true; return true;
} }
public String collectData(TBasic basic,String beginDateTime,String endDateTime){ /**
*
*
* @param basic
* @param beginDateTime
* @param endDateTime
* @param microbeTestFlag 10
* @return
*/
public String collectData(TBasic basic, String beginDateTime, String endDateTime, int microbeTestFlag) {
String contextWorkId = Func.randomUUID(); String contextWorkId = Func.randomUUID();
Object[] params = createQrParams(basic, beginDateTime, endDateTime); Object[] params = createQrParams(basic, beginDateTime, endDateTime, microbeTestFlag);
log.info("[{}]:LIS检验报告采集地址{},方法:{},命名空间:{},参数:{}", contextWorkId, url, method, namespaceUri, Func.toJson(params)); log.info("[{}]:LIS检验报告采集地址{},方法:{},命名空间:{},参数:{}", contextWorkId, url, method, namespaceUri, Func.toJson(params));
String result = JaxWsDynamicClientUtil.send(url, namespaceUri, method, params); String result = JaxWsDynamicClientUtil.send(url, namespaceUri, method, params);
log.info("[{}]:LIS检验报告采集结果为:{}", contextWorkId, result); log.info("[{}]:LIS检验报告采集结果为:{}", contextWorkId, result);
@ -75,13 +90,15 @@ public class LisSystemCollector{
/** /**
* ws * ws
* @param basic *
* @param beginDateTime * @param basic
* @param endDateTime * @param beginDateTime
* @param endDateTime
* @param microbeTestFlag 10
* @return * @return
*/ */
private Object[] createQrParams(TBasic basic,String beginDateTime,String endDateTime) { private Object[] createQrParams(TBasic basic, String beginDateTime, String endDateTime, int microbeTestFlag) {
String param1="<ESBEntry>" + String param1 = "<ESBEntry>" +
" <AccessControl>" + " <AccessControl>" +
" <SysFlag>1</SysFlag>" + " <SysFlag>1</SysFlag>" +
" <UserName>WZHBAGL</UserName>" + " <UserName>WZHBAGL</UserName>" +
@ -95,7 +112,7 @@ public class LisSystemCollector{
" <OrderNo>BS03102S51001</OrderNo>" + " <OrderNo>BS03102S51001</OrderNo>" +
" <SourceSysCode>S51</SourceSysCode>" + " <SourceSysCode>S51</SourceSysCode>" +
" <TargetSysCode>S00</TargetSysCode>" + " <TargetSysCode>S00</TargetSysCode>" +
" <MsgDate>"+Func.formatDateTime(LocalDateTime.now())+"</MsgDate>" + " <MsgDate>" + Func.formatDateTime(LocalDateTime.now()) + "</MsgDate>" +
" </MessageHeader>" + " </MessageHeader>" +
" <RequestOption>" + " <RequestOption>" +
" <triggerData>0</triggerData>" + " <triggerData>0</triggerData>" +
@ -114,12 +131,11 @@ public class LisSystemCollector{
" <OUTHOSP_NO/>" + " <OUTHOSP_NO/>" +
" <INHOSP_INDEX_NO/>" + " <INHOSP_INDEX_NO/>" +
" <INHOSP_NO/>" + " <INHOSP_NO/>" +
" <EMPI_ID>"+basic.getEmpId()+"</EMPI_ID/>" + " <EMPI_ID>" + basic.getEmpId() + "</EMPI_ID/>" +
" <TEST_PAT_SOURCE_CODE/>" + " <TEST_PAT_SOURCE_CODE/>" +
" <MICROBE_TEST_FLAG>" + " <MICROBE_TEST_FLAG>" + microbeTestFlag + "</MICROBE_TEST_FLAG>" +
" </MICROBE_TEST_FLAG>" + " <BEGIN_DATETIME>" + beginDateTime + "</BEGIN_DATETIME>" +
" <BEGIN_DATETIME>"+beginDateTime+"</BEGIN_DATETIME>" + " <END_DATETIME>" + endDateTime + "</END_DATETIME>" +
" <END_DATETIME>"+endDateTime+"</END_DATETIME>" +
" </Msg>" + " </Msg>" +
" </Request>" + " </Request>" +
" </content>" + " </content>" +
@ -129,44 +145,45 @@ public class LisSystemCollector{
" <AS ID=\"\" linkField=\"\"/>" + " <AS ID=\"\" linkField=\"\"/>" +
" </GroupInfo>" + " </GroupInfo>" +
"</ESBEntry>"; "</ESBEntry>";
return new Object[]{param1}; return new Object[]{param1};
} }
private static class LisSystemCollectConverter{ private static class LisSystemCollectConverter {
/** /**
* *
*
* @param lisSystemCollectData * @param lisSystemCollectData
* @return * @return
*/ */
public static List<ReportFileInfoDTO> convert(String lisSystemCollectData) { public static List<ReportFileInfoDTO> convert(String lisSystemCollectData) {
XmlUtil xmlUtil = XmlUtil.of(lisSystemCollectData); XmlUtil xmlUtil = XmlUtil.of(lisSystemCollectData);
List<ReportFileInfoDTO> list= new ArrayList<>(); List<ReportFileInfoDTO> list = new ArrayList<>();
NodeList reportInfoNodeList = xmlUtil.getNodeList("/Response/MsgInfo/Msg/ReportInfo"); NodeList reportInfoNodeList = xmlUtil.getNodeList("/Response/MsgInfo/Msg/ReportInfo");
if(reportInfoNodeList!=null && reportInfoNodeList.getLength()>0){ if (reportInfoNodeList != null && reportInfoNodeList.getLength() > 0) {
int length = reportInfoNodeList.getLength(); int length = reportInfoNodeList.getLength();
for (int i = 0; i < length; i++) { for (int i = 0; i < length; i++) {
Node item = reportInfoNodeList.item(i); Node item = reportInfoNodeList.item(i);
NodeList childNodes = item.getChildNodes(); NodeList childNodes = item.getChildNodes();
int childNodesLength = childNodes.getLength(); int childNodesLength = childNodes.getLength();
String fileTitle=null; String fileTitle = null;
String serialNum=null; String serialNum = null;
String downUrl=null; String downUrl = null;
for (int j = 0; j < childNodesLength; j++) { for (int j = 0; j < childNodesLength; j++) {
Node childNodeItem = childNodes.item(j); Node childNodeItem = childNodes.item(j);
if ("TEST_CATEG_NAME".equals(childNodeItem.getNodeName())) { if ("TEST_CATEG_NAME".equals(childNodeItem.getNodeName())) {
fileTitle=childNodeItem.getTextContent(); fileTitle = childNodeItem.getTextContent();
} }
// if ("TEST_CATEG_NAME".equals(childNodeItem.getNodeName())) { // if ("TEST_CATEG_NAME".equals(childNodeItem.getNodeName())) {
// fileTitle=childNodeItem.getTextContent(); // fileTitle=childNodeItem.getTextContent();
// } // }
if ("SAMPLE_NO".equals(childNodeItem.getNodeName())) { if ("SAMPLE_NO".equals(childNodeItem.getNodeName())) {
serialNum=childNodeItem.getTextContent(); serialNum = childNodeItem.getTextContent();
} }
if ("REPORT_URL".equals(childNodeItem.getNodeName())) { if ("REPORT_URL".equals(childNodeItem.getNodeName())) {
downUrl=childNodeItem.getTextContent(); downUrl = childNodeItem.getTextContent();
} }
} }
@ -187,5 +204,4 @@ public class LisSystemCollector{
} }
} }

@ -1,12 +1,9 @@
package com.docus.server.collect.controller.test; package com.docus.server.collect.controller.test;
import com.docus.infrastructure.web.api.CommonResult;
import com.docus.server.collect.collector.LisSystemCollector; import com.docus.server.collect.collector.LisSystemCollector;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@ -21,9 +18,9 @@ public class TestCollectController {
@Autowired @Autowired
private LisSystemCollector lisSystemCollector; private LisSystemCollector lisSystemCollector;
@ApiOperation("采集测试 LIS 采集接口") // @ApiOperation("采集测试 LIS 采集接口")
@GetMapping("/lis") // @GetMapping("/lis")
public CommonResult<String> lisSystemCollect() { // public CommonResult<String> lisSystemCollect() {
return CommonResult.success(lisSystemCollector.collectData(null, null, null)); // return CommonResult.success(lisSystemCollector.collectData(null, null, null));
} // }
} }

Loading…
Cancel
Save