Browse Source

Merge branch 'dev' of chenweida/patient-co-management into dev

chenweida 8 years ago
parent
commit
78e219645d

+ 0 - 20
patient-co-wlyy/src/main/java/com/yihu/wlyy/entity/consult/Consult.java

@ -41,10 +41,6 @@ public class Consult extends IdEntity {
	private Date czrq;
	// 作废标识,1正常,0作废
	private String del;
	//起始消息id
	private Integer startMsgId;
	//结束消息id
	private Integer endMsgId;
	public String getCode() {
		return code;
	}
@ -116,20 +112,4 @@ public class Consult extends IdEntity {
	public void setGuidance(Long guidance) {
		this.guidance = guidance;
	}
	public Integer getStartMsgId() {
		return startMsgId;
	}
	public void setStartMsgId(Integer startMsgId) {
		this.startMsgId = startMsgId;
	}
	public Integer getEndMsgId() {
		return endMsgId;
	}
	public void setEndMsgId(Integer endMsgId) {
		this.endMsgId = endMsgId;
	}
}

+ 29 - 0
patient-co-wlyy/src/main/java/com/yihu/wlyy/entity/consult/ConsultTeam.java

@ -43,6 +43,11 @@ public class ConsultTeam extends IdEntity {
	private Long adminTeamId;//行政团队ID
	private Long guidance;   //关联指导
	private String doctorName;//醫生名字
	private String groupCode;//讨论租code
	//起始消息id
	private Integer startMsgId;
	//结束消息id
	private Integer endMsgId;
	@Column(name = "admin_team_code")
	public Long getAdminTeamId() {
@ -246,4 +251,28 @@ public class ConsultTeam extends IdEntity {
	public void setGuidance(Long guidance) {
		this.guidance = guidance;
	}
	public String getGroupCode() {
		return groupCode;
	}
	public Integer getStartMsgId() {
		return startMsgId;
	}
	public void setStartMsgId(Integer startMsgId) {
		this.startMsgId = startMsgId;
	}
	public Integer getEndMsgId() {
		return endMsgId;
	}
	public void setEndMsgId(Integer endMsgId) {
		this.endMsgId = endMsgId;
	}
	public void setGroupCode(String groupCode) {
		this.groupCode = groupCode;
	}
}

+ 41 - 22
patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/consult/ConsultTeamService.java

@ -11,6 +11,8 @@ import com.yihu.wlyy.entity.consult.Consult;
import com.yihu.wlyy.entity.consult.ConsultTeam;
import com.yihu.wlyy.entity.consult.ConsultTeamDoctor;
import com.yihu.wlyy.entity.consult.ConsultTeamLog;
import com.yihu.wlyy.entity.discussion.WlyyTalkGroup;
import com.yihu.wlyy.entity.discussion.WlyyTalkGroupMember;
import com.yihu.wlyy.entity.doctor.profile.Doctor;
import com.yihu.wlyy.entity.doctor.team.sign.DoctorTeam;
import com.yihu.wlyy.entity.doctor.team.sign.DoctorTeamMember;
@ -24,6 +26,7 @@ import com.yihu.wlyy.repository.doctor.DoctorTeamDao;
import com.yihu.wlyy.repository.doctor.DoctorTeamMemberDao;
import com.yihu.wlyy.repository.patient.SignFamilyDao;
import com.yihu.wlyy.service.app.health.PatientHealthGuidanceService;
import com.yihu.wlyy.service.app.talk.TalkGroupService;
import com.yihu.wlyy.util.HttpClientUtil;
import com.yihu.wlyy.util.HttpUtil;
import com.yihu.wlyy.util.SystemConf;
@ -80,6 +83,8 @@ public class ConsultTeamService extends ConsultService {
    private JdbcTemplate jdbcTemplate;
    @Autowired
    private PatientHealthGuidanceService guidanceService;
    @Autowired
    private TalkGroupService talkGroupService;
    /**
     * 查询患者是否还有未结束的三师咨询
@ -667,9 +672,6 @@ public class ConsultTeamService extends ConsultService {
        // 设置咨询标识
        ct.setConsult(consult.getCode());
        // 保存医生咨询信息
        if (consultTeamDao.save(ct) == null) {
            throw new Exception("保存失败!");
        }
        // 添加咨询转发记录
        ConsultTeamDoctor cd = new ConsultTeamDoctor();
        cd.setConsult(consult.getCode());
@ -681,17 +683,21 @@ public class ConsultTeamService extends ConsultService {
        //推送给IM文字消息
        String returnJson= sendIM(ct.getPatient(), ct.getDoctor(), "6", content);
        JSONObject jo=new JSONObject(returnJson);
        //设置消息ID
        consult.setStartMsgId(jo.getInt("startId"));
        //推送给IM图片
        if (StringUtils.isNotEmpty(ct.getImages())) {
            String[] images = ct.getImages().split(",");
            for (String image : images) {
                if (StringUtils.isNoneEmpty(image)) {
                    sendIM(ct.getPatient(), ct.getDoctor(), "2", image);
        if(jo.has("startId")){
            //设置消息ID
            ct.setStartMsgId(jo.getInt("startId"));
            //推送给IM图片
            if (StringUtils.isNotEmpty(ct.getImages())) {
                String[] images = ct.getImages().split(",");
                for (String image : images) {
                    if (StringUtils.isNoneEmpty(image)) {
                        sendIM(ct.getPatient(), ct.getDoctor(), "2", image);
                    }
                }
            }
        }
        consultTeamDao.save(ct);
        consultDao.save(consult);
        consultTeamDoctorDao.save(cd);
        return 1;
@ -851,13 +857,12 @@ public class ConsultTeamService extends ConsultService {
     */
    public int finish(String consult) {
        Consult consultObj=consultDao.findByCode(consult);
        ConsultTeam consultTeam=consultTeamDao.findByConsult(consult);
        //推送给IM文字消息
        String returnJson=  sendIM(consultTeam.getPatient(), consultTeam.getDoctor(), "7", "本次咨询结束");;
        JSONObject jo=new JSONObject(returnJson);
        //设置消息ID
        consultObj.setEndMsgId(jo.getInt("startId"));
        consultTeam.setEndMsgId(jo.getInt("startId"));
        return consultTeamDao.updateStatusByConsult(consult);
    }
@ -893,7 +898,7 @@ public class ConsultTeamService extends ConsultService {
     * @param consult 三师咨询标识
     * @return
     */
    public void transfer(String from, String to, String consult) {
    public void transfer(String from, String to, String consult,String groupCode) {
        // 检查是否存在
        if (consultTeamDoctorDao.isExist(consult, to) == 0) {
            ConsultTeam ct = consultTeamDao.findByConsult(consult);
@ -912,6 +917,20 @@ public class ConsultTeamService extends ConsultService {
            cd.setFromName(d.getName());
            cd.setTo(to);
            consultTeamDoctorDao.save(cd);
            //添加讨论组成员
            // 保存医生到讨论组
            Doctor toDoctor = doctorDao.findByCode(to);
            WlyyTalkGroup wlyyTalkGroup=talkGroupService.findTalkGroup(groupCode);
            WlyyTalkGroupMember doctorMember=new WlyyTalkGroupMember();
            doctorMember.setMemberCode(to);
            doctorMember.setMemberName(toDoctor.getName());
            doctorMember.setGroupCode(groupCode);
            doctorMember.setGroupName(wlyyTalkGroup.getName());
            doctorMember.setType(3);
            doctorMember.setStatus(1);
            doctorMember.setCzrq(new Date());
            talkGroupService.saveTalkMember(doctorMember);
        }
    }
@ -1090,10 +1109,6 @@ public class ConsultTeamService extends ConsultService {
        Consult consult = addConsult(ct.getPatient(), null, ct.getSymptoms(), ct.getImages(), ct.getType());
        // 设置咨询标识
        ct.setConsult(consult.getCode());
        // 保存医生咨询信息
        if (consultTeamDao.save(ct) == null) {
            throw new Exception("保存失败!");
        }
        // 添加咨询转发记录
        ConsultTeamDoctor cd = new ConsultTeamDoctor();
        cd.setConsult(consult.getCode());
@ -1106,7 +1121,7 @@ public class ConsultTeamService extends ConsultService {
        String returnJson=  sendIM(ct.getPatient(), ct.getDoctor(), "6", content);;
        JSONObject jo=new JSONObject(returnJson);
        //设置消息ID
        consult.setStartMsgId(jo.getInt("startId"));
        ct.setStartMsgId(jo.getInt("startId"));
        //推送给IM图片
        if (StringUtils.isNotEmpty(ct.getImages())) {
            String[] images = ct.getImages().split(",");
@ -1116,7 +1131,7 @@ public class ConsultTeamService extends ConsultService {
                }
            }
        }
        consultTeamDao.save(ct);  // 保存医生咨询信息
        consultTeamDoctorDao.save(cd);
        consultDao.save(consult);
    }
@ -1132,10 +1147,10 @@ public class ConsultTeamService extends ConsultService {
        return consultTeam;
    }
    public void transfers(String uid, String doctor, String consult) {
    public void transfers(String uid, String doctor, String consult,String groupCode) {
        String[] doctors = doctor.split(",");
        for (int i = 0; i < doctors.length; i++) {
            transfer(uid, doctors[i], consult);
            transfer(uid, doctors[i], consult,groupCode);
        }
    }
@ -1162,4 +1177,8 @@ public class ConsultTeamService extends ConsultService {
        sf.append(sf1);
        return sf.toString();
    }
    public void save(ConsultTeam consult) {
        consultTeamDao.save(consult);
    }
}

+ 3 - 3
patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/talk/TalkGroupService.java

@ -124,8 +124,8 @@ public class TalkGroupService extends BaseService {
        WlyyTalkGroup talkGroup = new WlyyTalkGroup();
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyy-MM-dd");
        String name = patientName + "—咨询(" + dateFormat.format(new Date()) + ")";
        talkGroup.setCode(getCode());
        String groupCode=getCode();
        talkGroup.setCode(groupCode);
        talkGroup.setName(name);
        talkGroup.setType(1);
        talkGroup.setCreator(patient);
@ -166,7 +166,7 @@ public class TalkGroupService extends BaseService {
        JSONObject result = new JSONObject(talkGroup);
        result.put("members",result);
        result.put("groupCode",groupCode);
        return result;
    }

+ 6 - 5
patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/consult/DoctorConsultController.java

@ -191,9 +191,9 @@ public class DoctorConsultController extends WeixinBaseController {
                json.put("doctorRead", consult.getDoctorRead());
                // 设置关联指导
                json.put("guidance", consult.getGuidance());
                Consult consultObj=consultService.findOneConsult(consult.getConsult());
                json.put("startId", consultObj.getStartMsgId());
                json.put("endId", consultObj.getEndMsgId());
                json.put("startId", consult.getStartMsgId());
                json.put("endId", consult.getEndMsgId());
                json.put("groupCode", consult.getGroupCode());
                jsonArray.put(json);
            }
@ -300,9 +300,10 @@ public class DoctorConsultController extends WeixinBaseController {
    public String transfer(
            String consult,
            String doctor,
            @RequestParam(required = false) int type) {
            @RequestParam(required = false) int type,
            String groupCode) {
        try {
            consultTeamService.transfers(getUID(), doctor, consult);
            consultTeamService.transfers(getUID(), doctor, consult,groupCode);
            return success("转接成功");
        } catch (Exception e) {
            error(e);

+ 5 - 3
patient-co-wlyy/src/main/java/com/yihu/wlyy/web/patient/consult/ConsultController.java

@ -308,9 +308,11 @@ public class ConsultController extends WeixinBaseController {
            Doctor doctor = doctorService.findDoctorByCode(consult.getDoctor());
            //创建咨询讨论组
            talkGroupService.createConsultTalkGroup(consult.getDoctor(), doctor.getName(), doctor.getHospital(), doctor.getHospitalName(),
            JSONObject jo= talkGroupService.createConsultTalkGroup(consult.getDoctor(), doctor.getName(), doctor.getHospital(), doctor.getHospitalName(),
                    consult.getPatient(), consult.getName(), consult.getConsult());
            consult.setGroupCode(jo.getString("groupCode"));
            //更新讨论组
            consultTeamService.save(consult);
            // 添加到统计队列
            if (consult.getType() == 2) {
                DoctorStatisticsTask.getInstance(doctorStatisticsService).put(consult.getDoctor(), 1, 1, 0);
@ -319,7 +321,7 @@ public class ConsultController extends WeixinBaseController {
            // 推送消息给医生
            PushMsgTask.getInstance().put(consult.getDoctor(), MessageType.MESSAGE_TYPE_DOCTOR_NEW_CONSULT_TEAM.D_CT_01.name(), MessageType.MESSAGE_TYPE_DOCTOR_NEW_CONSULT_TEAM.指定咨询.name(), MessageType.MESSAGE_TYPE_DOCTOR_NEW_CONSULT_TEAM.您有新的指定咨询.name(), consult.getConsult());
            return success("提交成功");
            return write(200, "提交成功");
        } catch (Exception ex) {
            error(ex);
            return invalidUserException(ex, -1, "提交失败!");