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.
209 lines
9.7 KiB
209 lines
9.7 KiB
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();
|
|
}
|
|
}
|
|
}
|
|
|