package com.ynxbd.common.dao.his; import com.ynxbd.common.bean.enums.MerchantEnum; import com.ynxbd.common.helper.common.DateHelper; import com.ynxbd.common.his.HisConfig; import com.ynxbd.common.his.HisEnum; import com.ynxbd.common.his.HisFactory; import com.ynxbd.common.result.JsonResult; import org.apache.commons.lang3.ObjectUtils; import java.math.BigDecimal; import java.util.HashMap; import java.util.Map; /** * 住院接口 * * @Author wsq * @Date 2021/3/9 17:12 * @Copyright @ 2020 云南新八达科技有限公司 All rights reserved. */ public class HisInHospDao { /** * 获取医院列表 * * @return 医院列表 */ public JsonResult getHosList() { Map params = new HashMap<>(); return HisFactory.His().getJsonResult(HisEnum.AP_Query_Hospital, params); } /** * 查询预交金缴费记录 * * @param patientId 患者id * @return 预交金缴费记录 */ public JsonResult getPreMoneyList(String patientId) { return HisFactory.His().getJsonResult(HisEnum.AP_Query_Prepay, params -> { params.put("PatientID", patientId); }); } /** * 查询(今天)住院日费用汇总 * * @param patientId 患者id * @return 住院日费用汇总 */ public JsonResult getTodayInHospSumFee(String patientId) { return getInHospSumFee(patientId, DateHelper.getCurDate()); } /** * 查询住院日费用汇总 * * @param patientId 患者id * @param date 查询日期 * @return 住院日费用汇总 */ public JsonResult getInHospSumFee(String patientId, String date) { return HisFactory.His().getJsonResult(HisEnum.AP_Query_InpatientSummaryFee, params -> { params.put("PatientID", patientId); params.put("FeeDate", date == null ? "" : date); }); } /** * 查询住院费用清单 * * @param patientId 患者id * @return 住院费用清单 */ public JsonResult queryInPatientFee(String patientId, String date) { return HisFactory.His().getJsonResult(HisEnum.AP_Query_InpatientFee, params -> { params.put("PatientID", patientId); params.put("FeeDate", date == null ? "" : date); }); } /** * [住院记录]通过患者ID查询(出院后) * * @param patientId 患者id * @return 住院记录 */ public JsonResult queryOutPatientRecords(String openid, String patientId, String hisYBZF) { return HisFactory.His(HisConfig.hasDevMedOpenId(openid, HisEnum.Query_OutPatientRecords)).getJsonResult(HisEnum.Query_OutPatientRecords, params -> { params.put("PatientID", patientId); params.put("CallNo", HisConfig.WECHAT_CALL_NO); params.put("YDZF", ObjectUtils.isEmpty(hisYBZF) ? "" : hisYBZF); // [住院]医保 }); } /** * [住院]通过住院号查询费用明细(出院后) * * @param treatNum 住院号 * @return 费用 */ public JsonResult queryOutHospTreatFee(String treatNum) { return HisFactory.His().getJsonResult(HisEnum.Query_OutHospTreatFee, params -> { params.put("ZYNum", treatNum); params.put("CallNo", HisConfig.WECHAT_CALL_NO); }); } /** * [住院]预交金缴费 * * @param patientId 患者id * @return 预交金缴费记录 */ public JsonResult inHospPrepay(MerchantEnum merchantEnum, String patientId, String patientName, BigDecimal payMoney, String payDate, String payTime, String backTransNo, String tradeNo, String treatNum) { return HisFactory.His().getJsonResultByMer(HisEnum.Query_InHospPrepay, merchantEnum, params -> { params.put("PatientId", patientId); params.put("PatientName", patientName); params.put("ZYNum", treatNum); params.put("PayMoney", payMoney); params.put("PayDate", payDate); params.put("PayTime", payTime); params.put("TransNo", tradeNo); params.put("BankTransNo", backTransNo); params.put("PayWay", merchantEnum.HIS_PAY_WAY); params.put("PayDeviceID", "mobile"); }); } /** * 通过住院号查询患者信息(含预交金) * * @param treatNum 住院号 * @return 住院费用清单 */ public JsonResult getInHospByTreatNum(String treatNum) { return HisFactory.His().getJsonResult(HisEnum.Query_InHospByTreatNum, params -> { params.put("InpatientNum", treatNum); }); } /** * 通过患者ID查询在院患者信息 * * @param patientId 患者id * @return 住院费用清单 */ public JsonResult getInHospByPatientId(String patientId) { return HisFactory.His().getJsonResult(HisEnum.Query_InHospByPatientId, params -> { params.put("PatientId", patientId); }); } }