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.
		
		
		
		
			
				
					189 lines
				
				7.3 KiB
			
		
		
			
		
	
	
					189 lines
				
				7.3 KiB
			| 
								 
											2 years ago
										 
									 | 
							
								package com.ynxbd.common.action;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import com.alibaba.fastjson.JSONObject;
							 | 
						||
| 
								 | 
							
								import com.ynxbd.common.action.base.BaseAction;
							 | 
						||
| 
								 | 
							
								import com.ynxbd.common.action.pay.PEnum;
							 | 
						||
| 
								 | 
							
								import com.ynxbd.common.bean.enums.MerchantEnum;
							 | 
						||
| 
								 | 
							
								import com.ynxbd.common.bean.pay.PayCasebook;
							 | 
						||
| 
								 | 
							
								import com.ynxbd.common.bean.xbd.MRHistory;
							 | 
						||
| 
								 | 
							
								import com.ynxbd.common.bean.xbd.MedicalRecord;
							 | 
						||
| 
								 | 
							
								import com.ynxbd.common.dao.CasebookDao;
							 | 
						||
| 
								 | 
							
								import com.ynxbd.common.helper.common.CodeHelper;
							 | 
						||
| 
								 | 
							
								import com.ynxbd.common.helper.common.ImageHelper;
							 | 
						||
| 
								 | 
							
								import com.ynxbd.common.helper.common.JsonHelper;
							 | 
						||
| 
								 | 
							
								import com.ynxbd.common.helper.xbd.XBDHttpHelper;
							 | 
						||
| 
								 | 
							
								import com.ynxbd.common.helper.xbd.XBDEnum;
							 | 
						||
| 
								 | 
							
								import com.ynxbd.common.helper.xbd.XBDHelper;
							 | 
						||
| 
								 | 
							
								import com.ynxbd.common.result.Result;
							 | 
						||
| 
								 | 
							
								import com.ynxbd.common.result.ResultEnum;
							 | 
						||
| 
								 | 
							
								import com.ynxbd.common.service.CasebookService;
							 | 
						||
| 
								 | 
							
								import com.ynxbd.common.service.PayService;
							 | 
						||
| 
								 | 
							
								import lombok.extern.slf4j.Slf4j;
							 | 
						||
| 
								 | 
							
								import org.apache.struts2.convention.annotation.Action;
							 | 
						||
| 
								 | 
							
								import org.apache.struts2.convention.annotation.Namespace;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @author 李进才
							 | 
						||
| 
								 | 
							
								 * @ClassName XBDAction
							 | 
						||
| 
								 | 
							
								 * @Description description
							 | 
						||
| 
								 | 
							
								 * @date 2023/3/30 16:50
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@Slf4j
							 | 
						||
| 
								 | 
							
								@Namespace("/xbd")
							 | 
						||
