You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					210 lines
				
				9.7 KiB
			
		
		
			
		
	
	
					210 lines
				
				9.7 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								package com.ynxbd.common.dao.lis;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import com.alibaba.fastjson.JSONObject;
							 | 
						||
| 
								 | 
							
								import com.ynxbd.common.bean.lis.*;
							 | 
						||
| 
								 | 
							
								import com.ynxbd.common.helper.common.Base64Helper;
							 | 
						||
| 
								 | 
							
								import com.ynxbd.common.helper.common.DateHelper;
							 | 
						||
| 
								 | 
							
								import com.ynxbd.common.helper.common.JsonHelper;
							 | 
						||
| 
								 | 
							
								import com.ynxbd.common.helper.lis.RMLisHelper;
							 | 
						||
| 
								 | 
							
								import com.ynxbd.common.result.JsonResult;
							 | 
						||
| 
								 | 
							
								import com.ynxbd.common.result.Result;
							 | 
						||
| 
								 | 
							
								import com.ynxbd.common.result.ResultEnum;
							 | 
						||
| 
								 | 
							
								import com.ynxbd.wx.wxfactory.ReqParamHelper;
							 | 
						||
| 
								 | 
							
								import lombok.extern.slf4j.Slf4j;
							 | 
						||
| 
								 | 
							
								import org.apache.commons.lang3.ObjectUtils;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import java.util.ArrayList;
							 | 
						||
| 
								 | 
							
								import java.util.List;
							 | 
						||
| 
								 | 
							
								import java.util.stream.Collectors;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@Slf4j
							 | 
						||
