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.
		
		
		
		
			
				
					
					
						
							245 lines
						
					
					
						
							9.9 KiB
						
					
					
				
			
		
		
	
	
							245 lines
						
					
					
						
							9.9 KiB
						
					
					
				| package com.ynxbd.common.action;
 | |
| 
 | |
| import com.ynxbd.common.action.base.BaseAction;
 | |
| import com.ynxbd.common.bean.TreatRecord;
 | |
| import com.ynxbd.common.bean.lis.XBDLisReport;
 | |
| 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.dao.his.HisReportDao;
 | |
| import com.ynxbd.common.helper.common.DateHelper;
 | |
| 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.struts2.convention.annotation.Action;
 | |
| import org.apache.struts2.convention.annotation.Namespace;
 | |
| 
 | |
| import java.util.ArrayList;
 | |
| import java.util.Comparator;
 | |
| import java.util.List;
 | |
| 
 | |
| /**
 | |
|  * @Author wsq
 | |
|  * @Date 2020/8/15 12:35
 | |
|  * @Copyright @ 2020 云南新八达科技有限公司 All rights reserved.
 | |
|  */
 | |
| @Slf4j
 | |
| @Namespace("/report")
 | |
| public class ReportAction extends BaseAction {
 | |
| 
 | |
|     /**
 | |
|      * [体检报告]
 | |
|      */
 | |
|     @Action("getPEISByPatient")
 | |
|     public Result getPEISByPatient(String name, String idCardNo, String patientId, String begDate, String endDate) {
 | |
|         // http://localhost:8080/wx/report/getPEISByPatient.do?patientId=153671&idCardNo=533103198212184014&name=%E8%82%96%E7%81%BF&token=123
 | |
|         log.info("[体检报告]查询:patientId={}, idCardNo={}, name={}, begDate={}, endDate={}", patientId, idCardNo, name, begDate, endDate);
 | |
|         if (patientId == null || idCardNo == null || name == null || begDate == null || endDate == null) {
 | |
|             return Result.error(ResultEnum.PARAM_IS_DEFECT);
 | |
|         }
 | |
| 
 | |
|         List<PEIS> reportList = new HisReportDao().getPEISReportByPatient(name, idCardNo, begDate, endDate);
 | |
| 
 | |
|         List<PEIS> resultList = new ArrayList<>();
 | |
|         for (PEIS report : reportList) {
 | |
|             if (report.getExamDate() != null && DateHelper.inDateRange(begDate, endDate, report.getExamDate(), DateHelper.DateEnum.yyyy_MM_dd)) {
 | |
|                 resultList.add(report);
 | |
|             }
 | |
|         }
 | |
|         return Result.success(resultList);
 | |
|     }
 | |
| 
 | |
| 
 | |
|     /**
 | |
|      * [检查报告]
 | |
|      */
 | |
|     @Action("getCheckByPatient")
 | |
|     public Result getCheckByPatient(String begDate, String endDate, String patientId, String openid) {
 | |
|         patientId = getDecodeString(patientId);
 | |
|         // http://localhost:8080/wx/report/getCheckByPatient.do?patientId=153671&token=123
 | |
|         log.info("[检查报告]查询 patientId={}, begDate={}, endDate={}", patientId, begDate, endDate);
 | |
|         if (patientId == null || begDate == null || endDate == null) {
 | |
|             return Result.error(ResultEnum.PARAM_IS_DEFECT);
 | |
|         }
 | |
| 
 | |
|         List<CheckReport> reportList = new HisReportDao().getCheckByPatient(patientId, begDate, endDate);
 | |
| 
 | |
|         List<CheckReport> resultList = new ArrayList<>();
 | |
|         for (CheckReport report : reportList) {
 | |
|             if (report.getApplyDate() != null && DateHelper.inDateRange(begDate, endDate, report.getApplyDate(), DateHelper.DateEnum.yyyy_MM_dd)) {
 | |
|                 resultList.add(report);
 | |
|             }
 | |
|         }
 | |
|         return Result.success(resultList);
 | |
|     }
 | |
| 
 | |
| 
 | |
|     /**
 | |
|      * [就诊记录]查询
 | |
|      *
 | |
|      * @param begDate     开始日期
 | |
|      * @param endDate     结束日期
 | |
|      * @param patientId   患者id
 | |
|      * @param patientType 0:全部,1:门诊号,2:住院号
 | |
|      * @param reportType  0:全部,1:检查,2:检验,3:检查+检验
 | |
|      * @param isLately    是否只查询最近一条记录
 | |
|      */
 | |
|     @Action("getTreatRecordList")
 | |
|     public Result getTreatRecordList(String begDate, String endDate, String patientId, String patientType, String reportType, Boolean isLately) {
 | |
|         patientId = getDecodeString(patientId);
 | |
|         // http://localhost:8081/wx/report/getTreatRecordList.do?patientId=406212&begDate=201801-01&endDate=2020-08-12&patientType=0&reportType=2
 | |
|         if (patientId == null || begDate == null || endDate == null) {
 | |
|             return Result.error(ResultEnum.PARAM_IS_DEFECT);
 | |
|         }
 | |
| 
 | |
|         List<TreatRecord> records = new HisReportDao().getTreatRecordList(patientId, begDate, endDate, patientType, reportType);
 | |
| 
 | |
| 
 | |
|         if (records.size() > 0 && isLately != null && isLately) {
 | |
|             List<TreatRecord> resultList = new ArrayList<>();
 | |
| 
 | |
|             records.stream().max(Comparator.comparing(TreatRecord::getConsultDate)).ifPresent(resultList::add);
 | |
|             return Result.success(resultList);
 | |
|         }
 | |
| 
 | |
|         for (TreatRecord record : records) {
 | |
|             if (record.getTreatNum() != null) {
 | |
|                 record.setEnTreatNum(ReqParamHelper.encode(record.getTreatNum()));
 | |
|             }
 | |
|         }
 | |
|         return Result.success(records);
 | |
|     }
 | |
| 
 | |
| 
 | |
|     /**
 | |
|      * [患者]查询化验(检验)结果
 | |
|      */
 | |
|     @Action("getInspectByPatient")
 | |
|     public Result getInspectByPatient(String openid, String patientId, String begDate, String endDate) {
 | |
|         patientId = getDecodeString(patientId);
 | |
| 
 | |
|         // http://localhost:8080/wx/report/getInspectByPatient.do?patientId=153671&token=123
 | |
|         log.info("化验(检验)结果查询:patientId={}, begDate={}, endDate={}", patientId, begDate, endDate);
 | |
|         if (patientId == null || begDate == null || endDate == null) {
 | |
|             return Result.error(ResultEnum.PARAM_IS_DEFECT);
 | |
|         }
 | |
| 
 | |
|         List<InspectionReport> reportList = new HisReportDao().getInspectByPatient(patientId);
 | |
| 
 | |
|         List<InspectionReport> resultList = new ArrayList<>();
 | |
|         for (InspectionReport report : reportList) {
 | |
|             if (report.getApplyDate() != null && DateHelper.inDateRange(begDate, endDate, report.getApplyDate(), DateHelper.DateEnum.yyyy_MM_dd)) {
 | |
|                 resultList.add(report);
 | |
|             }
 | |
|         }
 | |
|         return Result.success(resultList);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * [门诊号]根据门诊号查询化验(检验)结果
 | |
|      */
 | |
|     @Action("getInspectByTreatNum")
 | |
|     public Result getInspectByTreatNum(String type, String treatNum, String patientId) {
 | |
|         treatNum = getDecodeString(treatNum);
 | |
|         patientId = getDecodeString(patientId);
 | |
|         // http://localhost:8080/wx/report/getInspectByTreatNum.do?patientId=153671&token=123
 | |
|         log.info("[化验(检验)]结果查询:patientId={}, type={}, treatNum={}", patientId, type, treatNum);
 | |
|         if (patientId == null || type == null || treatNum == null) {
 | |
|             return Result.error(ResultEnum.PARAM_IS_BLANK);
 | |
|         }
 | |
| 
 | |
|         String mzNum = null, zyNum = null;
 | |
|         if ("1".equals(type)) {
 | |
|             mzNum = treatNum;
 | |
|         } else {
 | |
|             zyNum = treatNum;
 | |
|         }
 | |
| 
 | |
|         ArrayList<XBDLisReport> resultList = new ArrayList<>();
 | |
|         XBDLisReport xbdLisReport;
 | |
|         List<InspectionReport> reports = new HisReportDao().getInspectByTreatNum(patientId, zyNum, mzNum);
 | |
|         for (InspectionReport report : reports) {
 | |
|             xbdLisReport = new XBDLisReport();
 | |
|             xbdLisReport.setReportName(report.getName());
 | |
|             xbdLisReport.setSpecimenName(report.getType());
 | |
|             xbdLisReport.setReportDate(report.getReportDate());
 | |
|             xbdLisReport.setReporter(report.getReportDoctName());
 | |
|             xbdLisReport.setItem(report.getItem());
 | |
|             xbdLisReport.setTreatId(report.getMzNum() != null ? report.getMzNum() : report.getZyNum());
 | |
|             xbdLisReport.setBedNo(report.getBedNum());
 | |
| 
 | |
|             resultList.add(xbdLisReport);
 | |
|         }
 | |
|         return Result.success(resultList);
 | |
|     }
 | |
| 
 | |
| //    /**
 | |
| //     * 根据openid查询检查报告
 | |
| //     */
 | |
| //    @Action("getCheckAll")
 | |
| //    public String getCheckAll() {
 | |
| //        String openid = getString("openid");
 | |
| //        log.info("根据openid查询检查报告 openid={}", openid);
 | |
| //        if (openid == null) {
 | |
| //            return Result.error(ResultEnum.PARAM_NOT_COMPLETE);
 | |
| //        }
 | |
| //
 | |
| //        List<Patient> patients = new PatientDao().selectListByOpenid(openid);
 | |
| //
 | |
| //        List<List<CheckReport>> reports = new ArrayList<>();
 | |
| //        HisReportDao hisReportDao = new HisReportDao();
 | |
| //        for (Patient patient : patients) {
 | |
| //            List<CheckReport> reportItem = hisReportDao.getCheckByPatient(patient);
 | |
| //            reports.add(reportItem);
 | |
| //        }
 | |
| //        return Result.success(reports);
 | |
| //    }
 | |
| //
 | |
| //    /**
 | |
| //     * 根据openid查询体检报告
 | |
| //     */
 | |
| //    @Action("getPEISReportAll")
 | |
| //    public String getPEISReportAll() {
 | |
| //        String openid = getString("openid");
 | |
| //        log.info("根据openid查询体检报告 openid={}", openid);
 | |
| //        if (openid == null) {
 | |
| //            return Result.error(ResultEnum.PARAM_NOT_COMPLETE);
 | |
| //        }
 | |
| //
 | |
| //        List<Patient> patients = new PatientDao().selectListByOpenid(openid);
 | |
| //
 | |
| //        List<List<PEIS>> reports = new ArrayList<>();
 | |
| //        HisReportDao hisReportDao = new HisReportDao();
 | |
| //        for (Patient patient : patients) {
 | |
| //            List<PEIS> reportItem = hisReportDao.getPEISReportByPatient(patient);
 | |
| //            reports.add(reportItem);
 | |
| //        }
 | |
| //
 | |
| //
 | |
| //        return Result.success(reports);
 | |
| //    }
 | |
| //
 | |
| //    /**
 | |
| //     * 根据openid查询检验结果
 | |
| //     */
 | |
| //    @Action("getInspectionAll")
 | |
| //    public String getInspectionAll() {
 | |
| //        String openid = getString("openid");
 | |
| //        log.info("根据openid查询检验结果,openid={}", openid);
 | |
| //        if (openid == null) {
 | |
| //            return Result.error(ResultEnum.PARAM_NOT_COMPLETE);
 | |
| //        }
 | |
| //
 | |
| //        List<Patient> patients = new PatientDao().selectListByOpenid(openid);
 | |
| //
 | |
| //        List<List<InspectionReport>> reports = new ArrayList<>();
 | |
| //        HisReportDao hisReportDao = new HisReportDao();
 | |
| //        for (Patient patient : patients) {
 | |
| //            List<InspectionReport> reportItem = hisReportDao.getInspectByPatient(patient.getPatientId());
 | |
| //            reports.add(reportItem);
 | |
| //        }
 | |
| //        return Result.success(reports);
 | |
| //    }
 | |
| 
 | |
| }
 | |
| 
 |