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.
		
		
		
		
			
				
					244 lines
				
				9.4 KiB
			
		
		
			
		
	
	
					244 lines
				
				9.4 KiB
			| 
											2 years ago
										 | package com.ynxbd.common.action;
 | ||
|  | 
 | ||
|  | import com.ynxbd.common.action.base.BaseAction;
 | ||
|  | import com.ynxbd.common.bean.in_hosp.*;
 | ||
|  | import com.ynxbd.common.dao.his.HisInHospDao;
 | ||
|  | import com.ynxbd.common.helper.common.DateHelper;
 | ||
|  | import com.ynxbd.common.result.JsonResult;
 | ||
|  | import com.ynxbd.common.result.Result;
 | ||
|  | import com.ynxbd.common.result.ResultEnum;
 | ||
|  | import lombok.extern.slf4j.Slf4j;
 | ||
|  | import org.apache.struts2.convention.annotation.Action;
 | ||
|  | import org.apache.struts2.convention.annotation.Namespace;
 | ||
|  | 
 | ||
|  | import java.math.BigDecimal;
 | ||
|  | import java.util.ArrayList;
 | ||
|  | import java.util.List;
 | ||
|  | 
 | ||
|  | /**
 | ||
|  |  * 住院接口
 | ||
|  |  *
 | ||
|  |  * @Author wsq
 | ||
|  |  * @Date 2021/2/26 12:50
 | ||
|  |  * @Copyright @ 2020 云南新八达科技有限公司 All rights reserved.
 | ||
|  |  */
 | ||
|  | 
 | ||
|  | @Slf4j
 | ||
|  | @Namespace("/inHosp")
 | ||
