|
@ -1,87 +1,49 @@
|
|
package com.yihu.jw.hospital.prescription.service;
|
|
package com.yihu.jw.hospital.prescription.service;
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
import com.yihu.jw.dict.dao.DictHospitalDeptDao;
|
|
|
|
import com.yihu.jw.doctor.dao.BaseDoctorDao;
|
|
|
|
import com.yihu.jw.doctor.dao.BaseDoctorHospitalDao;
|
|
|
|
import com.yihu.jw.doctor.service.BaseDoctorInfoService;
|
|
|
|
import com.yihu.jw.entity.base.dict.DictHospitalDeptDO;
|
|
|
|
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
|
|
|
|
import com.yihu.jw.entity.base.doctor.BaseDoctorHospitalDO;
|
|
|
|
import com.yihu.jw.entity.base.org.BaseDoctorPatientFollowDO;
|
|
|
|
import com.yihu.jw.entity.base.org.BaseOrgDO;
|
|
|
|
|
|
|
|
import com.yihu.jw.entity.base.patient.BasePatientDO;
|
|
import com.yihu.jw.entity.base.patient.BasePatientDO;
|
|
import com.yihu.jw.entity.hospital.consult.WlyyDoctorClinicRoomDO;
|
|
|
|
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
|
|
|
|
|
|
import com.yihu.jw.entity.base.wx.BasePatientWechatDo;
|
|
|
|
import com.yihu.jw.entity.base.wx.WxWechatDO;
|
|
|
|
|
|
import com.yihu.jw.entity.hospital.consult.WlyyHospitalWaitingRoomDO;
|
|
import com.yihu.jw.entity.hospital.consult.WlyyHospitalWaitingRoomDO;
|
|
import com.yihu.jw.entity.hospital.dict.WlyyChargeDictDO;
|
|
|
|
import com.yihu.jw.entity.hospital.doctor.WlyyDoctorOnlineTimeDO;
|
|
|
|
import com.yihu.jw.entity.hospital.doctor.WlyyDoctorWorkTimeDO;
|
|
|
|
|
|
|
|
import com.yihu.jw.entity.hospital.doctor.WlyyPatientRegisterTimeDO;
|
|
import com.yihu.jw.entity.hospital.doctor.WlyyPatientRegisterTimeDO;
|
|
import com.yihu.jw.entity.hospital.httplog.WlyyHttpLogDO;
|
|
|
|
import com.yihu.jw.entity.hospital.mapping.DoctorMappingDO;
|
|
|
|
import com.yihu.jw.entity.hospital.message.SystemMessageDO;
|
|
|
|
|
|
|
|
import com.yihu.jw.entity.hospital.prescription.*;
|
|
import com.yihu.jw.entity.hospital.prescription.*;
|
|
import com.yihu.jw.entity.order.BusinessOrderDO;
|
|
import com.yihu.jw.entity.order.BusinessOrderDO;
|
|
import com.yihu.jw.entity.ylzinfo.OauthYlzConfigDO;
|
|
|
|
import com.yihu.jw.file_upload.FileUploadService;
|
|
|
|
|
|
|
|
import com.yihu.jw.hospital.consult.dao.HospitalWaitingRoomDao;
|
|
import com.yihu.jw.hospital.consult.dao.HospitalWaitingRoomDao;
|
|
import com.yihu.jw.hospital.dict.WlyyChargeDictDao;
|
|
|
|
import com.yihu.jw.hospital.dict.WlyyHospitalSysDictDao;
|
|
|
|
import com.yihu.jw.hospital.doctor.dao.DoctorWorkTimeDao;
|
|
|
|
|
|
|
|
import com.yihu.jw.hospital.doctor.dao.PatientRegisterTimeDao;
|
|
import com.yihu.jw.hospital.doctor.dao.PatientRegisterTimeDao;
|
|
import com.yihu.jw.hospital.doctor.dao.WlyyDoctorOnlineTimeDao;
|
|
|
|
import com.yihu.jw.hospital.httplog.dao.WlyyHttpLogDao;
|
|
|
|
import com.yihu.jw.hospital.mapping.service.DoctorMappingService;
|
|
|
|
|
|
|
|
import com.yihu.jw.hospital.mapping.service.PatientMappingService;
|
|
import com.yihu.jw.hospital.mapping.service.PatientMappingService;
|
|
import com.yihu.jw.hospital.message.service.SystemMessageService;
|
|
|
|
|
|
|
|
import com.yihu.jw.hospital.prescription.dao.*;
|
|
import com.yihu.jw.hospital.prescription.dao.*;
|
|
import com.yihu.jw.hospital.prescription.service.entrance.EntranceService;
|
|
|
|
|
|
|
|
import com.yihu.jw.hospital.prescription.service.entrance.YkyyEntranceService;
|
|
import com.yihu.jw.hospital.prescription.service.entrance.YkyyEntranceService;
|
|
|
|
|
|
import com.yihu.jw.order.BusinessOrderService;
|
|
import com.yihu.jw.order.BusinessOrderService;
|
|
import com.yihu.jw.org.dao.BaseOrgDao;
|
|
|
|
import com.yihu.jw.patient.dao.BaseDoctorPatientFollowDao;
|
|
|
|
|
|
import com.yihu.jw.order.dao.BusinessOrderDao;
|
|
|
|
import com.yihu.jw.order.pay.wx.WeChatConfig;
|
|
|
|
|
|
import com.yihu.jw.patient.dao.BasePatientDao;
|
|
import com.yihu.jw.patient.dao.BasePatientDao;
|
|
import com.yihu.jw.patient.dao.BasePatientMedicareCardDao;
|
|
|
|
import com.yihu.jw.restmodel.base.dict.DictHospitalDeptVO;
|
|
|
|
import com.yihu.jw.restmodel.base.org.BaseOrgVO;
|
|
|
|
import com.yihu.jw.restmodel.hospital.archive.ArchiveVO;
|
|
|
|
import com.yihu.jw.restmodel.hospital.consult.WlyyHospitalSysDictVO;
|
|
|
|
import com.yihu.jw.restmodel.hospital.doctor.WlyyDoctorWorkTimeVO;
|
|
|
|
import com.yihu.jw.restmodel.hospital.prescription.*;
|
|
import com.yihu.jw.restmodel.hospital.prescription.*;
|
|
import com.yihu.jw.restmodel.web.Envelop;
|
|
|
|
import com.yihu.jw.restmodel.web.MixEnvelop;
|
|
|
|
import com.yihu.jw.rm.hospital.BaseHospitalRequestMapping;
|
|
|
|
import com.yihu.jw.util.common.IdCardUtil;
|
|
|
|
import com.yihu.jw.util.date.DateUtil;
|
|
|
|
import com.yihu.jw.utils.WebserviceUtil;
|
|
|
|
import com.yihu.jw.utils.hibernate.HibenateUtils;
|
|
|
|
import com.yihu.mysql.query.BaseJpaService;
|
|
|
|
import com.yihu.utils.security.MD5;
|
|
|
|
import com.ylzinfo.ehc.EhcHandler;
|
|
|
|
import com.ylzinfo.ehc.common.utils.DateUtils;
|
|
|
|
import com.ylzinfo.ehc.trans.TransRequest;
|
|
|
|
import com.ylzinfo.ehc.trans.TransResponse;
|
|
|
|
import jxl.write.*;
|
|
|
|
|
|
|
|
|
|
import com.yihu.jw.wechat.dao.BasePatientWechatDao;
|
|
|
|
import com.yihu.jw.wechat.dao.WechatDao;
|
|
|
|
import com.yihu.mysql.query.BaseJpaService;
|
|
import org.apache.commons.collections.map.HashedMap;
|
|
import org.apache.commons.collections.map.HashedMap;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.data.redis.core.StringRedisTemplate;
|
|
|
|
import org.springframework.jdbc.core.BeanPropertyRowMapper;
|
|
|
|
import org.springframework.jdbc.core.JdbcTemplate;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
|
|
import java.io.IOException;
|
|
|
|
import java.io.OutputStream;
|
|
|
|
import java.lang.Boolean;
|
|
import java.lang.Boolean;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
|
|
|
|
@ -94,78 +56,33 @@ public class YkyyPrescriptionService extends BaseJpaService<WlyyPrescriptionDO,
|
|
|
|
|
|
private static final Logger logger = LoggerFactory.getLogger(YkyyPrescriptionService.class);
|
|
private static final Logger logger = LoggerFactory.getLogger(YkyyPrescriptionService.class);
|
|
|
|
|
|
@Autowired
|
|
|
|
private BaseDoctorDao baseDoctorDao;
|
|
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
private BasePatientDao basePatientDao;
|
|
private BasePatientDao basePatientDao;
|
|
@Autowired
|
|
@Autowired
|
|
private BasePatientMedicareCardDao basePatientMedicareCardDao;
|
|
|
|
@Autowired
|
|
|
|
private PrescriptionDao prescriptionDao;
|
|
private PrescriptionDao prescriptionDao;
|
|
@Autowired
|
|
@Autowired
|
|
private PrescriptionDiagnosisDao prescriptionDiagnosisDao;
|
|
|
|
@Autowired
|
|
|
|
private PrescriptionExpressageDao prescriptionExpressageDao;
|
|
private PrescriptionExpressageDao prescriptionExpressageDao;
|
|
@Autowired
|
|
@Autowired
|
|
private PrescriptionExpressageLogDao prescriptionExpressageLogDao;
|
|
|
|
@Autowired
|
|
|
|
private PrescriptionInfoDao prescriptionInfoDao;
|
|
|
|
@Autowired
|
|
|
|
private HospitalWaitingRoomDao hospitalWaitingRoomDao;
|
|
private HospitalWaitingRoomDao hospitalWaitingRoomDao;
|
|
@Autowired
|
|
@Autowired
|
|
private DictHospitalDeptDao dictHospitalDeptDao;
|
|
|
|
@Autowired
|
|
|
|
private BaseOrgDao baseOrgDao;
|
|
|
|
@Autowired
|
|
|
|
private PatientMappingService patientMappingService;
|
|
private PatientMappingService patientMappingService;
|
|
@Autowired
|
|
@Autowired
|
|
private DoctorMappingService doctorMappingService;
|
|
|
|
@Autowired
|
|
|
|
private OutpatientDao outpatientDao;
|
|
private OutpatientDao outpatientDao;
|
|
@Autowired
|
|
@Autowired
|
|
private ObjectMapper objectMapper;
|
|
private ObjectMapper objectMapper;
|
|
@Autowired
|
|
@Autowired
|
|
private WlyyChargeDictDao wlyyChargeDictDao;
|
|
|
|
@Autowired
|
|
|
|
private WlyyHospitalSysDictDao sysDictDao;
|
|
|
|
@Autowired
|
|
|
|
private DoctorWorkTimeDao doctorWorkTimeDao;
|
|
|
|
@Autowired
|
|
|
|
private PatientRegisterTimeDao patientRegisterTimeDao;
|
|
private PatientRegisterTimeDao patientRegisterTimeDao;
|
|
@Autowired
|
|
@Autowired
|
|
private WlyyHttpLogDao wlyyHttpLogDao;
|
|
|
|
@Autowired
|
|
|
|
private WlyyDoctorClinicRoomDao wlyyDoctorClinicRoomDao;
|
|
|
|
@Autowired
|
|
|
|
private BaseDoctorHospitalDao baseDoctorHospitalDao;
|
|
|
|
@Autowired
|
|
|
|
private PrescriptionExpressageService sfexpressService;
|
|
|
|
@Autowired
|
|
|
|
private WlyyDoctorOnlineTimeDao wlyyDoctorOnlineTimeDao;
|
|
|
|
@Autowired
|
|
|
|
private OauthYlzConfigDao oauthYlzConfigDao;
|
|
|
|
@Autowired
|
|
|
|
private PatientRegisterDao patientRegisterDao;
|
|
|
|
@Autowired
|
|
|
|
private PrescriptionLogService prescriptionLogService;
|
|
|
|
@Autowired
|
|
|
|
private WlyyInspectionDao wlyyInspectionDao;
|
|
|
|
@Autowired
|
|
|
|
private StringRedisTemplate redisTemplate;
|
|
|
|
@Autowired
|
|
|
|
private SystemMessageService systemMessageService;
|
|
|
|
@Autowired
|
|
|
|
private HibenateUtils hibenateUtils;
|
|
|
|
|
|
private YkyyEntranceService ykyyEntranceService;
|
|
@Autowired
|
|
@Autowired
|
|
private BaseDoctorPatientFollowDao baseOrgPatientDao;
|
|
|
|
|
|
private BusinessOrderDao businessOrderDao;
|
|
@Autowired
|
|
@Autowired
|
|
private WlyyHospitalWorkRuleDao wlyyHospitalWorkRuleDao;
|
|
|
|
|
|
private WechatDao wechatDao;
|
|
@Autowired
|
|
@Autowired
|
|
private BaseDoctorInfoService baseDoctorService;
|
|
|
|
|
|
private BasePatientWechatDao patientWechatDao;
|
|
@Autowired
|
|
@Autowired
|
|
private BusinessOrderService businessOrderService;
|
|
private BusinessOrderService businessOrderService;
|
|
@Autowired
|
|
|
|
private YkyyEntranceService ykyyEntranceService;
|
|
|
|
|
|
|
|
|
|
|
|
@Value("${demo.flag}")
|
|
@Value("${demo.flag}")
|
|
@ -507,4 +424,59 @@ public class YkyyPrescriptionService extends BaseJpaService<WlyyPrescriptionDO,
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public JSONArray synYkICD10() throws Exception {
|
|
|
|
JSONArray jsonArray = ykyyEntranceService.findIcd10();
|
|
|
|
return jsonArray;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
*
|
|
|
|
* 处方下单
|
|
|
|
*
|
|
|
|
* @return
|
|
|
|
* @throws Exception
|
|
|
|
*/
|
|
|
|
public Map<String,Object> savePrescriptionOrder(String code,Double price,String wechatId) throws Exception {
|
|
|
|
WxWechatDO wxWechatDO = wechatDao.findById(wechatId);
|
|
|
|
Map<String,Object> map = new HashedMap();
|
|
|
|
if(wxWechatDO==null){
|
|
|
|
throw new Exception("can't find wechat:the wxId is "+wechatId);
|
|
|
|
}
|
|
|
|
List<WlyyPrescriptionDO> wlyyPrescriptionDOS = prescriptionDao.findById(code);
|
|
|
|
if (wlyyPrescriptionDOS!=null&&wlyyPrescriptionDOS.size()!=0){
|
|
|
|
WlyyPrescriptionDO wlyyPrescriptionDO = wlyyPrescriptionDOS.get(0);
|
|
|
|
BusinessOrderDO businessOrderDO = new BusinessOrderDO();
|
|
|
|
businessOrderDO.setCreateTime(new Date());
|
|
|
|
businessOrderDO.setUpdateTime(new Date());
|
|
|
|
businessOrderDO.setStatus(0);
|
|
|
|
businessOrderDO.setOrderNo("VAS"+businessOrderDO.getOrderType()+System.currentTimeMillis()+(int)(Math.random()*900)+100);
|
|
|
|
businessOrderDO.setUploadStatus(0);
|
|
|
|
businessOrderDO.setPayType(1);
|
|
|
|
businessOrderDO.setRelationCode(code);
|
|
|
|
businessOrderDO.setRelationName("处方结算");
|
|
|
|
businessOrderDO.setOrderCategory("4");
|
|
|
|
businessOrderDO.setOrderType(4);
|
|
|
|
businessOrderDO.setDoctor(wlyyPrescriptionDO.getDoctor());
|
|
|
|
businessOrderDO.setPatient(wlyyPrescriptionDO.getPatientCode());
|
|
|
|
businessOrderDO.setPatientName(wlyyPrescriptionDO.getPatientName());
|
|
|
|
businessOrderDO.setPayPrice(price*100);
|
|
|
|
businessOrderDO.setDescription("处方结算");
|
|
|
|
businessOrderDO = businessOrderDao.save(businessOrderDO);
|
|
|
|
if (businessOrderDO!=null){
|
|
|
|
List<BasePatientWechatDo> patientWechatDos = patientWechatDao.findByWechatIdAndPatientId(wechatId,businessOrderDO.getPatient());
|
|
|
|
String openId = "";
|
|
|
|
if (patientWechatDos!=null&&patientWechatDos.size()!=0){
|
|
|
|
openId = patientWechatDos.get(0).getOpenid();
|
|
|
|
}
|
|
|
|
String url = wxWechatDO.getBaseUrl();
|
|
|
|
String notifyUrl =url;
|
|
|
|
map = businessOrderService.unifiedorder(wechatId,businessOrderDO.getDescription(),businessOrderDO.getPayPrice().toString(), WeChatConfig.TRADE_TYPE_JSAPI,openId,businessOrderDO.getOrderNo(),notifyUrl);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return map;
|
|
|
|
}
|
|
|
|
|
|
}
|
|
}
|