瀏覽代碼

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

trick9191 8 年之前
父節點
當前提交
fa9c2dfd66

+ 3 - 0
patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/patient/SignFamilyRenewDao.java

@ -48,4 +48,7 @@ public interface SignFamilyRenewDao extends PagingAndSortingRepository<SignFamil
    // 查询患者已生效的家庭续签约
    @Query("select a from SignFamilyRenew a where a.patient = ?1 and a.type = 2 and a.status = 0")
    SignFamilyRenew findSigningByPatient(String patient);
    @Query("select a from SignFamilyRenew a where a.teamCode = ?1 and a.type = 2 and a.status >= 0")
    List<SignFamilyRenew> findByTeamCodeIsValid(String teamCode);
}

+ 128 - 50
patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/sign/SignWebService.java

@ -469,58 +469,58 @@ public class SignWebService extends BaseService {
    }
    public JSONObject getSignInfo(String teamCode){
          List<SignFamily> signFamilys = signFamilyDao.findByTeamCodeIsValid(teamCode);
          SignFamily signFamily =null;
          if(signFamilys==null||signFamilys.size()==0){
              throw new RuntimeException("找不到签约关系!");
          }else{
              signFamily = signFamilys.get(0);
;          }
          Patient p = patientService.findByCode(signFamily.getPatient());
          String patient = p.getCode();
          JSONObject resultObject = new JSONObject();
          AdminTeam adminTeam = adminTeamService.getTeam(signFamily.getAdminTeamId());
          //查找到团队领导
          Doctor leader = doctorService.findDoctorByCode(adminTeam.getLeaderCode());
          JSONObject leaderObj = this.doctorParse(leader);
          resultObject.put("leader",leaderObj);
          String doctorHealth = signFamily.getDoctorHealth();
          String doctor = signFamily.getDoctor();
          //签约团队的健管师
          if(StringUtils.isNotBlank(doctorHealth)){
              Doctor health = doctorService.findDoctorByCode(doctorHealth);
              JSONObject healthObj = this.doctorParse(health);
              resultObject.put("doctorHealth",healthObj);
          }
         //签约团队的全科医生
          if(StringUtils.isNotBlank(doctor)){
              Doctor qk = doctorService.findDoctorByCode(doctor);
              JSONObject qkObj = this.doctorParse(qk);
              resultObject.put("doctor",qkObj);
          }
          Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT+08:00"));
          int year = calendar.get(Calendar.YEAR);
          //统计当年咨询数量
          String consult_sql = "select count(1) as count from wlyy_consult_team  w where w.doctor = ? and w.patient =? and YEAR(w.czrq) = ? ";
         //统计随访数量
          String followup_sql = "select count(1) as count from wlyy_followup  w where (w.doctor_code = ? or w.doctor_code =?) and w.patient_code =? and YEAR(w.create_time) = ?  and w.followup_class is not null ";
         //统计待预约数量
          String reservation_sql = "select count(1) as count from wlyy_patient_reservation  w where (w.doctor = ? or w.doctor =?) and w.patient =? and YEAR(w.czrq) = ? ";
        List<SignFamily> signFamilys = signFamilyDao.findByTeamCodeIsValid(teamCode);
        SignFamily signFamily =null;
        if(signFamilys==null||signFamilys.size()==0){
            throw new RuntimeException("找不到签约关系!");
        }else{
            signFamily = signFamilys.get(0);
            ;          }
        Patient p = patientService.findByCode(signFamily.getPatient());
        String patient = p.getCode();
        JSONObject resultObject = new JSONObject();
        AdminTeam adminTeam = adminTeamService.getTeam(signFamily.getAdminTeamId());
        //查找到团队领导
        Doctor leader = doctorService.findDoctorByCode(adminTeam.getLeaderCode());
        JSONObject leaderObj = this.doctorParse(leader);
        resultObject.put("leader",leaderObj);
        String doctorHealth = signFamily.getDoctorHealth();
        String doctor = signFamily.getDoctor();
        //签约团队的健管师
        if(StringUtils.isNotBlank(doctorHealth)){
            Doctor health = doctorService.findDoctorByCode(doctorHealth);
            JSONObject healthObj = this.doctorParse(health);
            resultObject.put("doctorHealth",healthObj);
        }
        //签约团队的全科医生
        if(StringUtils.isNotBlank(doctor)){
            Doctor qk = doctorService.findDoctorByCode(doctor);
            JSONObject qkObj = this.doctorParse(qk);
            resultObject.put("doctor",qkObj);
        }
        Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT+08:00"));
        int year = calendar.get(Calendar.YEAR);
        //统计当年咨询数量
        String consult_sql = "select count(1) as count from wlyy_consult_team  w where w.doctor = ? and w.patient =? and YEAR(w.czrq) = ? ";
        //统计随访数量
        String followup_sql = "select count(1) as count from wlyy_followup  w where (w.doctor_code = ? or w.doctor_code =?) and w.patient_code =? and YEAR(w.create_time) = ?  and w.followup_class is not null ";
        //统计待预约数量
        String reservation_sql = "select count(1) as count from wlyy_patient_reservation  w where (w.doctor = ? or w.doctor =?) and w.patient =? and YEAR(w.czrq) = ? ";
        //统计健康教育数量
          String article_sql = "select count(1) as count from wlyy_health_edu_article_patient  w where (w.doctor = ? or w.doctor =?) and w.patient =? and YEAR(w.czrq) = ? ";
        String article_sql = "select count(1) as count from wlyy_health_edu_article_patient  w where (w.doctor = ? or w.doctor =?) and w.patient =? and YEAR(w.czrq) = ? ";
        //统计健康指导数量
          String guidance_sql = "select count(1) as count from wlyy_patient_health_guidance  w where (w.doctor = ? or w.doctor =?) and w.patient =? and YEAR(w.czrq) = ? ";
          StringBuffer countSql = new StringBuffer();
          countSql.append(consult_sql).append(" union all ").append(followup_sql).append(" union all ").append(reservation_sql).append(" union all ").append(article_sql).append(" union all ").append(guidance_sql);
          List<Map<String, Object>> resultCount  = jdbcTemplate.queryForList(countSql.toString(), new Object[]{doctorHealth, patient, year,doctorHealth,doctor,patient,year,doctorHealth,doctor,patient,year,doctorHealth,doctor,patient,year,doctorHealth,doctor,patient,year});
          resultObject.put("consultNum",resultCount.get(0).get("count"));
          resultObject.put("followupNum",resultCount.get(1).get("count"));
          resultObject.put("reservationNum",resultCount.get(2).get("count"));
          resultObject.put("articleNum",resultCount.get(3).get("count"));
          resultObject.put("guidanceNum",resultCount.get(4).get("count"));
          return resultObject;
        String guidance_sql = "select count(1) as count from wlyy_patient_health_guidance  w where (w.doctor = ? or w.doctor =?) and w.patient =? and YEAR(w.czrq) = ? ";
        StringBuffer countSql = new StringBuffer();
        countSql.append(consult_sql).append(" union all ").append(followup_sql).append(" union all ").append(reservation_sql).append(" union all ").append(article_sql).append(" union all ").append(guidance_sql);
        List<Map<String, Object>> resultCount  = jdbcTemplate.queryForList(countSql.toString(), new Object[]{doctorHealth, patient, year,doctorHealth,doctor,patient,year,doctorHealth,doctor,patient,year,doctorHealth,doctor,patient,year,doctorHealth,doctor,patient,year});
        resultObject.put("consultNum",resultCount.get(0).get("count"));
        resultObject.put("followupNum",resultCount.get(1).get("count"));
        resultObject.put("reservationNum",resultCount.get(2).get("count"));
        resultObject.put("articleNum",resultCount.get(3).get("count"));
        resultObject.put("guidanceNum",resultCount.get(4).get("count"));
        return resultObject;
    }
    private JSONObject doctorParse(Doctor doctor){
@ -1265,4 +1265,82 @@ public class SignWebService extends BaseService {
            messageDao.save(mes);
        }
    }
    public JSONObject getSignInfoOrRenewInfo(String teamCode){
        //签约或续签参数
        String patientCode = null;
        Long adminTeamId = null;
        String doctorHealth = null;
        String doctor =null;
        List<SignFamilyRenew> renews = signFamilyRenewDao.findByTeamCodeIsValid(teamCode);
        if(renews==null&&renews.size()==0){
            List<SignFamily> signFamilys = signFamilyDao.findByTeamCodeIsValid(teamCode);
            if(signFamilys==null||signFamilys.size()==0){
                throw new RuntimeException("找不到签约关系!");
            }else{
                SignFamily signFamily = signFamilys.get(0);
                patientCode = signFamily.getPatient();
                adminTeamId = signFamily.getAdminTeamId();
                doctorHealth = signFamily.getDoctorHealth();
                doctor = signFamily.getDoctor();
            }
        }else{
            SignFamilyRenew renew = renews.get(0);
            patientCode = renew.getPatient();
            adminTeamId = renew.getAdminTeamId();
            doctorHealth = renew.getDoctorHealth();
            doctor = renew.getDoctor();
        }
        Patient p = patientService.findByCode(patientCode);
        String patient = p.getCode();
        JSONObject resultObject = new JSONObject();
        AdminTeam adminTeam = adminTeamService.getTeam(adminTeamId);
        //查找到团队领导
        Doctor leader = doctorService.findDoctorByCode(adminTeam.getLeaderCode());
        JSONObject leaderObj = this.doctorParse(leader);
        resultObject.put("leader",leaderObj);
        //签约团队的健管师
        if(StringUtils.isNotBlank(doctorHealth)){
            Doctor health = doctorService.findDoctorByCode(doctorHealth);
            JSONObject healthObj = this.doctorParse(health);
            resultObject.put("doctorHealth",healthObj);
        }
        //签约团队的全科医生
        if(StringUtils.isNotBlank(doctor)){
            Doctor qk = doctorService.findDoctorByCode(doctor);
            JSONObject qkObj = this.doctorParse(qk);
            resultObject.put("doctor",qkObj);
        }
        Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT+08:00"));
        int year = calendar.get(Calendar.YEAR);
        //统计当年咨询数量
        String consult_sql = "select count(1) as count from wlyy_consult_team  w where w.doctor = ? and w.patient =? and YEAR(w.czrq) = ? ";
        //统计随访数量
        String followup_sql = "select count(1) as count from wlyy_followup  w where (w.doctor_code = ? or w.doctor_code =?) and w.patient_code =? and YEAR(w.create_time) = ?  and w.followup_class is not null ";
        //统计待预约数量
        String reservation_sql = "select count(1) as count from wlyy_patient_reservation  w where (w.doctor = ? or w.doctor =?) and w.patient =? and YEAR(w.czrq) = ? ";
        //统计健康教育数量
        String article_sql = "select count(1) as count from wlyy_health_edu_article_patient  w where (w.doctor = ? or w.doctor =?) and w.patient =? and YEAR(w.czrq) = ? ";
        //统计健康指导数量
        String guidance_sql = "select count(1) as count from wlyy_patient_health_guidance  w where (w.doctor = ? or w.doctor =?) and w.patient =? and YEAR(w.czrq) = ? ";
        StringBuffer countSql = new StringBuffer();
        countSql.append(consult_sql).append(" union all ").append(followup_sql).append(" union all ").append(reservation_sql).append(" union all ").append(article_sql).append(" union all ").append(guidance_sql);
        List<Map<String, Object>> resultCount  = jdbcTemplate.queryForList(countSql.toString(), new Object[]{doctorHealth, patient, year,doctorHealth,doctor,patient,year,doctorHealth,doctor,patient,year,doctorHealth,doctor,patient,year,doctorHealth,doctor,patient,year});
        resultObject.put("consultNum",resultCount.get(0).get("count"));
        resultObject.put("followupNum",resultCount.get(1).get("count"));
        resultObject.put("reservationNum",resultCount.get(2).get("count"));
        resultObject.put("articleNum",resultCount.get(3).get("count"));
        resultObject.put("guidanceNum",resultCount.get(4).get("count"));
        return resultObject;
    }
}

+ 1 - 1
patient-co-wlyy/src/main/java/com/yihu/wlyy/web/patient/sign/PatientSignController.java

@ -254,7 +254,7 @@ public class PatientSignController extends BaseController {
	@RequestMapping("/sign_doctor_info")
	public String getSignDoctorInfo(@RequestParam(required = true,value = "team")String teamCode) {
		try {
			JSONObject resultObj = signWebService.getSignInfo(teamCode);
			JSONObject resultObj = signWebService.getSignInfoOrRenewInfo(teamCode);
			return write(200, "查询成功!", "data", resultObj);
		} catch (Exception ex) {
			error(ex);