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.
188 lines
7.3 KiB
188 lines
7.3 KiB
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));
|
|
// }
|
|
|
|
}
|
|
|