| 
					
				 | 
			
			
				@ -187,8 +187,6 @@ public class SpecialistService{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public MixEnvelop<PatientLabelVO, PatientLabelVO> getPatientByLabel(String doctor, String labelType, String labelCode, Integer page, Integer size){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sql="SELECT " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " p. NAME, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " p. CODE, " + 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -223,7 +221,11 @@ public class SpecialistService{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " ) lb " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " JOIN "+basedb+".wlyy_patient p ON p. CODE = lb.patient " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " JOIN wlyy_specialist_patient_relation s ON s.patient = lb.patient " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " WHERE ( s.doctor ='"+doctor+"' OR s.health_doctor='"+doctor+"' OR s.health_assistant='"+doctor+ "') AND s.status >=0  AND s.sign_status >0"+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " WHERE s.doctor in " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " (SELECT m.doctor_code FROM  wlyy.wlyy_admin_team_member m where m.team_id in " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " (SELECT dt.id FROM  wlyy.wlyy_admin_team dt LEFT JOIN  wlyy.wlyy_admin_team_member watm ON dt.id=watm.team_id " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " WHERE dt.available='1' AND watm.available='1' AND watm.doctor_code='"+doctor+"') AND  m.available='1') "+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " AND s.status >=0  AND s.sign_status >0"+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " LIMIT "+(page-1)*size+","+size; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        System.out.print("日志:"+sql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if("7".equals(labelType)){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -242,13 +244,15 @@ public class SpecialistService{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "JOIN "+basedb+".wlyy_patient_disease_server b ON a.id=b.specialist_relation_code AND b.disease=" +labelCode+" and b.del=1 "+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "JOIN "+basedb+".wlyy_patient c ON a.patient=c.CODE " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "LEFT JOIN "+basedb+".wlyy_sign_patient_label_info d ON a.patient=d.patient AND d.label_type=8 AND d.`status`=1" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " WHERE a.sign_status> 0 AND a.`status`>=0 AND a.doctor='"+doctor+"' OR a.health_assistant= '"+doctor+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "' LIMIT "+(page-1)*size+","+size; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " WHERE a.sign_status> 0 AND a.`status`>=0 " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    "AND a.doctor='"+doctor+"' OR a.health_assistant= '"+doctor+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " AND a.doctor in " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " (SELECT m.doctor_code FROM  wlyy.wlyy_admin_team_member m where m.team_id in " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " (SELECT dt.id FROM  wlyy.wlyy_admin_team dt LEFT JOIN  wlyy.wlyy_admin_team_member watm ON dt.id=watm.team_id " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " WHERE dt.available='1' AND watm.available='1' AND watm.doctor_code='"+doctor+"') AND  m.available='1') "+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " LIMIT "+(page-1)*size+","+size; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<PatientLabelVO> PatientLabelVOs = jdbcTemplate.query(sql,new BeanPropertyRowMapper(PatientLabelVO.class)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return MixEnvelop.getSuccess(SpecialistMapping.api_success,PatientLabelVOs); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -616,15 +620,19 @@ public class SpecialistService{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " d.hospital_name AS hospital_name, " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " d.`level` " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " FROM " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " wlyy_specialist_patient_relation r " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " wlyy_specialist.wlyy_specialist_patient_relation r " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " JOIN "+basedb+".wlyy_doctor d ON r.doctor = d.`code` " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " WHERE  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " r.patient ='"+patient+"' " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " AND r.doctor ='"+doctor+"' " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " AND r.doctor in" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " (SELECT m.doctor_code FROM  wlyy.wlyy_admin_team_member m where m.team_id in  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "  (SELECT dt.id FROM  wlyy.wlyy_admin_team dt LEFT JOIN  wlyy.wlyy_admin_team_member watm ON dt.id=watm.team_id  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "  WHERE dt.available='1' AND watm.available='1' AND watm.doctor_code='"+doctor+"') AND  m.available='1')" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " AND r.`status`>=0 " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " AND r.sign_status >0 ) r join "+basedb+".wlyy_patient p on r.patient = p.code order by p.czrq DESC "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<PatientSignInfoVO> patientSignInfoVOs = jdbcTemplate.query(sql,new BeanPropertyRowMapper(PatientSignInfoVO.class)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return MixEnvelop.getSuccess(SpecialistMapping.api_success,patientSignInfoVOs.get(0)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        PatientSignInfoVO patientSignInfoVO = (null != patientSignInfoVOs && patientSignInfoVOs.size() > 0 )? patientSignInfoVOs.get(0):null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return MixEnvelop.getSuccess(SpecialistMapping.api_success, patientSignInfoVO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public MixEnvelop findDoctorAndDoctorHealthBySpecialDoctor(String doctor,String name) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -839,9 +847,15 @@ public class SpecialistService{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 病人的家签信息、专科开通信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param doctorCode 医生code 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param patientCode 病人id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param signStatus 签约状态,待审核:0;未签约:-1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONObject doctorForSpecialistInfo(String doctorCode, String patientCode)  throws Exception{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONObject doctorForSpecialistInfo(String signStatus,String doctorCode, String patientCode)  throws Exception{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject jsonObject = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        SpecialistPatientRelationDO specialistPatientRelationDO = new SpecialistPatientRelationDO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //待审核 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if ("0".equals(signStatus)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            specialistPatientRelationDO = specialistPatientRelationDao.findByDoctorAndPatient(doctorCode, patientCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //1、获取居民基础信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String preSql = "SELECT p.name as name, p.photo as photo,p.idcard as idcard,p.mobile as mobile,p.medicare_number as medicareNumber,p.ssc as ssc," + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " CASE  WHEN wd.name is null THEN '无' ELSE wd.name END as doctorName,CASE  WHEN wd.hospital_name is NULL THEN '无' ELSE wd.hospital_name END as hospitalName,CASE  WHEN wd.mobile is NULL THEN '无' ELSE wd.mobile END as doctorMobole "; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -902,6 +916,118 @@ public class SpecialistService{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return jsonObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 病人的家签信息、专科开通信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param doctorCode 医生code 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param patientCode 病人id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param signStatus 签约状态,待审核:0;未签约:-1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONObject doctorForSpecialistInfoNew(String signStatus,String doctorCode, String patientCode)  throws Exception{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject jsonObject = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        SpecialistPatientRelationDO specialistPatientRelationDO = new SpecialistPatientRelationDO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //待审核 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if ("0".equals(signStatus)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            specialistPatientRelationDO = selectByDoctorAndPatient(doctorCode, patientCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        jsonObject.put("specialistPatientRelationId", null == specialistPatientRelationDO ? null : specialistPatientRelationDO.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //1、获取居民基础信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String preSql = "SELECT p.name as name, p.photo as photo,p.idcard as idcard,p.mobile as mobile,p.medicare_number as medicareNumber,p.ssc as ssc," + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " CASE  WHEN wd.name is null THEN '无' ELSE wd.name END as doctorName,CASE  WHEN wd.hospital_name is NULL THEN '无' ELSE wd.hospital_name END as hospitalName,CASE  WHEN wd.mobile is NULL THEN '无' ELSE wd.mobile END as doctorMobole "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String patientSql = " from " + basedb + ".wlyy_patient p LEFT JOIN " + basedb + ".wlyy_sign_family wsf " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " ON p.code=wsf.patient AND wsf.type='2' AND wsf.status='1' " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " LEFT JOIN " + basedb + ".wlyy_doctor wd ON wsf.doctor =wd.code WHERE p.code='" + patientCode + "'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //一个居民 生效的家签信息只会有一条 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Map<String, Object> map = jdbcTemplate.queryForMap(preSql + patientSql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        map.put("age",IdCardUtil.getAgeForIdcard(map.get("idcard")+"")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sexCode=IdCardUtil.getSexForIdcard_new(map.get("idcard")+""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sexName=""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if("1".equals(sexCode)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sexName="男"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else if("2".equals(sexCode)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sexName="女"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sexName="未知"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        map.put("sex",sexName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        jsonObject.put("patientInfo", map); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //2、获取医生信息(所属医院、科室、姓名) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String doctorSql = "SELECT wd.hospital_name as hospitalName,wd.dept_name as deptName,wd.name as name FROM " + basedb + ".wlyy_doctor wd WHERE wd.code='" + doctorCode + "'";; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if("0".equals(signStatus)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            doctorSql="SELECT wd.hospital_name as hospitalName,wd.dept_name as deptName,wd.name as name FROM " + basedb + ".wlyy_doctor wd WHERE wd.code='" + specialistPatientRelationDO.getDoctor() + "'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Map<String,Object> result =jdbcTemplate.queryForMap(doctorSql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(doctorCode.equals(specialistPatientRelationDO.getDoctor())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result.put("buttonShowFlag",true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result.put("buttonShowFlag",false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        jsonObject.put("doctorInfo", result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //3、获取该医生所属团队及团队成员信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String teamSql = "SELECT at.name teamName, tm.team_id , tm.doctor_code, wd.NAME as doctorName  FROM " + basedb + ".wlyy_doctor wd LEFT JOIN  " + basedb + ".wlyy_admin_team_member tm ON wd. CODE = tm.doctor_code, " + basedb + ".wlyy_admin_team at " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "WHERE tm.team_id IN ( SELECT watm.team_id teamId FROM  " + basedb + ".wlyy_admin_team_member watm WHERE watm.doctor_code ='" + doctorCode + "'" + " AND watm.available = '1' ) AND tm.available='1' AND `at`.id=tm.team_id"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String, Object>> teamList = jdbcTemplate.queryForList(teamSql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Map<Integer, List<Map<String, Object>>> m = teamList.stream().collect(Collectors.groupingBy(tem -> ((Integer) tem.get("team_id")).intValue(), Collectors.toList())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String, Object>> mapList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for (Integer i : m.keySet()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Map<String, Object> objectMap = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if ("0".equals(signStatus) && i.equals(specialistPatientRelationDO.getTeamCode())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                objectMap.put("checkFlag", true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                objectMap.put("checkFlag", false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            objectMap.put("teamId", i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            objectMap.put("teamName", m.get(i).get(0).get("teamName")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            objectMap.put("teamDoctors", m.get(i)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //获取专科团队疾病标签 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String disSql = "SELECT wtdr.disease_code, wtdr.disease_name from  wlyy.wlyy_team_disease_relation wtdr WHERE wtdr.team_code ='" + i + "'" +"  AND wtdr.del='1'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //new BeanPropertyRowMapper( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<Map<String, Object>>  stringList = jdbcTemplate.queryForList(disSql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String areaSql = "SELECT wpds.disease FROM wlyy.wlyy_patient_disease_server wpds WHERE wpds.patient='" + patientCode + "'" + " AND wpds.del='1'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<String> signDiseaseList = jdbcTemplate.queryForList(areaSql,String.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Set<String> stringSet =new HashSet<>(signDiseaseList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<String> speciaSignDiseaseList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if("0".equals(signStatus) ){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String speciaSignSql = "SELECT wpds.disease FROM wlyy.wlyy_patient_disease_server wpds WHERE wpds.patient='" + patientCode + "'" + " AND wpds.del='1' and wpds.specialist_relation_code='" + specialistPatientRelationDO.getId() + "'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                speciaSignDiseaseList = jdbcTemplate.queryForList(speciaSignSql,String.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Set<String> speciaSignSet =new HashSet<>(speciaSignDiseaseList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //已签约的疾病状态改成1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            stringList.stream().forEach(item->{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                int status=0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(stringSet.contains( item.get("disease_code"))){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    //已签约过的疾病 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    status=1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(null!=speciaSignSet&& speciaSignSet.contains(item.get("disease_code"))){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    //本次专病签约的疾病 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    status=2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                item.put("status",status) ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            objectMap.put("teamDisease", stringList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            mapList.add(objectMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        jsonObject.put("teamAndDoctors", mapList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //康复情况标签 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String labelSql = "SELECT wspl.label_code,wspl.label_name from  wlyy.wlyy_sign_patient_label wspl WHERE wspl.label_type='8' AND status='1'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String, Object>> signPatientLabelList = jdbcTemplate.queryForList(labelSql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //居民的康复情况 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String patientLabelSql = "SELECT wspl.label from  wlyy.wlyy_sign_patient_label_info wspl WHERE wspl.patient='"+patientCode+"' and  wspl.label_type='8' AND status='1'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<String> patientLabelList = jdbcTemplate.queryForList(patientLabelSql,String.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Set<String> patientLabelSet =new HashSet<>(patientLabelList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        signPatientLabelList.stream().forEach(item->{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            item.put("status",patientLabelSet.contains(item.get("label_code").toString())?1:0) ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        jsonObject.put("signPatientLabels", signPatientLabelList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return jsonObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 专科医生发起签约 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param specialistPatientRelationDO 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -958,21 +1084,33 @@ public class SpecialistService{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 专科-通过手机号码精确搜索注册居民 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param keywords 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public MixEnvelop searchPatientInSpecialistNew(String keywords,Integer page,Integer pageSize) throws Exception{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public MixEnvelop searchPatientInSpecialistNew(String doctorCode,String keywords,Integer page,Integer pageSize) throws Exception{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sql1 = " select count(1) as num "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sql2 = " select p.name as name,p.idcard,p.code,p.photo ,r.sign_status"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sql2 = " select p.name as name,p.idcard,p.code,p.photo"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String whereSql =""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(!StringUtils.isEmpty(keywords)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            whereSql+=" and  p.mobile ='"+keywords+"'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //根据手机号码精确查找居民 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String centerSql =" from "+basedb+".wlyy_patient p LEFT JOIN wlyy_specialist.wlyy_specialist_patient_relation r ON p.code=r.patient where  p.openid IS NOT NULL "+whereSql; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String centerSql =" from "+basedb+".wlyy_patient p /*LEFT JOIN wlyy_specialist.wlyy_specialist_patient_relation r ON p.code=r.patient */where  p.openid IS NOT NULL "+whereSql; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String signSql ="SELECT r.patient,r.sign_status  FROM  wlyy_specialist.wlyy_specialist_patient_relation r WHERE (r.sign_status = '1' or r.sign_status = '0') " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " AND doctor in (SELECT m.doctor_code FROM  "+basedb+".wlyy_admin_team_member m where m.team_id in " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " (SELECT dt.id FROM  "+basedb+".wlyy_admin_team dt LEFT JOIN  "+basedb+".wlyy_admin_team_member watm ON dt.id=watm.team_id " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " WHERE dt.available='1' AND watm.available='1' AND watm.doctor_code='"+doctorCode+"') AND  m.available='1')"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String,Object>> map1=jdbcTemplate.queryForList(signSql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sqlCount=sql1+centerSql; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sql=sql2+centerSql+" LIMIT "+(page-1)*pageSize+","+pageSize; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String,Object>> map = jdbcTemplate.queryForList(sql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String,Object>> countMap = jdbcTemplate.queryForList(sqlCount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //根据居民查找专科签约状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //已签约专科,获取签约信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Map<String,String> patientMap = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(null!=map1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            map1.stream().forEach(temp->{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                patientMap.put(temp.get("patient").toString(),temp.get("sign_status").toString()) ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //未签约,获取居民信息,及专科医生信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String,Object>> resultList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Map m = null; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -983,13 +1121,14 @@ public class SpecialistService{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            m = new HashMap(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            age = IdCardUtil.getAgeForIdcard(one.get("idcard")+""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sex = IdCardUtil.getSexForIdcard_new(one.get("idcard")+""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String patientCode=null==one.get("code")?"":one.get("code").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            m.put("name",one.get("name")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            m.put("age",age); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            m.put("sex",sex); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //1已签约,0待审核,-1未签约或已取消或已拒绝 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(null != one.get("sign_status")&& one.get("sign_status").toString()=="1"){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(patientMap.containsKey(patientCode)&&"1".equals(patientMap.get(patientCode))){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                m.put("sign_status", 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }else if(null != one.get("sign_status")&& one.get("sign_status").toString()=="0"){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }else if(patientMap.containsKey(patientCode)&&"0".equals(patientMap.get(patientCode))){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                m.put("sign_status", 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                m.put("sign_status", -1); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -1008,4 +1147,21 @@ public class SpecialistService{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return MixEnvelop.getSuccessListWithPage(SpecialistMapping.api_success,resultList,page,pageSize,countMap.size()>0?Long.valueOf(countMap.get(0).get("num")+""):0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 根据医生和居民code查询居民与该医生所在团队的待审核专科签约信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param patient 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param doctor 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public SpecialistPatientRelationDO selectByDoctorAndPatient(String doctor,String patient){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sql = "select * from wlyy_specialist.wlyy_specialist_patient_relation r where r.doctor in ( " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " SELECT m.doctor_code  FROM wlyy.wlyy_admin_team_member m " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " WHERE  m.team_id IN ( SELECT dt.id  FROM  wlyy.wlyy_admin_team dt LEFT JOIN wlyy.wlyy_admin_team_member watm ON dt.id = watm.team_id   WHERE " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " dt.available = '1' AND watm.available = '1'  AND watm.doctor_code = '"+doctor+"') AND m.available = '1'  ) and r.patient = '"+patient+"' and r.sign_status=0"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<SpecialistPatientRelationDO> relationDOS = jdbcTemplate.query(sql,new BeanPropertyRowMapper(SpecialistPatientRelationDO.class)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        SpecialistPatientRelationDO specialistPatientRelationDO=null!=relationDOS&&relationDOS.size()>0?relationDOS.get(0):new SpecialistPatientRelationDO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return specialistPatientRelationDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 |