|
@ -54,7 +54,6 @@ import com.yihu.jw.restmodel.hospital.consult.WlyyHospitalSysDictVO;
|
|
import com.yihu.jw.restmodel.hospital.doctor.WlyyDoctorWorkTimeVO;
|
|
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.Envelop;
|
|
import com.yihu.jw.restmodel.web.ListEnvelop;
|
|
|
|
import com.yihu.jw.restmodel.web.MixEnvelop;
|
|
import com.yihu.jw.restmodel.web.MixEnvelop;
|
|
import com.yihu.jw.rm.hospital.BaseHospitalRequestMapping;
|
|
import com.yihu.jw.rm.hospital.BaseHospitalRequestMapping;
|
|
import com.yihu.jw.util.common.IdCardUtil;
|
|
import com.yihu.jw.util.common.IdCardUtil;
|
|
@ -72,7 +71,6 @@ import net.sf.json.JSONArray;
|
|
import net.sf.json.JSONObject;
|
|
import net.sf.json.JSONObject;
|
|
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.checkerframework.checker.units.qual.A;
|
|
|
|
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;
|
|
@ -182,6 +180,8 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
private WlyyHospitalSysDictDao wlyyHospitalSysDictDao;
|
|
private WlyyHospitalSysDictDao wlyyHospitalSysDictDao;
|
|
@Autowired
|
|
@Autowired
|
|
private PrescriptionCheckDao prescriptionCheckDao;
|
|
private PrescriptionCheckDao prescriptionCheckDao;
|
|
|
|
@Autowired
|
|
|
|
private PrescriptionExpressageLogDao prescriptionExpressageLogDao;
|
|
|
|
|
|
|
|
|
|
@Value("${demo.flag}")
|
|
@Value("${demo.flag}")
|
|
@ -444,7 +444,6 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
}else{
|
|
}else{
|
|
rs.put("expressage",null);
|
|
rs.put("expressage",null);
|
|
}
|
|
}
|
|
/*
|
|
|
|
|
|
|
|
//物流配送新
|
|
//物流配送新
|
|
List<WlyyPrescriptionExpressageLogDO> expressageLogDOs = prescriptionExpressageLogDao.queryByOutpatientIdOrderByCreateTimeDesc(outpatientId);
|
|
List<WlyyPrescriptionExpressageLogDO> expressageLogDOs = prescriptionExpressageLogDao.queryByOutpatientIdOrderByCreateTimeDesc(outpatientId);
|
|
@ -454,7 +453,6 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
}else{
|
|
}else{
|
|
rs.put("expressageLogs",null);
|
|
rs.put("expressageLogs",null);
|
|
}
|
|
}
|
|
*/
|
|
|
|
|
|
|
|
//预约记录
|
|
//预约记录
|
|
List<WlyyPatientRegisterTimeDO> timeDOs = patientRegisterTimeDao.findByOutpatientId(outpatientId);
|
|
List<WlyyPatientRegisterTimeDO> timeDOs = patientRegisterTimeDao.findByOutpatientId(outpatientId);
|
|
@ -1849,10 +1847,10 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
//============================下诊断==============================================================
|
|
//============================下诊断==============================================================
|
|
//删除之前诊断
|
|
//删除之前诊断
|
|
List<WlyyPrescriptionDiagnosisDO> ds = prescriptionDiagnosisDao.findByPrescriptionId(prescription.getId());
|
|
|
|
|
|
/* List<WlyyPrescriptionDiagnosisDO> ds = prescriptionDiagnosisDao.findByPrescriptionId(prescription.getId());
|
|
if (ds != null && ds.size() > 0) {
|
|
if (ds != null && ds.size() > 0) {
|
|
prescriptionDiagnosisDao.delete(ds);
|
|
prescriptionDiagnosisDao.delete(ds);
|
|
}
|
|
|
|
|
|
}*/
|
|
|
|
|
|
List<WlyyPrescriptionDiagnosisDO> diagnosisDOs = (List<WlyyPrescriptionDiagnosisDO>) com.alibaba.fastjson.JSONArray.parseArray(diagnosisJson, WlyyPrescriptionDiagnosisDO.class);
|
|
List<WlyyPrescriptionDiagnosisDO> diagnosisDOs = (List<WlyyPrescriptionDiagnosisDO>) com.alibaba.fastjson.JSONArray.parseArray(diagnosisJson, WlyyPrescriptionDiagnosisDO.class);
|
|
String Icd10 = "";
|
|
String Icd10 = "";
|
|
@ -1886,15 +1884,14 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
throw new RuntimeException("未找到医生映射信息");
|
|
throw new RuntimeException("未找到医生映射信息");
|
|
}
|
|
}
|
|
|
|
|
|
//his处方拼接开方条件
|
|
|
|
com.alibaba.fastjson.JSONArray jsonData = new com.alibaba.fastjson.JSONArray();
|
|
|
|
|
|
|
|
|
|
|
|
//===================药品操作======================================================
|
|
//===================药品操作======================================================
|
|
// 删除原有药品信息
|
|
// 删除原有药品信息
|
|
List<WlyyPrescriptionInfoDO> oldInfos = prescriptionInfoDao.findByPrescriptionId(prescription.getId());
|
|
|
|
|
|
/*List<WlyyPrescriptionInfoDO> oldInfos = prescriptionInfoDao.findByPrescriptionId(prescription.getId());
|
|
if (oldInfos != null && oldInfos.size() > 0) {
|
|
if (oldInfos != null && oldInfos.size() > 0) {
|
|
prescriptionInfoDao.delete(oldInfos);
|
|
prescriptionInfoDao.delete(oldInfos);
|
|
}
|
|
|
|
|
|
}*/
|
|
|
|
|
|
//存储药品,构建his开方入参
|
|
//存储药品,构建his开方入参
|
|
if (StringUtils.isNotBlank(infoJsons)) {
|
|
if (StringUtils.isNotBlank(infoJsons)) {
|
|
@ -1906,8 +1903,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
info.setDel(1);
|
|
info.setDel(1);
|
|
info.setPrescriptionId(prescription.getId());
|
|
info.setPrescriptionId(prescription.getId());
|
|
|
|
|
|
//设置his药品查询条件
|
|
|
|
setInfoJsonParam(jsonData, doctorMappingDO, outpatientDO, prescriptionDO, info, Icd10);
|
|
|
|
|
|
|
|
}
|
|
}
|
|
//保存药品信息
|
|
//保存药品信息
|
|
prescriptionInfoDao.save(infoDOs);
|
|
prescriptionInfoDao.save(infoDOs);
|
|
@ -1923,10 +1919,10 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
//=====================检查检验=======================================================================
|
|
//=====================检查检验=======================================================================
|
|
//存储检查检验,构建his开方入参
|
|
//存储检查检验,构建his开方入参
|
|
//删除之前检查检验
|
|
//删除之前检查检验
|
|
List<WlyyInspectionDO> inspectionDels = wlyyInspectionDao.findByOutpatientId(outPatientId);
|
|
|
|
|
|
/*List<WlyyInspectionDO> inspectionDels = wlyyInspectionDao.findByOutpatientId(outPatientId);
|
|
if (inspectionDels != null && inspectionDels.size() > 0) {
|
|
if (inspectionDels != null && inspectionDels.size() > 0) {
|
|
wlyyInspectionDao.delete(inspectionDels);
|
|
wlyyInspectionDao.delete(inspectionDels);
|
|
}
|
|
|
|
|
|
}*/
|
|
|
|
|
|
if (StringUtils.isNotBlank(inspectionJson)) {
|
|
if (StringUtils.isNotBlank(inspectionJson)) {
|
|
List<WlyyInspectionDO> inspections = (List<WlyyInspectionDO>) com.alibaba.fastjson.JSONArray.parseArray(inspectionJson, WlyyInspectionDO.class);
|
|
List<WlyyInspectionDO> inspections = (List<WlyyInspectionDO>) com.alibaba.fastjson.JSONArray.parseArray(inspectionJson, WlyyInspectionDO.class);
|
|
@ -1936,8 +1932,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
ins.setPrescriptionId(prescription.getId());
|
|
ins.setPrescriptionId(prescription.getId());
|
|
ins.setOutpatientId(outPatientId);
|
|
ins.setOutpatientId(outPatientId);
|
|
|
|
|
|
//设置his药品查询条件
|
|
|
|
setInspectionParam(jsonData, doctorMappingDO, outpatientDO, prescriptionDO, ins, Icd10);
|
|
|
|
|
|
|
|
}
|
|
}
|
|
//保存检查检验。
|
|
//保存检查检验。
|
|
wlyyInspectionDao.save(inspections);
|
|
wlyyInspectionDao.save(inspections);
|
|
@ -1949,6 +1944,13 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
//保存挂号费用
|
|
//保存挂号费用
|
|
prescription.setRegFee(getChargeFee(outpatientDO.getDoctor()));
|
|
prescription.setRegFee(getChargeFee(outpatientDO.getDoctor()));
|
|
|
|
//=====================保存日志 start=========================================================
|
|
|
|
List<WlyyPrescriptionCheckDO> prescriptionCheckDOS = prescriptionCheckDao.findByStatus(prescription.getId(),5);
|
|
|
|
if (prescriptionCheckDOS==null || prescriptionCheckDOS.size() ==0){
|
|
|
|
savePrescriptionCheck(prescription.getDoctor(),"开具处方",5,prescription.getId());
|
|
|
|
}
|
|
|
|
|
|
|
|
//=====================保存日志 end=========================================================
|
|
//保存费用
|
|
//保存费用
|
|
prescriptionDao.save(prescription);
|
|
prescriptionDao.save(prescription);
|
|
if (wechatId.equalsIgnoreCase("xm_ykyy_wx")){
|
|
if (wechatId.equalsIgnoreCase("xm_ykyy_wx")){
|
|
@ -1973,13 +1975,16 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
Double price = 0.01;
|
|
Double price = 0.01;
|
|
businessOrderService.recharge(prescription.getId(),"处方收费","4","处方收费",prescription.getPatientCode(),prescription.getPatientName(),prescription.getDoctor(),price);
|
|
businessOrderService.recharge(prescription.getId(),"处方收费","4","处方收费",prescription.getPatientCode(),prescription.getPatientName(),prescription.getDoctor(),price);
|
|
//上传his开方
|
|
//上传his开方
|
|
return sendHisDiagnosis(jsonData, outpatientDO, prescription);
|
|
|
|
|
|
//sendHisDiagnosis(jsonData, outpatientDO, prescription)
|
|
|
|
//zsSynHis(prescription.getId());
|
|
|
|
return null;
|
|
}else {
|
|
}else {
|
|
result.put("code", 1);
|
|
result.put("code", 1);
|
|
result.put("mes", "诊断完成");
|
|
result.put("mes", "诊断完成");
|
|
return result;
|
|
return result;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
} else {
|
|
} else {
|
|
outpatientDO.setStatus("2");
|
|
outpatientDO.setStatus("2");
|
|
outpatientDao.save(outpatientDO);
|
|
outpatientDao.save(outpatientDO);
|
|
@ -5208,7 +5213,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public List<Map<String,Object>> selectByCondition(String hospital, String dept, String status, String startTime, String endTime, String nameInfo, Integer page, Integer pagesize, String wxId){
|
|
|
|
|
|
public List<Map<String,Object>> selectByCondition(String hospital, String dept, String checkStatus, String startTime, String endTime, String nameInfo, Integer page, Integer pagesize, String wxId){
|
|
List<Map<String,Object>> maps = new ArrayList<>();
|
|
List<Map<String,Object>> maps = new ArrayList<>();
|
|
String sql = "SELECT\n" +
|
|
String sql = "SELECT\n" +
|
|
"\tp.doctor as \"doctor\",\n" +
|
|
"\tp.doctor as \"doctor\",\n" +
|
|
@ -5227,7 +5232,10 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
}else{
|
|
}else{
|
|
sql = sql + "date_format(p.create_time,'%Y-%m-%d %H:%i:%S' ) AS \"createTime\",";
|
|
sql = sql + "date_format(p.create_time,'%Y-%m-%d %H:%i:%S' ) AS \"createTime\",";
|
|
}
|
|
}
|
|
sql +="\tp.`status` as \"status\"\n" +
|
|
|
|
|
|
sql +="\tp.status as \"status\",\n" +
|
|
|
|
"\tp.check_status as \"checkStatus\",\n" +
|
|
|
|
"\tp.check_reason as \"checkReason\",\n" +
|
|
|
|
"\tp.pay_type as \"payType\"\n" +
|
|
"FROM\n" +
|
|
"FROM\n" +
|
|
"\twlyy_prescription P\n" +
|
|
"\twlyy_prescription P\n" +
|
|
"WHERE\n" +
|
|
"WHERE\n" +
|
|
@ -5241,9 +5249,9 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
sql +=" and p.dept =:dept";
|
|
sql +=" and p.dept =:dept";
|
|
params.put("dept",dept);
|
|
params.put("dept",dept);
|
|
}
|
|
}
|
|
if (StringUtils.isNoneBlank(status)){
|
|
|
|
sql +=" and p.status =:status";
|
|
|
|
params.put("status",status);
|
|
|
|
|
|
if (StringUtils.isNoneBlank(checkStatus)){
|
|
|
|
sql +=" and p.check_status =:checkStatus";
|
|
|
|
params.put("checkStatus",checkStatus);
|
|
}
|
|
}
|
|
if (StringUtils.isNoneBlank(startTime)){
|
|
if (StringUtils.isNoneBlank(startTime)){
|
|
sql +=" and p.create_time >=:startTime";
|
|
sql +=" and p.create_time >=:startTime";
|
|
@ -5270,9 +5278,9 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
sqlTotal +=" and p.dept =:dept";
|
|
sqlTotal +=" and p.dept =:dept";
|
|
params1.put("dept",dept);
|
|
params1.put("dept",dept);
|
|
}
|
|
}
|
|
if (StringUtils.isNoneBlank(status)){
|
|
|
|
sqlTotal +=" and p.status =:status";
|
|
|
|
params1.put("status",status);
|
|
|
|
|
|
if (StringUtils.isNoneBlank(checkStatus)){
|
|
|
|
sqlTotal +=" and p.check_status =:checkStatus";
|
|
|
|
params1.put("checkStatus",checkStatus);
|
|
}
|
|
}
|
|
if (StringUtils.isNoneBlank(startTime)){
|
|
if (StringUtils.isNoneBlank(startTime)){
|
|
sqlTotal +=" and p.create_time >=:startTime";
|
|
sqlTotal +=" and p.create_time >=:startTime";
|
|
@ -5330,7 +5338,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
* @param prescriptionId
|
|
* @param prescriptionId
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
public WlyyPrescriptionCheckDO saveCheck(String operate,String operateName,String reason,Integer status,String prescriptionId){
|
|
|
|
|
|
public WlyyPrescriptionCheckDO saveCheck(String operate,String operateName,String reason,Integer status,String prescriptionId,String wxId){
|
|
WlyyPrescriptionCheckDO prescriptionCheckDO = new WlyyPrescriptionCheckDO();
|
|
WlyyPrescriptionCheckDO prescriptionCheckDO = new WlyyPrescriptionCheckDO();
|
|
prescriptionCheckDO.setCreateTime(new Date());
|
|
prescriptionCheckDO.setCreateTime(new Date());
|
|
prescriptionCheckDO.setOperate(operate);
|
|
prescriptionCheckDO.setOperate(operate);
|
|
@ -5340,16 +5348,98 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
prescriptionCheckDO.setCreateUserName(operateName);
|
|
prescriptionCheckDO.setCreateUserName(operateName);
|
|
prescriptionCheckDO.setReason(reason);
|
|
prescriptionCheckDO.setReason(reason);
|
|
prescriptionCheckDO.setStatus(status);
|
|
prescriptionCheckDO.setStatus(status);
|
|
|
|
prescriptionCheckDO.setPrescriptionId(prescriptionId);
|
|
prescriptionCheckDO = prescriptionCheckDao.save(prescriptionCheckDO);
|
|
prescriptionCheckDO = prescriptionCheckDao.save(prescriptionCheckDO);
|
|
if (status==4){
|
|
|
|
prescriptionDao.updateStatus(prescriptionId,12);
|
|
|
|
|
|
WlyyPrescriptionDO wlyyPrescriptionDO = prescriptionDao.findOne(prescriptionId);
|
|
|
|
if (status==2){
|
|
|
|
prescriptionDao.updateCheckStatus(prescriptionId,2,reason,12);
|
|
|
|
/*if (wxId.equalsIgnoreCase("xm_zsyy_wx")){
|
|
|
|
try {
|
|
|
|
WlyyPrescriptionDO prescriptionDO = prescriptionDao.findOne(prescriptionId);
|
|
|
|
List<WlyyPrescriptionInfoDO> infoDOS = prescriptionInfoDao.findByPrescriptionId(prescriptionId);
|
|
|
|
List<WlyyInspectionDO> inspectionDOS = wlyyInspectionDao.findByPrescriptionId(prescriptionId);
|
|
|
|
WlyyOutpatientDO outpatientDO = outpatientDao.findById(prescriptionDO.getOutpatientId());
|
|
|
|
DoctorMappingDO doctorMappingDO = doctorMappingService.findMappingCode(outpatientDO.getDoctor(), outpatientDO.getHospital());
|
|
|
|
|
|
|
|
//his处方拼接开方条件
|
|
|
|
com.alibaba.fastjson.JSONArray jsonData = new com.alibaba.fastjson.JSONArray();
|
|
|
|
for (WlyyPrescriptionInfoDO info:infoDOS){
|
|
|
|
//设置his药品查询条件
|
|
|
|
setInfoJsonParam(jsonData, doctorMappingDO, outpatientDO, prescriptionDO, info, outpatientDO.getIcd10());
|
|
|
|
}
|
|
|
|
|
|
|
|
for (WlyyInspectionDO ins:inspectionDOS){
|
|
|
|
//设置his药品查询条件
|
|
|
|
setInspectionParam(jsonData, doctorMappingDO, outpatientDO, prescriptionDO, ins, outpatientDO.getIcd10());
|
|
|
|
}
|
|
|
|
sendHisDiagnosis(jsonData, outpatientDO, prescriptionDO);
|
|
|
|
} catch (Exception e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
}*/
|
|
}else{
|
|
}else{
|
|
WlyyPrescriptionDO wlyyPrescriptionDO = prescriptionDao.findOne(prescriptionId);
|
|
|
|
wlyyPrescriptionDO.setMkTime(new Date());
|
|
|
|
wlyyPrescriptionDO.setMkFailReason(reason);
|
|
|
|
|
|
wlyyPrescriptionDO.setCheckStatus(status);
|
|
|
|
wlyyPrescriptionDO.setCheckReason(reason);
|
|
wlyyPrescriptionDO.setStatus(11);
|
|
wlyyPrescriptionDO.setStatus(11);
|
|
prescriptionDao.save(wlyyPrescriptionDO);
|
|
prescriptionDao.save(wlyyPrescriptionDO);
|
|
}
|
|
}
|
|
|
|
if (status==2||status==1){
|
|
|
|
sendCheckMessage(status,wlyyPrescriptionDO,operate,operateName);
|
|
|
|
}
|
|
|
|
return prescriptionCheckDO;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public WlyyPrescriptionCheckDO savePrescriptionCheck(String operate,String reason,Integer status,String prescriptionId){
|
|
|
|
String dept = null;
|
|
|
|
String deptName = null;
|
|
|
|
String job = null;
|
|
|
|
String jobName = null;
|
|
|
|
BaseDoctorDO doctorDO = baseDoctorDao.findById(operate);
|
|
|
|
String operateName = null;
|
|
|
|
if (doctorDO!=null){
|
|
|
|
operateName = doctorDO.getName();
|
|
|
|
job = doctorDO.getJobTitleCode();
|
|
|
|
jobName = doctorDO.getJobTitleName();
|
|
|
|
}
|
|
|
|
List<BaseDoctorHospitalDO> doctorHospitalDOS = baseDoctorHospitalDao.findByDoctorCode(operate);
|
|
|
|
if (doctorHospitalDOS!=null&&doctorHospitalDOS.size()!=0){
|
|
|
|
BaseDoctorHospitalDO doctorHospitalDO = doctorHospitalDOS.get(0);
|
|
|
|
dept = doctorHospitalDO.getDeptCode();
|
|
|
|
deptName = doctorHospitalDO.getDeptName();
|
|
|
|
}
|
|
|
|
WlyyPrescriptionCheckDO prescriptionCheckDO = new WlyyPrescriptionCheckDO();
|
|
|
|
prescriptionCheckDO.setCreateTime(new Date());
|
|
|
|
prescriptionCheckDO.setOperate(operate);
|
|
|
|
prescriptionCheckDO.setOperateName(operateName);
|
|
|
|
prescriptionCheckDO.setUpdateTime(new Date());
|
|
|
|
prescriptionCheckDO.setCreateUser(operate);
|
|
|
|
prescriptionCheckDO.setCreateUserName(operateName);
|
|
|
|
prescriptionCheckDO.setReason(reason);
|
|
|
|
prescriptionCheckDO.setStatus(status);
|
|
|
|
prescriptionCheckDO.setDept(dept);
|
|
|
|
prescriptionCheckDO.setDeptName(deptName);
|
|
|
|
prescriptionCheckDO.setJob(job);
|
|
|
|
prescriptionCheckDO.setJobName(jobName);
|
|
|
|
prescriptionCheckDO.setPrescriptionId(prescriptionId);
|
|
|
|
prescriptionCheckDO = prescriptionCheckDao.save(prescriptionCheckDO);
|
|
|
|
WlyyPrescriptionDO wlyyPrescriptionDO = prescriptionDao.findOne(prescriptionId);
|
|
|
|
if (status==3){
|
|
|
|
wlyyPrescriptionDO.setCheckStatus(0);
|
|
|
|
wlyyPrescriptionDO.setCheckReason("未审核");
|
|
|
|
wlyyPrescriptionDO.setDealStatus(1);
|
|
|
|
wlyyPrescriptionDO.setDealReason(reason);
|
|
|
|
}else if (status==4){
|
|
|
|
wlyyPrescriptionDO.setCheckStatus(0);
|
|
|
|
wlyyPrescriptionDO.setCheckReason("未审核");
|
|
|
|
wlyyPrescriptionDO.setDealStatus(2);
|
|
|
|
wlyyPrescriptionDO.setDealReason(reason);
|
|
|
|
}else if (status==5){
|
|
|
|
wlyyPrescriptionDO.setCheckStatus(0);
|
|
|
|
wlyyPrescriptionDO.setCheckReason("未审核");
|
|
|
|
}
|
|
|
|
prescriptionDao.save(wlyyPrescriptionDO);
|
|
return prescriptionCheckDO;
|
|
return prescriptionCheckDO;
|
|
}
|
|
}
|
|
|
|
|
|
@ -5362,4 +5452,137 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
public List<WlyyPrescriptionCheckDO> findPrescriptionCheck(String prescriptionId){
|
|
public List<WlyyPrescriptionCheckDO> findPrescriptionCheck(String prescriptionId){
|
|
return prescriptionCheckDao.findByPrescriptionId(prescriptionId);
|
|
return prescriptionCheckDao.findByPrescriptionId(prescriptionId);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 发送处方审核消息
|
|
|
|
* @param status
|
|
|
|
* @param prescriptionDO
|
|
|
|
* @param operate
|
|
|
|
* @param operateName
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
public SystemMessageDO sendCheckMessage(Integer status,WlyyPrescriptionDO prescriptionDO,String operate,String operateName){
|
|
|
|
SystemMessageDO systemMessageDO = new SystemMessageDO();
|
|
|
|
try{
|
|
|
|
systemMessageDO.setType("5");
|
|
|
|
systemMessageDO.setReceiver(prescriptionDO.getDoctor());
|
|
|
|
systemMessageDO.setReceiverName(prescriptionDO.getDoctorName());
|
|
|
|
systemMessageDO.setRelationCode(prescriptionDO.getId());
|
|
|
|
systemMessageDO.setSender(operate);
|
|
|
|
systemMessageDO.setSenderName(operateName);
|
|
|
|
JSONObject data = new JSONObject();
|
|
|
|
data.put("name",prescriptionDO.getPatientName());
|
|
|
|
data.put("age",IdCardUtil.getAgeForIdcard(prescriptionDO.getIdcard()));
|
|
|
|
data.put("gender",IdCardUtil.getSexForIdcard(prescriptionDO.getIdcard()));
|
|
|
|
if (status==2){
|
|
|
|
systemMessageDO.setTitle("审方通过");
|
|
|
|
data.put("message","审方通过");
|
|
|
|
data.put("message","您为"+prescriptionDO.getPatientName()+"("+IdCardUtil.getAgeForIdcard(prescriptionDO.getIdcard())+"岁 "+IdCardUtil.getSexForIdcard(prescriptionDO.getIdcard())+")开具的处方已审核通过。");
|
|
|
|
} else if (status==1) {
|
|
|
|
systemMessageDO.setTitle("审方退回");
|
|
|
|
data.put("message","审方退回");
|
|
|
|
data.put("message","您为"+prescriptionDO.getPatientName()+"("+IdCardUtil.getAgeForIdcard(prescriptionDO.getIdcard())+"岁 "+IdCardUtil.getSexForIdcard(prescriptionDO.getIdcard())+")开具的处方被审方退回,请尽快处理");
|
|
|
|
}
|
|
|
|
systemMessageDO.setData(data.toString());
|
|
|
|
systemMessageService.saveMessage(systemMessageDO);
|
|
|
|
}catch (Exception e){
|
|
|
|
logger.error("sendPatientGetDrugMes :"+e.toString());
|
|
|
|
}
|
|
|
|
return systemMessageDO;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 查询单条处方记录
|
|
|
|
* @param prescriptionId
|
|
|
|
* @return
|
|
|
|
* @throws Exception
|
|
|
|
*/
|
|
|
|
public WlyyPrescriptionVO selectByPrescriptionId(String prescriptionId) throws Exception {
|
|
|
|
WlyyPrescriptionDO wlyyPrescriptionDO= prescriptionDao.findOne(prescriptionId);
|
|
|
|
if (wlyyPrescriptionDO!=null){
|
|
|
|
com.alibaba.fastjson.JSONObject objectString = (com.alibaba.fastjson.JSONObject) com.alibaba.fastjson.JSONObject.toJSON(wlyyPrescriptionDO);
|
|
|
|
WlyyPrescriptionVO prescriptionVO = com.alibaba.fastjson.JSONObject.toJavaObject(objectString,WlyyPrescriptionVO.class);
|
|
|
|
List<WlyyPrescriptionInfoDO> wlyyPrescriptionInfoDOS = prescriptionInfoDao.findByPrescriptionId(prescriptionId);
|
|
|
|
List<WlyyPrescriptionInfoVO> wlyyPrescriptionInfoVOS = new ArrayList<>();
|
|
|
|
for (WlyyPrescriptionInfoDO wlyyPrescriptionInfoDO:wlyyPrescriptionInfoDOS){
|
|
|
|
com.alibaba.fastjson.JSONObject object = (com.alibaba.fastjson.JSONObject) com.alibaba.fastjson.JSONObject.toJSON(wlyyPrescriptionInfoDO);
|
|
|
|
logger.info("wlyyPrescriptionInfoDO参数入参"+object.toJSONString());
|
|
|
|
WlyyPrescriptionInfoVO prescriptionInfoVO = com.alibaba.fastjson.JSONObject.toJavaObject(object,WlyyPrescriptionInfoVO.class);
|
|
|
|
wlyyPrescriptionInfoVOS.add(prescriptionInfoVO);
|
|
|
|
}
|
|
|
|
prescriptionVO.setInfoVOs(wlyyPrescriptionInfoVOS);
|
|
|
|
List<WlyyPrescriptionDiagnosisDO> wlyyPrescriptionDiagnosisDOS = prescriptionDiagnosisDao.findByPrescriptionId(prescriptionId);
|
|
|
|
List<WlyyPrescriptionDiagnosisVO> wlyyPrescriptionDiagnosisVOS = new ArrayList<>();
|
|
|
|
for (WlyyPrescriptionDiagnosisDO prescriptionDiagnosisDO:wlyyPrescriptionDiagnosisDOS){
|
|
|
|
com.alibaba.fastjson.JSONObject object = (com.alibaba.fastjson.JSONObject) com.alibaba.fastjson.JSONObject.toJSON(prescriptionDiagnosisDO);
|
|
|
|
logger.info("prescriptionDiagnosisDO参数入参"+object.toJSONString());
|
|
|
|
WlyyPrescriptionDiagnosisVO prescriptionDiagnosisVO = com.alibaba.fastjson.JSONObject.toJavaObject(object,WlyyPrescriptionDiagnosisVO.class);
|
|
|
|
wlyyPrescriptionDiagnosisVOS.add(prescriptionDiagnosisVO);
|
|
|
|
}
|
|
|
|
prescriptionVO.setDiagnosisVOs(wlyyPrescriptionDiagnosisVOS);
|
|
|
|
|
|
|
|
List<WlyyInspectionDO> inspectionDOS = wlyyInspectionDao.findByPrescriptionId(prescriptionId);
|
|
|
|
List<WlyyInspectionVO> inspectionVOList = new ArrayList<>();
|
|
|
|
for (WlyyInspectionDO inspectionDO:inspectionDOS){
|
|
|
|
com.alibaba.fastjson.JSONObject object = (com.alibaba.fastjson.JSONObject) com.alibaba.fastjson.JSONObject.toJSON(inspectionDO);
|
|
|
|
logger.info("prescriptionDiagnosisDO参数入参"+object.toJSONString());
|
|
|
|
WlyyInspectionVO inspectionVO = com.alibaba.fastjson.JSONObject.toJavaObject(object,WlyyInspectionVO.class);
|
|
|
|
inspectionVOList.add(inspectionVO);
|
|
|
|
}
|
|
|
|
prescriptionVO.setInspectionVOs(inspectionVOList);
|
|
|
|
prescriptionVO.setAge(StringUtils.isNoneBlank(wlyyPrescriptionDO.getIdcard())?IdCardUtil.getAgeForIdcard(wlyyPrescriptionDO.getIdcard())+"":null);
|
|
|
|
prescriptionVO.setSex(StringUtils.isNoneBlank(wlyyPrescriptionDO.getIdcard())?IdCardUtil.getSexForIdcard_new(wlyyPrescriptionDO.getIdcard()):null);
|
|
|
|
return prescriptionVO;
|
|
|
|
}
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void deleteById(Integer flag,String id){
|
|
|
|
if (flag ==1){
|
|
|
|
//药品
|
|
|
|
prescriptionInfoDao.deleteById(id);
|
|
|
|
}else if (flag==2){
|
|
|
|
//诊断
|
|
|
|
prescriptionDiagnosisDao.deleteById(id);
|
|
|
|
}else if (flag==3){
|
|
|
|
//检查检验
|
|
|
|
wlyyInspectionDao.deleteById(id);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void zsSynHis(String prescriptionId){
|
|
|
|
try {
|
|
|
|
WlyyPrescriptionDO prescriptionDO = prescriptionDao.findOne(prescriptionId);
|
|
|
|
List<WlyyPrescriptionInfoDO> infoDOS = prescriptionInfoDao.findByPrescriptionId(prescriptionId);
|
|
|
|
List<WlyyInspectionDO> inspectionDOS = wlyyInspectionDao.findByPrescriptionId(prescriptionId);
|
|
|
|
WlyyOutpatientDO outpatientDO = outpatientDao.findById(prescriptionDO.getOutpatientId());
|
|
|
|
DoctorMappingDO doctorMappingDO = doctorMappingService.findMappingCode(outpatientDO.getDoctor(), outpatientDO.getHospital());
|
|
|
|
|
|
|
|
//his处方拼接开方条件
|
|
|
|
com.alibaba.fastjson.JSONArray jsonData = new com.alibaba.fastjson.JSONArray();
|
|
|
|
for (WlyyPrescriptionInfoDO info:infoDOS){
|
|
|
|
//设置his药品查询条件
|
|
|
|
setInfoJsonParam(jsonData, doctorMappingDO, outpatientDO, prescriptionDO, info, outpatientDO.getIcd10());
|
|
|
|
}
|
|
|
|
|
|
|
|
for (WlyyInspectionDO ins:inspectionDOS){
|
|
|
|
//设置his药品查询条件
|
|
|
|
setInspectionParam(jsonData, doctorMappingDO, outpatientDO, prescriptionDO, ins, outpatientDO.getIcd10());
|
|
|
|
}
|
|
|
|
sendHisDiagnosis(jsonData, outpatientDO, prescriptionDO);
|
|
|
|
} catch (Exception e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
}
|