| 
								 | 
							
								public class XBDAction extends BaseAction {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * 获取智能云胶片的地址
							 | 
						||
| 
								 | 
							
								     * @param info patientId
							 | 
						||
| 
								 | 
							
								     * @return 路径
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    @Action("cloudFilm")
							 | 
						||
| 
								 | 
							
								    public Result cloudFilm (String info){
							 | 
						||
| 
								 | 
							
								        return Result.success(XBDHelper.outTeamDao.getCloudFilmPath(info));
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * 获取该病人已归档可以翻拍的病历
							 | 
						||
| 
								 | 
							
								     * @param patientId 病人id
							 | 
						||
| 
								 | 
							
								     * @return 可以翻拍的病历列表
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    @Action("getMedicalRecordList")
							 | 
						||
| 
								 | 
							
								    public Result getMedicalRecordList(String patientId){
							 | 
						||
| 
								 | 
							
								        String jsonString = XBDHttpHelper.ExecMethodGet(XBDEnum.BLSM_Appointment_GetBA.Name,params->{
							 | 
						||
| 
								 | 
							
								            params.put("patientID",patientId);
							 | 
						||
| 
								 | 
							
								            params.put("flagFP",0);
							 | 
						||
| 
								 | 
							
								            params.put("flagSH",1);
							 | 
						||
| 
								 | 
							
								        });
							 | 
						||
| 
								 | 
							
								        return Result.success(JsonHelper.parseArray(jsonString, MedicalRecord.class));
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * 获取该病人需要翻拍病历干啥的列表(用途)->直接绑定翻拍的病历类型
							 | 
						||
| 
								 | 
							
								     * @return 用途列表
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    @Action("getMRTemplateList")
							 | 
						||
| 
								 | 
							
								    public Result getMRTemplateList(){
							 | 
						||
| 
								 | 
							
								        String jsonString  = XBDHttpHelper.ExecMethodGet(XBDEnum.BLSM_Appointment_GetTemplate.Name);
							 | 
						||
| 
								 | 
							
								        return Result.success(JsonHelper.parseArray(jsonString));
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * 新增预约
							 | 
						||
| 
								 | 
							
								     * @param zyNum 住院号
							 | 
						||
| 
								 | 
							
								     * @param applyName 申请人姓名
							 | 
						||
| 
								 | 
							
								     * @param useToNo 模版ID
							 | 
						||
| 
								 | 
							
								     * @param useToName 模版名称
							 | 
						||
| 
								 | 
							
								     * @param getWay 0:自提 1:邮寄
							 | 
						||
| 
								 | 
							
								     * @param address 地址
							 | 
						||
| 
								 | 
							
								     * @param phone 联系电话
							 | 
						||
| 
								 | 
							
								     * @param ptImg1 身份证正面
							 | 
						||
| 
								 | 
							
								     * @param ptImg2 身份证反面
							 | 
						||
| 
								 | 
							
								     * @param applyImg 住院证明照片
							 | 
						||
| 
								 | 
							
								     * @return 成功行数
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    @Action("addMRReserve")
							 | 
						||
| 
								 | 
							
								    public Result addMRReserve(String openId,String patientId, String zyNum, String applyName, String useToNo, String useToName, int getWay, String address, String phone, String ptImg1, String ptImg2, String applyImg) {
							 | 
						||
| 
								 | 
							
								        try{
							 | 
						||
| 
								 | 
							
								            log.info("[病历复印]patientId-{},zyNum-{},applyName-{},useToNo-{},useToName-{},getWay-{},address-{},phone-{}",patientId,zyNum,applyName,useToNo,useToName,getWay,address,phone);
							 | 
						||
| 
								 | 
							
								            String jsonString = XBDHttpHelper.ExecMethodPost(XBDEnum.BLSM_Appointment_SetAppointment.Name,params -> {
							 | 
						||
| 
								 | 
							
								                params.put("ZYNum", zyNum);
							 | 
						||
| 
								 | 
							
								                params.put("ApplyName", applyName);
							 | 
						||
| 
								 | 
							
								                params.put("UseToNo", useToNo);
							 | 
						||
| 
								 | 
							
								                params.put("UseToName", useToName);
							 | 
						||
| 
								 | 
							
								                params.put("GetWay", getWay);
							 | 
						||
| 
								 | 
							
								                params.put("Address", address);
							 | 
						||
| 
								 | 
							
								                params.put("Phone", phone);
							 | 
						||
| 
								 | 
							
								                params.put("ptImg1", ptImg1);
							 | 
						||
| 
								 | 
							
								                params.put("ptImg2", ptImg2);
							 | 
						||
| 
								 | 
							
								                params.put("applyImg", applyImg);
							 | 
						||
| 
								 | 
							
								            });
							 | 
						||
| 
								 | 
							
								            PayCasebook payCasebook = new PayCasebook();
							 | 
						||
| 
								 | 
							
								            payCasebook.setZyNum(zyNum);
							 | 
						||
| 
								 | 
							
								            payCasebook.setApplyName(applyName);
							 | 
						||
| 
								 | 
							
								            payCasebook.setUseToNo(useToNo);
							 | 
						||
| 
								 | 
							
								            payCasebook.setUseToName(useToName);
							 | 
						||
| 
								 | 
							
								            payCasebook.setGetWay(getWay);
							 | 
						||
| 
								 | 
							
								            payCasebook.setAddress(address);
							 | 
						||
| 
								 | 
							
								            payCasebook.setPhone(phone);
							 | 
						||
| 
								 | 
							
								            if(!new CasebookService().addApply(payCasebook,openId,patientId)){
							 | 
						||
| 
								 | 
							
								                log.info("[病历复印]下单信息存储失败 patientId={},openId-{},patientId-{}", patientId,openId,patientId);
							 | 
						||
| 
								 | 
							
								                return Result.error(ResultEnum.SPECIFIED_QUESTIONED_USER_NOT_EXIST);
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								            return Result.success(JsonHelper.parseObject(jsonString));
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        catch (Exception e) {
							 | 
						||
| 
								 | 
							
								            log.error("[病历复印申请]预约失败,error-{}",e.toString());
							 | 
						||
| 
								 | 
							
								            return Result.error(ResultEnum.ERROR);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * 获取该病人的病历翻拍历史
							 | 
						||
| 
								 | 
							
								     * @param patientId 病人Id
							 | 
						||
| 
								 | 
							
								     * @return 历史记录
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    @Action("getMRHistory")
							 | 
						||
| 
								 | 
							
								    public Result getMRHistory(String patientId){
							 | 
						||
| 
								 | 
							
								        String jsonString = XBDHttpHelper.ExecMethodGet(XBDEnum.BLSM_Appointment_GetHistoryAppointment.Name,params->{
							 | 
						||
| 
								 | 
							
								            params.put("patientID",patientId);
							 | 
						||
| 
								 | 
							
								            params.put("BorrowNo",-1);
							 | 
						||
| 
								 | 
							
								        });
							 | 
						||
| 
								 | 
							
								        return  Result.success(JsonHelper.parseArray(jsonString, MRHistory.class));
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * 病案复印唤起支付
							 | 
						||
| 
								 | 
							
								     * @param payCode wx:微信
							 | 
						||
| 
								 | 
							
								     * @param openid 患者openId
							 | 
						||
| 
								 | 
							
								     * @param patientId 患者patientId
							 | 
						||
| 
								 | 
							
								     * @param treatNum 住院号
							 | 
						||
| 
								 | 
							
								     * @param totalFee 总费用
							 | 
						||
| 
								 | 
							
								     * @param applyId 申请单Id
							 | 
						||
| 
								 | 
							
								     * @return 支付回调参数
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    @Action("caseBookPay")
							 | 
						||
| 
								 | 
							
								    public Result caseBookPay( String payCode, String openid, String patientId, String treatNum, String totalFee,String applyId){
							 | 
						||
| 
								 | 
							
								        log.info("[病案复印] 唤起支付, payCode-{},openid-{},patientId-{},treatNum-{},totalFee-{}",payCode,openid,patientId,treatNum,totalFee);
							 | 
						||
| 
								 | 
							
								        MerchantEnum merchantEnum = MerchantEnum.getMerchantEnumByCode(payCode);
							 | 
						||
| 
								 | 
							
								        if (merchantEnum == null) { // 支付方式异常
							 | 
						||
| 
								 | 
							
								            return Result.error(ResultEnum.PAY_TYPE_ERROR);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        String ip = request.getRemoteAddr();
							 | 
						||
| 
								 | 
							
								        return new CasebookService().placeOrder(merchantEnum,ip,openid,patientId,treatNum,totalFee,applyId);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//    /**
							 | 
						||
| 
								 | 
							
								//     * 病人修改病历的地址
							 | 
						||
| 
								 | 
							
								//     * @param id 申请单号
							 | 
						||
| 
								 | 
							
								//     * @param getWay 收货方式(0.自提 1.邮寄 2.电子版)
							 | 
						||
| 
								 | 
							
								//     * @param address 地址
							 | 
						||
| 
								 | 
							
								//     * @return 是否修改成功
							 | 
						||
| 
								 | 
							
								//     */
							 | 
						||
| 
								 | 
							
								//    @Action("changeMRAddress")
							 | 
						||
| 
								 | 
							
								//    public Result changeMRAddress(Integer id,String getWay,String address) {
							 | 
						||
| 
								 | 
							
								//        String jsonString = XBDHttpHelper.ExecMethodGet(XBDEnum.BLSM_Appointment_ChangeAddress.Name,params-> {
							 | 
						||
| 
								 | 
							
								//           params.put("Id",id);
							 | 
						||
| 
								 | 
							
								//           params.put("getWay",getWay);
							 | 
						||
| 
								 | 
							
								//           params.put("address",address);
							 | 
						||
| 
								 | 
							
								//        });
							 | 
						||
| 
								 | 
							
								//        return Result.success(JsonHelper.parseObject(jsonString));
							 | 
						||
| 
								 | 
							
								//    }
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//    /**
							 | 
						||
| 
								 | 
							
								//     * 停止未通过审核的病历预约
							 | 
						||
| 
								 | 
							
								//     * @param id 申请单号
							 | 
						||
| 
								 | 
							
								//     * @param delNote 删除理由
							 | 
						||
| 
								 | 
							
								//     * @return 是否成功
							 | 
						||
| 
								 | 
							
								//     */
							 | 
						||
| 
								 | 
							
								//    @Action("stopMRReserve")
							 | 
						||
| 
								 | 
							
								//    public Result stopMRReserve(Integer id,String delNote){
							 | 
						||
| 
								 | 
							
								//        String jsonString = XBDHttpHelper.ExecMethodGet(XBDEnum.BLSM_Appointment_StopAppointment.Name,params-> {
							 | 
						||
| 
								 | 
							
								//           params.put("Id",id);
							 | 
						||
| 
								 | 
							
								//           params.put("delNote",delNote);
							 | 
						||
| 
								 | 
							
								//        });
							 | 
						||
| 
								 | 
							
								//        return Result.success(JsonHelper.parseObject(jsonString));
							 | 
						||
| 
								 | 
							
								//    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}
							 |