|
@ -1153,129 +1153,131 @@ public class ImService {
|
|
|
jsonObject.put("age",DateUtil.getAgeForIdcard(p.getIdcard()));
|
|
|
jsonObject.put("sex",p.getSex());
|
|
|
jsonObject.put("name",p.getName());
|
|
|
|
|
|
//4、创建咨询
|
|
|
JSONObject users = new JSONObject();//咨询参与者
|
|
|
|
|
|
String consultTitle = "";
|
|
|
//协同门诊
|
|
|
if("2".equals(wlyyOutpatientDO.getOutpatientType())){
|
|
|
users.put(wlyyOutpatientDO.getGeneralDoctor(),0);
|
|
|
ct.setType(12);
|
|
|
consultTitle = "申请协同门诊";
|
|
|
|
|
|
JSONObject consultName = new JSONObject();
|
|
|
consultName.put("patientName",p.getName());
|
|
|
consultName.put("doctorName",doctor.getName());
|
|
|
jsonObject.put("name",consultName.toJSONString());
|
|
|
}else{
|
|
|
users.put(patient, 0);
|
|
|
consultTitle = "申请复诊";
|
|
|
}
|
|
|
|
|
|
String content = jsonObject.toString();
|
|
|
|
|
|
users.put(doctorCode, 0);
|
|
|
//关联业务code
|
|
|
ct.setRelationCode(outpatientCode);
|
|
|
//医生信息
|
|
|
ct.setDoctor(doctorCode);
|
|
|
ct.setDoctorName(doctor.getName());
|
|
|
// 设置患者信息
|
|
|
ct.setPatient(patient);
|
|
|
ct.setSymptoms(wlyyOutpatientDO.getDescription());
|
|
|
|
|
|
// 设置患者姓名
|
|
|
ct.setName(p.getName());
|
|
|
// 设置患者生日
|
|
|
ct.setBirthday(p.getBirthday());
|
|
|
//新增性别
|
|
|
ct.setSex(p.getSex());
|
|
|
// 设置患者头像
|
|
|
ct.setPhoto(p.getPhoto());
|
|
|
// 设置操作日期
|
|
|
ct.setCzrq(new Date());
|
|
|
ct.setDel("1");
|
|
|
ct.setStatus(0);
|
|
|
ct.setEvaluate(0);
|
|
|
// 医生未读数量为1
|
|
|
ct.setDoctorRead(1);
|
|
|
//添加就诊图片
|
|
|
ct.setImages(wlyyOutpatientDO.getDiseaseImg());
|
|
|
// 添加咨询记录
|
|
|
ConsultDo consult = addConsult(ct.getPatient(), consultTitle, ct.getSymptoms(), ct.getImages(), ct.getType());
|
|
|
// 设置关联指导
|
|
|
consult.setGuidance(ct.getGuidance());
|
|
|
//关联业务code
|
|
|
consult.setRelationCode(outpatientCode);
|
|
|
//支付状态为1
|
|
|
consult.setPayStatus(1);
|
|
|
// 设置咨询标识
|
|
|
ct.setConsult(consult.getId());
|
|
|
|
|
|
//推送给IM去创建议题,取得成员消息
|
|
|
|
|
|
JSONObject messages = new JSONObject();
|
|
|
JSONObject obj = new JSONObject();
|
|
|
String sessionId = "";
|
|
|
//协同门诊
|
|
|
if("2".equals(wlyyOutpatientDO.getOutpatientType())){
|
|
|
BaseDoctorDO generalDoctor = baseDoctorDao.findById(wlyyOutpatientDO.getGeneralDoctor());
|
|
|
messages = imUtil.getCreateTopicMessage(generalDoctor.getId(),generalDoctor.getName(), consult.getTitle(), content, consult.getImages(), doctorCode);
|
|
|
//5、(im创建咨询) 续方咨询的sessionid为居民code+就诊code+12(图文,视频,图文+视频)
|
|
|
sessionId = patient + "_" + outpatientCode + "_" + ct.getType();
|
|
|
obj = imUtil.createTopics(sessionId, consult.getId(), p.getName(), users, messages, imUtil.SESSION_TYPE_COLLABORATION_HOSPITAL);
|
|
|
|
|
|
}else{
|
|
|
messages = imUtil.getCreateTopicMessage(patient, p.getName(), consult.getTitle(), content, consult.getImages(), doctorCode);
|
|
|
//5、(im创建咨询) 续方咨询的sessionid为居民code+就诊code+9(图文,视频,图文+视频)
|
|
|
sessionId = patient + "_" + outpatientCode + "_" + ct.getType();
|
|
|
|
|
|
if(1== type){
|
|
|
//图文复诊
|
|
|
obj = imUtil.createTopics(sessionId, consult.getId(), p.getName(), users, messages, imUtil.SESSION_TYPE_EXAMINATION);
|
|
|
|
|
|
ConsultDo consultDo = consultDao.findByRelationCode(outpatientCode);
|
|
|
if (consultDo==null){
|
|
|
//4、创建咨询
|
|
|
JSONObject users = new JSONObject();//咨询参与者
|
|
|
|
|
|
String consultTitle = "";
|
|
|
//协同门诊
|
|
|
if("2".equals(wlyyOutpatientDO.getOutpatientType())){
|
|
|
users.put(wlyyOutpatientDO.getGeneralDoctor(),0);
|
|
|
ct.setType(12);
|
|
|
consultTitle = "申请协同门诊";
|
|
|
|
|
|
JSONObject consultName = new JSONObject();
|
|
|
consultName.put("patientName",p.getName());
|
|
|
consultName.put("doctorName",doctor.getName());
|
|
|
jsonObject.put("name",consultName.toJSONString());
|
|
|
}else{
|
|
|
//视频复诊+图文复诊
|
|
|
obj = imUtil.createTopics(sessionId, consult.getId(), p.getName(), users, messages, imUtil.SESSION_TYPE_EXAMINATION_VIDEO);
|
|
|
users.put(patient, 0);
|
|
|
consultTitle = "申请复诊";
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
String content = jsonObject.toString();
|
|
|
|
|
|
if (obj == null) {
|
|
|
throw new RuntimeException("IM消息发送异常!");
|
|
|
}
|
|
|
if (obj.getInteger("status") == -1) {//im议题创建失败
|
|
|
throw new RuntimeException(obj.getString("message"));
|
|
|
}
|
|
|
ct.setStartMsgId(obj.get("start_msg_id").toString());
|
|
|
consultTeamDao.save(ct);
|
|
|
consultDao.save(consult);
|
|
|
|
|
|
//设置咨询code
|
|
|
users.put(doctorCode, 0);
|
|
|
//关联业务code
|
|
|
ct.setRelationCode(outpatientCode);
|
|
|
//医生信息
|
|
|
ct.setDoctor(doctorCode);
|
|
|
ct.setDoctorName(doctor.getName());
|
|
|
// 设置患者信息
|
|
|
ct.setPatient(patient);
|
|
|
ct.setSymptoms(wlyyOutpatientDO.getDescription());
|
|
|
|
|
|
// 设置患者姓名
|
|
|
ct.setName(p.getName());
|
|
|
// 设置患者生日
|
|
|
ct.setBirthday(p.getBirthday());
|
|
|
//新增性别
|
|
|
ct.setSex(p.getSex());
|
|
|
// 设置患者头像
|
|
|
ct.setPhoto(p.getPhoto());
|
|
|
// 设置操作日期
|
|
|
ct.setCzrq(new Date());
|
|
|
ct.setDel("1");
|
|
|
ct.setStatus(0);
|
|
|
ct.setEvaluate(0);
|
|
|
// 医生未读数量为1
|
|
|
ct.setDoctorRead(1);
|
|
|
//添加就诊图片
|
|
|
ct.setImages(wlyyOutpatientDO.getDiseaseImg());
|
|
|
// 添加咨询记录
|
|
|
ConsultDo consult = addConsult(ct.getPatient(), consultTitle, ct.getSymptoms(), ct.getImages(), ct.getType());
|
|
|
// 设置关联指导
|
|
|
consult.setGuidance(ct.getGuidance());
|
|
|
//关联业务code
|
|
|
consult.setRelationCode(outpatientCode);
|
|
|
//支付状态为1
|
|
|
consult.setPayStatus(1);
|
|
|
// 设置咨询标识
|
|
|
ct.setConsult(consult.getId());
|
|
|
|
|
|
//推送给IM去创建议题,取得成员消息
|
|
|
|
|
|
JSONObject messages = new JSONObject();
|
|
|
JSONObject obj = new JSONObject();
|
|
|
String sessionId = "";
|
|
|
//协同门诊
|
|
|
if("2".equals(wlyyOutpatientDO.getOutpatientType())){
|
|
|
BaseDoctorDO generalDoctor = baseDoctorDao.findById(wlyyOutpatientDO.getGeneralDoctor());
|
|
|
messages = imUtil.getCreateTopicMessage(generalDoctor.getId(),generalDoctor.getName(), consult.getTitle(), content, consult.getImages(), doctorCode);
|
|
|
//5、(im创建咨询) 续方咨询的sessionid为居民code+就诊code+12(图文,视频,图文+视频)
|
|
|
sessionId = patient + "_" + outpatientCode + "_" + ct.getType();
|
|
|
obj = imUtil.createTopics(sessionId, consult.getId(), p.getName(), users, messages, imUtil.SESSION_TYPE_COLLABORATION_HOSPITAL);
|
|
|
|
|
|
}else{
|
|
|
messages = imUtil.getCreateTopicMessage(patient, p.getName(), consult.getTitle(), content, consult.getImages(), doctorCode);
|
|
|
//5、(im创建咨询) 续方咨询的sessionid为居民code+就诊code+9(图文,视频,图文+视频)
|
|
|
sessionId = patient + "_" + outpatientCode + "_" + ct.getType();
|
|
|
|
|
|
if(1== type){
|
|
|
//图文复诊
|
|
|
obj = imUtil.createTopics(sessionId, consult.getId(), p.getName(), users, messages, imUtil.SESSION_TYPE_EXAMINATION);
|
|
|
}else{
|
|
|
//视频复诊+图文复诊
|
|
|
obj = imUtil.createTopics(sessionId, consult.getId(), p.getName(), users, messages, imUtil.SESSION_TYPE_EXAMINATION_VIDEO);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (obj == null) {
|
|
|
throw new RuntimeException("IM消息发送异常!");
|
|
|
}
|
|
|
if (obj.getInteger("status") == -1) {//im议题创建失败
|
|
|
throw new RuntimeException(obj.getString("message"));
|
|
|
}
|
|
|
ct.setStartMsgId(obj.get("start_msg_id").toString());
|
|
|
consultTeamDao.save(ct);
|
|
|
consultDao.save(consult);
|
|
|
|
|
|
//设置咨询code
|
|
|
// wlyyOutpatientDO.setConsult(consult.getCode());
|
|
|
// prescriptionDao.save(prescription);
|
|
|
|
|
|
//6、记录咨询的医生详情
|
|
|
ConsultTeamDoctorDo cd = new ConsultTeamDoctorDo();
|
|
|
cd.setConsult(consult.getId());
|
|
|
cd.setDel("1");
|
|
|
cd.setCzrq(new Date());
|
|
|
cd.setTo(doctorCode);
|
|
|
consultTeamDoctorDao.save(cd);
|
|
|
|
|
|
//7、发送系统消息提示团队长有未审核的消息
|
|
|
|
|
|
//6、记录咨询的医生详情
|
|
|
ConsultTeamDoctorDo cd = new ConsultTeamDoctorDo();
|
|
|
cd.setConsult(consult.getId());
|
|
|
cd.setDel("1");
|
|
|
cd.setCzrq(new Date());
|
|
|
cd.setTo(doctorCode);
|
|
|
consultTeamDoctorDao.save(cd);
|
|
|
|
|
|
//7、发送系统消息提示团队长有未审核的消息
|
|
|
// addCheckMessage(prescription, sessionId, p);
|
|
|
|
|
|
//8、 保存医生咨询信息
|
|
|
// 添加咨询转发记录
|
|
|
// 添加医生咨询日志
|
|
|
addLogs(ct);
|
|
|
|
|
|
JSONObject result = imUtil.getSingleSessionInfo(sessionId,doctorCode);
|
|
|
|
|
|
|
|
|
//8、 保存医生咨询信息
|
|
|
// 添加咨询转发记录
|
|
|
// 添加医生咨询日志
|
|
|
addLogs(ct);
|
|
|
}
|
|
|
String sessionIds = patient + "_" + outpatientCode + "_" + ct.getType();
|
|
|
JSONObject result = imUtil.getSingleSessionInfo(sessionIds,doctorCode);
|
|
|
wlyyOutpatientDO.setStatus("1");//修改就诊记录为就诊中
|
|
|
wlyyOutpatientDO.setConDate(new Date());
|
|
|
wlyyOutpatientDO.setDoctor(doctorCode);
|
|
@ -1312,11 +1314,149 @@ public class ImService {
|
|
|
//医生接诊发送导诊护士外层消息
|
|
|
this.sendOutpatientGuaidanceMessage(wlyyOutpatientDO);
|
|
|
}
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 添加复诊咨询
|
|
|
* @return
|
|
|
*/
|
|
|
public JSONObject addConsult(String outpatientCode, String patient,String doctorCode, ConsultTeamDo ct, String reason, Integer type,String wxId) throws Exception {
|
|
|
//1、获取his就诊记录详情(保存续方表、药品续方信息表、续方疾病类型表)
|
|
|
WlyyOutpatientDO wlyyOutpatientDO = outpatientDao.findOne(outpatientCode);
|
|
|
BaseDoctorDO doctor = baseDoctorDao.findById(doctorCode);
|
|
|
// doctorCode = doctor.getCode();
|
|
|
// 查询患者信息
|
|
|
BasePatientDO p = basePatientDao.findById(patient);
|
|
|
JSONObject jsonObject = new JSONObject();
|
|
|
jsonObject.put("title", p.getName() + "申请复诊");
|
|
|
jsonObject.put("content",wlyyOutpatientDO.getDescription());
|
|
|
jsonObject.put("age",DateUtil.getAgeForIdcard(p.getIdcard()));
|
|
|
jsonObject.put("sex",p.getSex());
|
|
|
jsonObject.put("name",p.getName());
|
|
|
//4、创建咨询
|
|
|
JSONObject users = new JSONObject();//咨询参与者
|
|
|
|
|
|
String consultTitle = "";
|
|
|
//协同门诊
|
|
|
if("2".equals(wlyyOutpatientDO.getOutpatientType())){
|
|
|
users.put(wlyyOutpatientDO.getGeneralDoctor(),0);
|
|
|
ct.setType(12);
|
|
|
consultTitle = "申请协同门诊";
|
|
|
|
|
|
JSONObject consultName = new JSONObject();
|
|
|
consultName.put("patientName",p.getName());
|
|
|
consultName.put("doctorName",doctor.getName());
|
|
|
jsonObject.put("name",consultName.toJSONString());
|
|
|
}else{
|
|
|
users.put(patient, 0);
|
|
|
consultTitle = "申请复诊";
|
|
|
}
|
|
|
|
|
|
String content = jsonObject.toString();
|
|
|
|
|
|
users.put(doctorCode, 0);
|
|
|
//关联业务code
|
|
|
ct.setRelationCode(outpatientCode);
|
|
|
//医生信息
|
|
|
ct.setDoctor(doctorCode);
|
|
|
ct.setDoctorName(doctor.getName());
|
|
|
// 设置患者信息
|
|
|
ct.setPatient(patient);
|
|
|
ct.setSymptoms(wlyyOutpatientDO.getDescription());
|
|
|
|
|
|
// 设置患者姓名
|
|
|
ct.setName(p.getName());
|
|
|
// 设置患者生日
|
|
|
ct.setBirthday(p.getBirthday());
|
|
|
//新增性别
|
|
|
ct.setSex(p.getSex());
|
|
|
// 设置患者头像
|
|
|
ct.setPhoto(p.getPhoto());
|
|
|
// 设置操作日期
|
|
|
ct.setCzrq(new Date());
|
|
|
ct.setDel("1");
|
|
|
ct.setStatus(0);
|
|
|
ct.setEvaluate(0);
|
|
|
// 医生未读数量为1
|
|
|
ct.setDoctorRead(1);
|
|
|
//添加就诊图片
|
|
|
ct.setImages(wlyyOutpatientDO.getDiseaseImg());
|
|
|
// 添加咨询记录
|
|
|
ConsultDo consult = addConsult(ct.getPatient(), consultTitle, ct.getSymptoms(), ct.getImages(), ct.getType());
|
|
|
// 设置关联指导
|
|
|
consult.setGuidance(ct.getGuidance());
|
|
|
//关联业务code
|
|
|
consult.setRelationCode(outpatientCode);
|
|
|
//支付状态为1
|
|
|
consult.setPayStatus(1);
|
|
|
// 设置咨询标识
|
|
|
ct.setConsult(consult.getId());
|
|
|
|
|
|
//推送给IM去创建议题,取得成员消息
|
|
|
|
|
|
JSONObject messages = new JSONObject();
|
|
|
JSONObject obj = new JSONObject();
|
|
|
String sessionId = "";
|
|
|
//协同门诊
|
|
|
if("2".equals(wlyyOutpatientDO.getOutpatientType())){
|
|
|
BaseDoctorDO generalDoctor = baseDoctorDao.findById(wlyyOutpatientDO.getGeneralDoctor());
|
|
|
messages = imUtil.getCreateTopicMessage(generalDoctor.getId(),generalDoctor.getName(), consult.getTitle(), content, consult.getImages(), doctorCode);
|
|
|
//5、(im创建咨询) 续方咨询的sessionid为居民code+就诊code+12(图文,视频,图文+视频)
|
|
|
sessionId = patient + "_" + outpatientCode + "_" + ct.getType();
|
|
|
obj = imUtil.createTopics(sessionId, consult.getId(), p.getName(), users, messages, imUtil.SESSION_TYPE_COLLABORATION_HOSPITAL);
|
|
|
|
|
|
}else{
|
|
|
messages = imUtil.getCreateTopicMessage(patient, p.getName(), consult.getTitle(), content, consult.getImages(), doctorCode);
|
|
|
//5、(im创建咨询) 续方咨询的sessionid为居民code+就诊code+9(图文,视频,图文+视频)
|
|
|
sessionId = patient + "_" + outpatientCode + "_" + ct.getType();
|
|
|
|
|
|
if(1== type){
|
|
|
//图文复诊
|
|
|
obj = imUtil.createTopics(sessionId, consult.getId(), p.getName(), users, messages, imUtil.SESSION_TYPE_EXAMINATION);
|
|
|
}else{
|
|
|
//视频复诊+图文复诊
|
|
|
obj = imUtil.createTopics(sessionId, consult.getId(), p.getName(), users, messages, imUtil.SESSION_TYPE_EXAMINATION_VIDEO);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if (obj == null) {
|
|
|
throw new RuntimeException("IM消息发送异常!");
|
|
|
}
|
|
|
if (obj.getInteger("status") == -1) {//im议题创建失败
|
|
|
throw new RuntimeException(obj.getString("message"));
|
|
|
}
|
|
|
ct.setStartMsgId(obj.get("start_msg_id").toString());
|
|
|
consultTeamDao.save(ct);
|
|
|
consultDao.save(consult);
|
|
|
|
|
|
//设置咨询code
|
|
|
// wlyyOutpatientDO.setConsult(consult.getCode());
|
|
|
// prescriptionDao.save(prescription);
|
|
|
|
|
|
//6、记录咨询的医生详情
|
|
|
ConsultTeamDoctorDo cd = new ConsultTeamDoctorDo();
|
|
|
cd.setConsult(consult.getId());
|
|
|
cd.setDel("1");
|
|
|
cd.setCzrq(new Date());
|
|
|
cd.setTo(doctorCode);
|
|
|
consultTeamDoctorDao.save(cd);
|
|
|
|
|
|
//7、发送系统消息提示团队长有未审核的消息
|
|
|
// addCheckMessage(prescription, sessionId, p);
|
|
|
|
|
|
//8、 保存医生咨询信息
|
|
|
// 添加咨询转发记录
|
|
|
// 添加医生咨询日志
|
|
|
addLogs(ct);
|
|
|
JSONObject result = imUtil.getSingleSessionInfo(sessionId,doctorCode);
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 医生接诊发送导诊护士外层消息
|
|
|
* @param wlyyOutpatientDO
|