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 reportList = new HisReportDao().getPEISReportByPatient(name, idCardNo, begDate, endDate); List 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 reportList = new HisReportDao().getCheckByPatient(patientId, begDate, endDate); List 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 records = new HisReportDao().getTreatRecordList(patientId, begDate, endDate, patientType, reportType); if (records.size() > 0 && isLately != null && isLately) { List 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 reportList = new HisReportDao().getInspectByPatient(patientId); List 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 resultList = new ArrayList<>(); XBDLisReport xbdLisReport; List 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 patients = new PatientDao().selectListByOpenid(openid); // // List> reports = new ArrayList<>(); // HisReportDao hisReportDao = new HisReportDao(); // for (Patient patient : patients) { // List 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 patients = new PatientDao().selectListByOpenid(openid); // // List> reports = new ArrayList<>(); // HisReportDao hisReportDao = new HisReportDao(); // for (Patient patient : patients) { // List 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 patients = new PatientDao().selectListByOpenid(openid); // // List> reports = new ArrayList<>(); // HisReportDao hisReportDao = new HisReportDao(); // for (Patient patient : patients) { // List reportItem = hisReportDao.getInspectByPatient(patient.getPatientId()); // reports.add(reportItem); // } // return Result.success(reports); // } }