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.
		
		
		
		
			
				
					
					
						
							171 lines
						
					
					
						
							6.8 KiB
						
					
					
				
			
		
		
	
	
							171 lines
						
					
					
						
							6.8 KiB
						
					
					
				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<MZRecordBean> treatRecord(String patientId, String begDate, String endDate, String patientType, String reportType) {
 | 
						|
//        List<MZRecordBean> mzList = new ArrayList<>();
 | 
						|
//        Map<Object, Object> 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<CheckReport> getCheckByPatient(String patientId, String bedDate, String endDate) {
 | 
						|
        List<CheckReport> 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<PEIS> getPEISReportByPatient(String name, String idCardNo, String bedDate, String endDate) {
 | 
						|
        List<PEIS> 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<InspectionReport> getInspectByPatient(String patientId) {
 | 
						|
        List<InspectionReport> 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<InspectionReport> getInspectByTreatNum(String patientId, String zyNum, String mzNum) {
 | 
						|
        List<InspectionReport> 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<TreatRecord> getTreatRecordList(String patientId, String begDate, String endDate, String patientType, String reportType) {
 | 
						|
        List<TreatRecord> 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;
 | 
						|
    }
 | 
						|
}
 | 
						|
 |