|  | public class InHospAction extends BaseAction {
 | ||
|  | 
 | ||
|  | 
 | ||
|  |     /**
 | ||
|  |      * [住院]预交金缴费记录查询
 | ||
|  |      *
 | ||
|  |      * @param begDate   开始日期
 | ||
|  |      * @param endDate   结束日期
 | ||
|  |      * @param patientId 患者id
 | ||
|  |      */
 | ||
|  |     @Action("getPreMoneyList")
 | ||
|  |     public Result getPreMoneyList(String begDate, String endDate, String patientId) {
 | ||
|  |         log.info("[住院]预交金缴费记录查询, patientId={}", patientId);
 | ||
|  |         if (patientId == null || begDate == null || endDate == null) {
 | ||
|  |             return Result.error(ResultEnum.PARAM_IS_DEFECT);
 | ||
|  |         }
 | ||
|  | 
 | ||
|  |         JsonResult resp = new HisInHospDao().getPreMoneyList(patientId);
 | ||
|  | 
 | ||
|  |         List<InHosp> resultList = new ArrayList<>();
 | ||
|  |         if (!resp.success()) {
 | ||
|  |             log.info("[住院]交金缴费记录查询失败信息:{}", resp.getMessage());
 | ||
|  |             return Result.success(resultList);
 | ||
|  |         }
 | ||
|  | 
 | ||
|  |         List<InHosp> list = resp.getDataMapList(InHosp.class, "Item");
 | ||
|  |         String prepayDate;
 | ||
|  |         for (InHosp item : list) {
 | ||
|  |             prepayDate = item.getPrepayDate();
 | ||
|  |             if (prepayDate != null) {
 | ||
|  |                 prepayDate = DateHelper.dateFormatShort(prepayDate);
 | ||
|  |                 if (prepayDate != null && DateHelper.inDateRange(begDate, endDate, prepayDate, DateHelper.DateEnum.yyyy_MM_dd)) {
 | ||
|  |                     resultList.add(item);
 | ||
|  |                 }
 | ||
|  |             }
 | ||
|  |         }
 | ||
|  |         return Result.success(resultList);
 | ||
|  |     }
 | ||
|  | 
 | ||
|  |     /**
 | ||
|  |      * [住院]查询住院日费用汇总
 | ||
|  |      *
 | ||
|  |      * @param date      查询日期(空为查询所有)
 | ||
|  |      * @param patientId 患者id
 | ||
|  |      */
 | ||
|  |     @Action("getInHospSumFee")
 | ||
|  |     public Result getInHospSumFee(String date, String patientId) {
 | ||
|  |         log.info("[住院]查询住院日费用汇总 patientId={}, date={}", patientId, date);
 | ||
|  |         if (patientId == null) {
 | ||
|  |             return Result.error(ResultEnum.PARAM_IS_DEFECT);
 | ||
|  |         }
 | ||
|  | 
 | ||
|  |         JsonResult resp = new HisInHospDao().getInHospSumFee(patientId, date);
 | ||
|  |         if (!resp.success()) {
 | ||
|  |             return Result.error(resp.getMessage());
 | ||
|  |         }
 | ||
|  | 
 | ||
|  |         InHospSummaryFee inHospSummaryFee = new InHospSummaryFee();
 | ||
|  |         List<InHospSummaryFeeItem> items = resp.getDataMapList(InHospSummaryFeeItem.class, "Item");
 | ||
|  |         inHospSummaryFee.setItems(items);
 | ||
|  |         inHospSummaryFee.setPatientId(resp.getDataMapString("PatientId"));
 | ||
|  |         inHospSummaryFee.setPatientName(resp.getDataMapString("PatientName"));
 | ||
|  |         inHospSummaryFee.setTreatNum(resp.getDataMapString("ZYNum"));
 | ||
|  |         inHospSummaryFee.setSex(resp.getDataMapString("Sex"));
 | ||
|  |         inHospSummaryFee.setStayDeptName(resp.getDataMapString("StayDeptName"));
 | ||
|  |         inHospSummaryFee.setAdmissionDate(resp.getDataMapString("AdmissionDate"));
 | ||
|  |         inHospSummaryFee.setDischargeDate(resp.getDataMapString("DischargeDate"));
 | ||
|  |         inHospSummaryFee.setLengthOfStay(resp.getDataMapString("LengthOfStay"));
 | ||
|  |         inHospSummaryFee.setSummaryFee(resp.getDataMapString("SummaryFee"));
 | ||
|  |         return Result.success(inHospSummaryFee);
 | ||
|  |     }
 | ||
|  | 
 | ||
|  |     /**
 | ||
|  |      * [住院]查询住院费用清单
 | ||
|  |      *
 | ||
|  |      * @param date      查询日期(空为查询所有)
 | ||
|  |      * @param patientId 患者id
 | ||
|  |      */
 | ||
|  |     @Action("getInHospFee")
 | ||
|  |     public Result getInHospFee(String date, String patientId) {
 | ||
|  |         log.info("[住院]查询住院费用清单 patientId={}, date={}", patientId, date);
 | ||
|  |         if (patientId == null) {
 | ||
|  |             return Result.error(ResultEnum.PARAM_IS_DEFECT);
 | ||
|  |         }
 | ||
|  | 
 | ||
|  |         JsonResult resp = new HisInHospDao().getInHospFee(patientId, date);
 | ||
|  |         if (!resp.success()) {
 | ||
|  |             return Result.error(resp.getMessage());
 | ||
|  |         }
 | ||
|  | 
 | ||
|  |         InHospFee inHospFee = new InHospFee();
 | ||
|  |         List<InHospFeeItem> items = resp.getDataMapList(InHospFeeItem.class, "Item");
 | ||
|  |         items.forEach(item -> {
 | ||
|  |             BigDecimal price = item.getPrice();
 | ||
|  |             Integer count = item.getCount();
 | ||
|  |             if (price != null && count != null) {
 | ||
|  |                 item.setPayMoney(price.multiply(new BigDecimal(count)));
 | ||
|  |             }
 | ||
|  |         });
 | ||
|  | 
 | ||
|  |         inHospFee.setItems(items);
 | ||
|  |         inHospFee.setPatientName(resp.getDataMapString("PatientName"));
 | ||
|  |         inHospFee.setAdmissionDate(resp.getDataMapString("AdmissionDate"));
 | ||
|  |         inHospFee.setAdmissionDeptName(resp.getDataMapString("AdmissionDeptName"));
 | ||
|  |         inHospFee.setStayDeptName(resp.getDataMapString("StayDeptName"));
 | ||
|  |         inHospFee.setAttendingPhysician(resp.getDataMapString("setAttendingPhysician"));
 | ||
|  |         inHospFee.setLengthOfStay(resp.getDataMapString("LengthOfStay"));
 | ||
|  |         inHospFee.setTotalHospitalization(resp.getDataMapBigDecimal("TotalHospitalization"));
 | ||
|  | 
 | ||
|  |         return Result.success(inHospFee);
 | ||
|  |     }
 | ||
|  | 
 | ||
|  | 
 | ||
|  |     /**
 | ||
|  |      * [住院]通过住院号查询患者信息(含预交金)
 | ||
|  |      *
 | ||
|  |      * @param treatNum 住院号
 | ||
|  |      */
 | ||
|  |     @Action("getInHospByTreatNum")
 | ||
|  |     public Result getInHospByTreatNum(String treatNum) {
 | ||
|  |         log.info("[住院]通过住院号查询患者信息(含预交金) treatNum={}", treatNum);
 | ||
|  |         if (treatNum == null) {
 | ||
|  |             return Result.error(ResultEnum.PARAM_IS_DEFECT);
 | ||
|  |         }
 | ||
|  | 
 | ||
|  |         JsonResult resp = new HisInHospDao().getInHospByTreatNum(treatNum);
 | ||
|  |         if (!resp.success()) {
 | ||
|  |             return Result.error(resp.getMessage());
 | ||
|  |         }
 | ||
|  | 
 | ||
|  |         InHosp inHosp = resp.dataMapToBean(InHosp.class);
 | ||
|  |         treatNum = resp.getDataMapString("InPatientNum");
 | ||
|  |         inHosp.setTreatNum(treatNum);
 | ||
|  | 
 | ||
|  |         return Result.success(inHosp);
 | ||
|  |     }
 | ||
|  | 
 | ||
|  | 
 | ||
|  |     /**
 | ||
|  |      * [住院]通过患者ID查询在院患者信息
 | ||
|  |      *
 | ||
|  |      * @param patientId   患者id
 | ||
|  |      * @param begDate     开始日期
 | ||
|  |      * @param endDate     结束日期
 | ||
|  |      * @param inHospState { 0 | null 查询所有;1:只查询在院记录; }
 | ||
|  |      */
 | ||
|  |     @Action("getInHospByPatientId")
 | ||
|  |     public Result getInHospByPatientId(String patientId, String begDate, String endDate, String inHospState) {
 | ||
|  |         log.info("[住院]通过患者ID查询在院患者信息 patientId={}, endDate={}, endDate={}", patientId, begDate, endDate);
 | ||
|  |         if (patientId == null || begDate == null || endDate == null) {
 | ||
|  |             return Result.error(ResultEnum.PARAM_IS_DEFECT);
 | ||
|  |         }
 | ||
|  | 
 | ||
|  |         JsonResult resp = new HisInHospDao().getInHospByPatientId(patientId);
 | ||
|  |         if (!resp.success()) {
 | ||
|  |             return Result.error(resp.getMessage());
 | ||
|  |         }
 | ||
|  | 
 | ||
|  |         InHosp inHosp = resp.dataMapToBean(InHosp.class, "InPatientInfo");
 | ||
|  |         if (inHosp == null) {
 | ||
|  |             return Result.success(new InHosp());
 | ||
|  |         }
 | ||
|  |         List<InHosp> records = resp.getDataMapList(InHosp.class, "InPatientInfo", "Items", "Item");
 | ||
|  | 
 | ||
|  |         List<InHosp> resultList = new ArrayList<>();
 | ||
|  |         String inDate;
 | ||
|  |         for (InHosp item : records) {
 | ||
|  |             if ("1".equals(inHospState)) { // 只查询在院记录
 | ||
|  |                 if (item.getOutDate() != null) { // 已出院
 | ||
|  |                     continue;
 | ||
|  |                 }
 | ||
|  |             }
 | ||
|  |             inDate = item.getInDate();
 | ||
|  |             if (inDate != null) {
 | ||
|  |                 inDate = DateHelper.dateFormatShort(inDate);
 | ||
|  |                 if (inDate != null && DateHelper.inDateRange(begDate, endDate, inDate, DateHelper.DateEnum.yyyy_MM_dd)) {
 | ||
|  |                     item.setTreatNum(item.getInPatientNum());
 | ||
|  |                     resultList.add(item);
 | ||
|  |                 }
 | ||
|  |             }
 | ||
|  |         }
 | ||
|  |         inHosp.setRecords(resultList);
 | ||
|  |         return Result.success(inHosp);
 | ||
|  |     }
 | ||
|  | 
 | ||
|  |     /**
 | ||
|  |      * [住院]通过患者ID查询患者所有住院记录
 | ||
|  |      * @param patientId 患者Id
 | ||
|  |      * @return 住院记录
 | ||
|  |      */
 | ||
|  |     @Action("getHospListByPatientId")
 | ||
|  |     public Result getHospListByPatientId(String patientId) {
 | ||
|  |         log.info("[住院]通过患者ID查询患者所有住院记录, patientId-{}",patientId);
 | ||
|  |         if(patientId==null)
 | ||
|  |             return Result.error(ResultEnum.PARAM_IS_DEFECT);
 | ||
|  |         JsonResult resp = new HisInHospDao().getAllHospList(patientId);
 | ||
|  |         List<InHospitalList> inHospitalList = resp.getDataMapList(InHospitalList.class, "Items","Item");
 | ||
|  |         return Result.success(inHospitalList);
 | ||
|  |     }
 | ||
|  | 
 | ||
|  |     /**
 | ||
|  |      * [住院]通过住院号查询所有费用明细
 | ||
|  |      * @param treatNum 住院号
 | ||
|  |      * @return 费用明细
 | ||
|  |      */
 | ||
|  |     @Action("getAllFeeByTreat")
 | ||
|  |     public Result getAllFeeByTreat(String treatNum){
 | ||
|  |         log.info("[住院]通过住院号查询所有费用明细, treatNum-{}",treatNum);
 | ||
|  |         if(treatNum==null)
 | ||
|  |             return Result.error(ResultEnum.PARAM_IS_DEFECT);
 | ||
|  |         JsonResult resp = new HisInHospDao().getAllFee(treatNum);
 | ||
|  |         List<InHospAllFee> inHospAllFee = resp.getDataMapList(InHospAllFee.class, "Items","Item");
 | ||
|  |         return Result.success(inHospAllFee);
 | ||
|  |     }
 | ||
|  | 
 | ||
|  | }
 |