package com.ynxbd.common.dao.his; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.ynxbd.common.bean.TreatRecord; import com.ynxbd.common.bean.report.CheckReport; import com.ynxbd.common.bean.report.InspectionReport; import com.ynxbd.common.bean.report.PEIS; import com.ynxbd.common.helper.his.HisEnum; import com.ynxbd.common.helper.his.HisHelper; import com.ynxbd.common.result.JsonResult; import lombok.extern.slf4j.Slf4j; import java.util.ArrayList; import java.util.List; /** * His报告调用 * * @Author wsq * @Date 2020/8/24 10:51 * @Copyright @ 2020 云南新八达科技有限公司 All rights reserved. */ @Slf4j public class HisReportDao { // /** // * 查询就诊记录 // * // * @return 就诊记录 // */ // public List treatRecord(String patientId, String begDate, String endDate, String patientType, String reportType) { // List mzList = new ArrayList<>(); // Map params = new HashMap<>(); // params.put("TransactionCode", "1004"); // params.put("PatientId", patientId); // params.put("BegDate", begDate); // params.put("EndDate", endDate); // params.put("InOutState", patientType == null ? "0" : patientType); // ,1:门诊号,2:住院号,3:全部 // params.put("CheckOrInspection", reportType == null ? "0" : reportType); // 0:全部;1:检查;2:检验;3:检查+检验 // // HisTool tool = new HisTool("UniversalInterface", params); // // String xml = tool.getRespos(); // HisResult hisResult = HisResult.xmlToBean(xml); // // // WsResult{ResponseCode=0, ResponseMessage='成功', TransactionCode='1004', DataMap={Records=[{"Record":[{"InOutState":"1","ConsultDate":"2020-08-12 10:29:54","DeptCode":"1201","RegisterDate":"2020-08-12 10:29:54","DeptName":"口腔科","DoctName":"李加济","MZNum":"1252050","DoctCode":"0441"},{"InOutState":"1","ConsultDate":"2020-07-22 11:26:17","DeptCode":"1201","RegisterDate":"2020-07-22 11:26:17","DeptName":"口腔科","DoctName":"李加济","MZNum":"1234481","DoctCode":"0441"}]}]}} // if (hisResult.getResponseCode() == 0) { // 0成功 -1异常 // mzList = hisResult.getDataMapList(MZRecordBean.class, "Records", "Record"); // } // return mzList; // } /** * 根据患者id查询检查报告 * * @param patientId 患者id * @param bedDate 开始时间 * @param endDate 结束时间 */ public List getCheckByPatient(String patientId, String bedDate, String endDate) { List reports = new ArrayList<>(); JsonResult jsonResult = HisHelper.getJsonResult(HisEnum.AP_Query_CheckApplication, params -> { params.put("PatientID", patientId); }); if (jsonResult.success()) { reports = jsonResult.getDataMapList(CheckReport.class, "Report"); } return reports; } /** * [体检报告]查询 * * @param name 患者姓名 * @param idCardNo 身份证号码 * @return list */ public List getPEISReportByPatient(String name, String idCardNo, String bedDate, String endDate) { List reports = new ArrayList<>(); JsonResult jsonResult = HisHelper.getJsonResult(HisEnum.AP_Query_PEISReport, params -> { params.put("Name", name); params.put("IdCardNo", idCardNo); }); if (jsonResult.success()) { reports = jsonResult.getDataMapList(PEIS.class, "Enrollment"); } return reports; } /** * 根据患者查询化验(检验) * * @param patientId 患者 * @return 报告集合 */ public List getInspectByPatient(String patientId) { List reports = new ArrayList<>(); JsonResult jsonResult = HisHelper.getJsonResult(HisEnum.AP_Query_InspectionApplication, params -> { params.put("PatientID", patientId); }); if (jsonResult.success()) { reports = jsonResult.getDataMapList(InspectionReport.class, "Report"); } return reports; } /** * 根据患者查询化验(检验)报告 * * @param patientId 患者 * @return 报告集合 */ public List getInspectByTreatNum(String patientId, String zyNum, String mzNum) { List reportList = new ArrayList<>(); JsonResult jsonResult = HisHelper.getJsonResult(HisEnum.AP_Query_InspectionApplication, params -> { params.put("PatientID", patientId); params.put("ZYNum", zyNum == null ? "" : zyNum); params.put("MZNum", mzNum == null ? "" : mzNum); }); if (jsonResult.success()) { reportList = jsonResult.getDataMapList(InspectionReport.class, "Report"); } return reportList; } /** * 查询就诊记录 * * @return 就诊记录 */ public List getTreatRecordList(String patientId, String begDate, String endDate, String patientType, String reportType) { List resultList = new ArrayList<>(); JsonResult jsonResult = HisHelper.getJsonResult(HisEnum.Query_TreatRecords, params -> { params.put("PatientId", patientId); params.put("BegDate", begDate); params.put("EndDate", endDate); params.put("InOutState", patientType == null ? "0" : patientType); // 0:全部; 1:门诊号; 2:住院号 params.put("CheckOrInspection", reportType == null ? "0" : reportType); // 0:全部; 1:检查; 2:检验; 3:检查+检验 }); if (jsonResult.success()) { // 0成功 -1异常 JSONArray jsonArray = jsonResult.getJsonArray("Records", "Record"); TreatRecord item; JSONObject nodeItem; for (int i = 0; i < jsonArray.size(); i++) { nodeItem = jsonArray.getJSONObject(i); item = new TreatRecord(); item.setInOutState(nodeItem.getString("InOutState")); item.setTreatNum(nodeItem.getString("MZNum")); item.setDeptCode(nodeItem.getString("DeptCode")); // 职称 item.setDeptName(nodeItem.getString("DeptName")); // item.setDoctCode(nodeItem.getString("DoctCode")); // item.setDoctName(nodeItem.getString("DoctName")); // item.setRegisterDate(nodeItem.getString("RegisterDate")); // 描述 item.setConsultDate(nodeItem.getString("ConsultDate")); // 描述 resultList.add(item); } } return resultList; } }