| 
								 | 
							
								public class RMLisDao {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public static Result downLisReport(String queryType, String queryCode) {
							 | 
						||
| 
								 | 
							
								        if (ObjectUtils.isEmpty(queryCode)) {
							 | 
						||
| 
								 | 
							
								            return Result.error(ResultEnum.PARAM_IS_DEFECT);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        JsonResult jsonResult = RMLisHelper.getJsonResult("GetReportFile", params -> {
							 | 
						||
| 
								 | 
							
								            params.put("QueryType", (queryType == null || "".equals(queryType)) ? "1" : queryType);
							 | 
						||
| 
								 | 
							
								            params.put("QueryCode", queryCode);
							 | 
						||
| 
								 | 
							
								        });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if (!jsonResult.success()) {
							 | 
						||
| 
								 | 
							
								            return Result.error(jsonResult.getMessage());
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        List<String> files = jsonResult.getDataMapList(String.class, "Files", "File");
							 | 
						||
| 
								 | 
							
								        List<String> filePdfList = new ArrayList<>();
							 | 
						||
| 
								 | 
							
								        JSONObject jsonObj;
							 | 
						||
| 
								 | 
							
								        String file;
							 | 
						||
| 
								 | 
							
								        for (String fileJson : files) {
							 | 
						||
| 
								 | 
							
								            jsonObj = JsonHelper.parseObject(fileJson);
							 | 
						||
| 
								 | 
							
								            if (jsonObj != null) {
							 | 
						||
| 
								 | 
							
								                 file = Base64Helper.pdfBaseToImgBase(jsonObj.getString("FileContent"), 150);
							 | 
						||
| 
								 | 
							
								                if (file != null) {
							 | 
						||
| 
								 | 
							
								                    filePdfList.add(file);
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        return Result.success(filePdfList);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     *
							 | 
						||
| 
								 | 
							
								     * @param queryType 查询类别
							 | 
						||
| 
								 | 
							
								     * 1:pat_no 病人号
							 | 
						||
| 
								 | 
							
								     * 2:pat_cardno 就诊卡号
							 | 
						||
| 
								 | 
							
								     * 3:barcode 标本条码号
							 | 
						||
| 
								 | 
							
								     * 4:pat_idcardno + pat_name 身份证号+姓名 5:pat_idcardno 身份证号
							 | 
						||
| 
								 | 
							
								     * 6:pat_id 病人 ID
							 | 
						||
| 
								 | 
							
								     * @param queryCode 查询值
							 | 
						||
| 
								 | 
							
								     * @param queryEx1 查询值
							 | 
						||
| 
								 | 
							
								     * 2021.9.15 新增QueryType为4时, QueryEx1传入病人姓名且为必填参数
							 | 
						||
| 
								 | 
							
								     * @param dateBegin 开始时间
							 | 
						||
| 
								 | 
							
								     * @param dateEnd 结束时间
							 | 
						||
| 
								 | 
							
								     * @param withOrder 返回申请信息 1 表示同时返回申请信息 不传默认 0
							 | 
						||
| 
								 | 
							
								     * @return
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public static List<XBDLisReport> getReportList(String queryType,String queryCode, String dateBegin,String dateEnd,String withOrder){
							 | 
						||
| 
								 | 
							
								        JsonResult jsonResult = RMLisHelper.getJsonResult("GetReportList", params -> {
							 | 
						||
| 
								 | 
							
								            params.put("QueryType", (queryType == null || "".equals(queryType)) ? "1" : queryType);
							 | 
						||
| 
								 | 
							
								            params.put("QueryCode", queryCode);
							 | 
						||
| 
								 | 
							
								            params.put("DateBegin",dateBegin);
							 | 
						||
| 
								 | 
							
								            params.put("DateEnd",dateEnd);
							 | 
						||
| 
								 | 
							
								            params.put("WithOrder",withOrder);
							 | 
						||
| 
								 | 
							
								        });
							 | 
						||
| 
								 | 
							
								        if (!jsonResult.success()) {
							 | 
						||
| 
								 | 
							
								            log.error("[瑞美lis]报告单列表请求失败-queryCode={};queryType={}]",queryCode,queryType);
							 | 
						||
| 
								 | 
							
								            return null;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        List<RMLisReport> reportList = jsonResult.getDataMapList(RMLisReport.class, "Items", "Item");
							 | 
						||
| 
								 | 
							
								        //已审核报告单
							 | 
						||
| 
								 | 
							
								        reportList = reportList.stream().filter(p->p.getIsRechk()=="1").collect(Collectors.toList());
							 | 
						||
| 
								 | 
							
								        List<XBDLisReport> xbdReportList = new ArrayList<>();
							 | 
						||
| 
								 | 
							
								        for(RMLisReport report : reportList){
							 | 
						||
| 
								 | 
							
								            XBDLisReport xbdLisReport = new XBDLisReport();
							 | 
						||
| 
								 | 
							
								            xbdLisReport.setReqItemName(report.getOrderItems().get(0).getProjectName());
							 | 
						||
| 
								 | 
							
								            xbdLisReport.setReqDate(DateHelper.DateTimeToString(report.getOrderItems().get(0).getRequestTime()));
							 | 
						||
| 
								 | 
							
								            xbdLisReport.setEnReportId(ReqParamHelper.encode(report.getReportID()));
							 | 
						||
| 
								 | 
							
								            xbdLisReport.setReportType(report.getReportType());
							 | 
						||
| 
								 | 
							
								            xbdLisReport.setPatientType(report.getPatientKind());
							 | 
						||
| 
								 | 
							
								            xbdLisReport.setReportDate(DateHelper.DateTimeToString(report.getRechkDate()));
							 | 
						||
| 
								 | 
							
								            xbdLisReport.setReporter(report.getRechkUserName());
							 | 
						||
| 
								 | 
							
								            xbdLisReport.setTreatId(report.getPatientNo());
							 | 
						||
| 
								 | 
							
								            xbdLisReport.setSampleCode(report.getBarcode());
							 | 
						||
| 
								 | 
							
								            xbdLisReport.setPatientName(report.getPatientName());
							 | 
						||
| 
								 | 
							
								            xbdLisReport.setSex(report.getGender());
							 | 
						||
| 
								 | 
							
								            xbdLisReport.setAge(report.getAge());
							 | 
						||
| 
								 | 
							
								            xbdLisReport.setReqDeptName(report.getDeptName());
							 | 
						||
| 
								 | 
							
								            xbdLisReport.setBedNo(report.getBedNo());
							 | 
						||
| 
								 | 
							
								            xbdLisReport.setReqDoctName(report.getDoctorName());
							 | 
						||
| 
								 | 
							
								            xbdReportList.add(xbdLisReport);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        return xbdReportList;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public  static  List<XBDLisResult> getReportResult(String reportId){
							 | 
						||
| 
								 | 
							
								        JsonResult jsonResult = RMLisHelper.getJsonResult("GetReportResult", params -> {
							 | 
						||
| 
								 | 
							
								            params.put("ReportID",reportId);
							 | 
						||
| 
								 | 
							
								        });
							 | 
						||
| 
								 | 
							
								        if (!jsonResult.success()) {
							 | 
						||
| 
								 | 
							
								            log.error("[瑞美lis]普通报告单请求失败-reportId={}]",reportId);
							 | 
						||
| 
								 | 
							
								            return null;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        List<RMLisResult> resultList = jsonResult.getDataMapList(RMLisResult.class, "GeneralItems", "GeneralItem");
							 | 
						||
| 
								 | 
							
								        List<XBDLisResult> xbdLisResultList = new ArrayList<>();
							 | 
						||
| 
								 | 
							
								        for(RMLisResult result:resultList){
							 | 
						||
| 
								 | 
							
								            XBDLisResult xbdLisResult = new XBDLisResult();
							 | 
						||
| 
								 | 
							
								            xbdLisResult.setResult(result.getResult());
							 | 
						||
| 
								 | 
							
								            xbdLisResult.setReportItemCode(result.getItemCode());
							 | 
						||
| 
								 | 
							
								            xbdLisResult.setReportItemName(result.getItemName());
							 | 
						||
| 
								 | 
							
								            xbdLisResult.setUnit(result.getResultUnit());
							 | 
						||
| 
								 | 
							
								            xbdLisResult.setRange(result.getReferenceRange());
							 | 
						||
| 
								 | 
							
								            xbdLisResult.setUnusualFlag(result.getResultFlag());
							 | 
						||
| 
								 | 
							
								            xbdLisResultList.add(xbdLisResult);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        return xbdLisResultList;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public static List<XBDLisBactResult> getBactResult(String reportId){
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        JsonResult jsonResult = RMLisHelper.getJsonResult("GetReportResult", params -> {
							 | 
						||
| 
								 | 
							
								            params.put("ReportID",reportId);
							 | 
						||
| 
								 | 
							
								        });
							 | 
						||
| 
								 | 
							
								        if (!jsonResult.success()) {
							 | 
						||
| 
								 | 
							
								            log.error("[瑞美lis]细菌报告单请求失败-reportId={}]",reportId);
							 | 
						||
| 
								 | 
							
								            return null;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        List<RMLisBactResult> bactResultList = jsonResult.getDataMapList(RMLisBactResult.class, "BacteriaItems", "BacteriaItem");
							 | 
						||
| 
								 | 
							
								        List<RMLisAntbResult> antbResultList = jsonResult.getDataMapList(RMLisAntbResult.class, "MedicineItems", "MedicineItem");
							 | 
						||
| 
								 | 
							
								        List<XBDLisBactResult> xbdLisBactResultList = new ArrayList<>();
							 | 
						||
| 
								 | 
							
								        for(RMLisBactResult bactResult:bactResultList){
							 | 
						||
| 
								 | 
							
								            List<RMLisAntbResult> antbResult = antbResultList.stream().
							 | 
						||
| 
								 | 
							
								                    filter(p->p.getResultId().equals(bactResult.getResultId())).collect(Collectors.toList());
							 | 
						||
| 
								 | 
							
								            List<XBDLisAntbResult> xbdAntbResult = new ArrayList<>();
							 | 
						||
| 
								 | 
							
								            for (RMLisAntbResult antb:antbResult){
							 | 
						||
| 
								 | 
							
								                XBDLisAntbResult xbdLisAntbResult = new XBDLisAntbResult();
							 | 
						||
| 
								 | 
							
								                xbdLisAntbResult.setResult(antb.getMedResult());
							 | 
						||
| 
								 | 
							
								                xbdLisAntbResult.setAntbCode(antb.getMedCode());
							 | 
						||
| 
								 | 
							
								                xbdLisAntbResult.setAntbName(antb.getMedName());
							 | 
						||
| 
								 | 
							
								                xbdLisAntbResult.setMic(antb.getMicResult());
							 | 
						||
| 
								 | 
							
								                xbdAntbResult.add(xbdLisAntbResult);
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								            XBDLisBactResult xbdLisBactResult = new XBDLisBactResult();
							 | 
						||
| 
								 | 
							
								            xbdLisBactResult.setResultId(bactResult.getResultId());
							 | 
						||
| 
								 | 
							
								            xbdLisBactResult.setResult(bactResult.getBacteriaResult());
							 | 
						||
| 
								 | 
							
								            xbdLisBactResult.setBactName(bactResult.getBacteriaName());
							 | 
						||
| 
								 | 
							
								            xbdLisBactResult.setAntbResults(xbdAntbResult);
							 | 
						||
| 
								 | 
							
								            xbdLisBactResult.setComment4RM(bactResult.getExtraData1());
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        return xbdLisBactResultList;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public static void main(String[] args) throws Exception {
							 | 
						||
| 
								 | 
							
								//        System.out.println(new JSONArray().toJSONString());
							 | 
						||
| 
								 | 
							
								        String xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" +
							 | 
						||
| 
								 | 
							
								                "<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">\n" +
							 | 
						||
| 
								 | 
							
								                "\t<soap:Body>\n" +
							 | 
						||
| 
								 | 
							
								                "\t\t<UnifiedEntranceResponse xmlns=\"http://www.ruimei.com.cn\">\n" +
							 | 
						||
| 
								 | 
							
								                "\t\t\t<UnifiedEntranceResult><Response>  <ResultCode>1</ResultCode>  <ResultMessage>调用打印成功!</ResultMessage>  <Files>    <File>      <FileContent>JVBERi0xLjQNCiWio4</FileContent>    </File>  </Files></Response></UnifiedEntranceResult>\n" +
							 | 
						||
| 
								 | 
							
								                "\t\t</UnifiedEntranceResponse>\n" +
							 | 
						||
| 
								 | 
							
								                "\t</soap:Body>\n" +
							 | 
						||
| 
								 | 
							
								                "</soap:Envelope>\n";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        try {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            //解析响应消息,使用SAXReader对象
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//            unifiedEntranceResponse.element();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//            String text = unifiedEntranceResult.getText();
							 | 
						||
| 
								 | 
							
								//            System.out.println(text);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//            element.element("DATA").element("RECORD").element("CODE").getText();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//            Element root = document.getRootElement();
							 | 
						||
| 
								 | 
							
								//            Element element = root.element("soap:Envelope");
							 | 
						||
| 
								 | 
							
								//            Element envelope = root.element("Envelope");
							 | 
						||
| 
								 | 
							
								//            Element element = root.element("soap:Envelope");
							 | 
						||
| 
								 | 
							
								//            Element element1 = root.element("soap:Body");
							 | 
						||
| 
								 | 
							
								//            System.out.println(element1.getText());
							 | 
						||
| 
								 | 
							
								////            System.out.println(document.getText());
							 | 
						||
| 
								 | 
							
								////            System.out.println(document.getName());
							 | 
						||
| 
								 | 
							
								////            Element root = document.getRootElement(); // 获取根节点元素对象
							 | 
						||
| 
								 | 
							
								//            System.out.println(root.getText());
							 | 
						||
| 
								 | 
							
								        } catch (Exception e) {
							 | 
						||
| 
								 | 
							
								            e.printStackTrace();
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |