| 
					
				 | 
			
			
				@ -6,6 +6,7 @@ import com.yihu.wlyy.entity.patient.PatientReservation; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.repository.organization.HospitalMappingDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.repository.patient.PatientReservationDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.service.common.account.PatientService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.service.third.jw.JwSmjkService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.util.DateUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.util.SOAPUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.util.SendP2PUtil; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -50,6 +51,136 @@ public class GuahaoXMService implements IGuahaoService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private ObjectMapper objectMapper = new ObjectMapper(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 解析挂号后 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private String CreateOrderAfter(String response,String hospitalId,String hospitalName,String hosDeptId,String hosDeptName,String doctorId,String doctorName,String sectionType,String startTime,String endTime,String patient,String patientName,String cardNo,String clinicCard,String patientPhone,String dname,String dcode) throws Exception 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String code = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(response.startsWith("error")||response.startsWith("System-Error")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            throw new Exception(response); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        else if (response.toLowerCase().startsWith("ok")) {      //预约成功 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // 预约成功,获取预约号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            code = response.replace("OK:", "").replace("ok:", ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        else if(response.split("\\|").length==3){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            code = response.split("\\|")[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            throw new Exception(response); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 查询医生职称和头像 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        GuahaoDoctor doctor =  GetDoctorInfo(doctorId,hospitalId,hosDeptId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 保存预约记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        PatientReservation reservation = new PatientReservation(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        reservation.setCode(code); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        reservation.setCzrq(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        reservation.setType("1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        reservation.setOrgCode(hospitalId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        reservation.setOrgName(hospitalName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        reservation.setDeptCode(hosDeptId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        reservation.setDeptName(hosDeptName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        reservation.setDoctorCode(doctorId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        reservation.setDoctorName(doctorName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        reservation.setDoctorJob(doctor.getTitle()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        reservation.setDoctorPhoto(doctor.getPhoto()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        reservation.setIdcard(cardNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        reservation.setName(patientName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        reservation.setPatient(patient); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        reservation.setPhone(patientPhone); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        reservation.setSectionType(sectionType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        reservation.setSsc(clinicCard); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        reservation.setStartTime(startTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        reservation.setEndTime(endTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        reservation.setStatus(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(StringUtils.isNotBlank(dname)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            reservation.setDname(dname);//代理签约维护待签约人名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(StringUtils.isNotBlank(dcode)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            reservation.setDoctor(dcode);//代理签约维护待签约人编码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            SendP2PUtil.sendP2Pmsg(dcode,patient,"1","我已成功为您预约:"+startTime+","+hospitalName+hosDeptName+doctorName+"医生的号源。您可直接前往医院就诊</br><a name='guahao' href='javascript:void(0)' data-id='"+code+"'>点击查看详情</a>"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 保存预约记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        patientReservationDao.save(reservation); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return code; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 预约排班xml转列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private List<Map<String,Object>> xmlToList(String xml) throws Exception{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String,Object>> re = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isEmpty(xml)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // 请求失败 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            throw new Exception("获取医生排班表失败!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else if (StringUtils.startsWith(xml, "System-Error")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // 调用失败 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            throw new Exception(xml.substring(xml.indexOf(":") + 1, xml.length())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        else if (StringUtils.startsWith(xml, "Error")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // 调用失败 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            throw new Exception(xml.substring(xml.indexOf(":") + 1, xml.length())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Document document = DocumentHelper.parseText(xml); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Element root = document.getRootElement(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(root.element("doctor")!=null)     //包含doctor节点 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            root = root.element("doctor"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<?> child = root.elements(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for (Object o : child) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Element e = (Element) o; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // 日期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String date = e.attributeValue("date"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // a或者p 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String time = e.attributeValue("time"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // 限号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String max = e.attributeValue("max"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // 已使用的号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String used = e.attributeValue("used"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // 1正常、2满号、3已过期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String status = e.attributeValue("status"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Map<String,Object> map = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            map.put("date", date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            map.put("time", time); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            map.put("max", max); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            map.put("used", used); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            map.put("status", status); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // 排班信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<?> sections = e.elements(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<Map<String,String>> arrangeList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for (Object s : sections) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Element section = (Element) s; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                // 限号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String s_max = section.attributeValue("max"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                // 已使用的号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String s_used = section.attributeValue("used"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                // 一次专家坐诊时间段的开始时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String start_time = section.attributeValue("start_time"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                // 结束时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String end_time = section.attributeValue("end_time"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Map<String,String> item = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                item.put("max", s_max); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                item.put("used", s_used); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                item.put("startTime", start_time); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                item.put("endTime", end_time); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                arrangeList.add(item); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            map.put("sections", arrangeList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            re.add(map); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return re; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /***********************************************************************************************************************************************/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 获取医院列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -120,7 +251,6 @@ public class GuahaoXMService implements IGuahaoService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return  re; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 获取科室接口 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -260,7 +390,6 @@ public class GuahaoXMService implements IGuahaoService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * status 0 停诊、1正常、2满号、3已过期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public List<Map<String,Object>> GetDoctorArrange(String hospitalId,String hosDeptId,String doctorId) throws Exception{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String,Object>> re = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONArray params = new JSONArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject param1 = new JSONObject(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -290,63 +419,8 @@ public class GuahaoXMService implements IGuahaoService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        params.put(param5); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String xml = SOAPUtil.post(DOCTOR_ARRANGE, params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isEmpty(xml)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // 请求失败 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            throw new Exception("获取医生排班表失败!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else if (StringUtils.startsWith(xml, "System-Error")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // 调用失败 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            throw new Exception(xml.substring(xml.indexOf(":") + 1, xml.length())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        else if (StringUtils.startsWith(xml, "Error")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // 调用失败 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            throw new Exception(xml.substring(xml.indexOf(":") + 1, xml.length())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Document document = DocumentHelper.parseText(xml); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Element root = document.getRootElement(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<?> child = root.elements(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for (Object o : child) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Element e = (Element) o; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // 日期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String date = e.attributeValue("date"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // a或者p 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String time = e.attributeValue("time"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // 限号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String max = e.attributeValue("max"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // 已使用的号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String used = e.attributeValue("used"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // 1正常、2满号、3已过期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String status = e.attributeValue("status"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Map<String,Object> map = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            map.put("date", date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            map.put("time", time); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            map.put("max", max); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            map.put("used", used); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            map.put("status", status); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // 排班信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<?> sections = e.elements(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<Map<String,String>> arrangeList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for (Object s : sections) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Element section = (Element) s; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                // 限号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String s_max = section.attributeValue("max"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                // 已使用的号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String s_used = section.attributeValue("used"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                // 一次专家坐诊时间段的开始时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String start_time = section.attributeValue("start_time"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                // 结束时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String end_time = section.attributeValue("end_time"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Map<String,String> item = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                item.put("max", s_max); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                item.put("used", s_used); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                item.put("startTime", start_time); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                item.put("endTime", end_time); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                arrangeList.add(item); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            map.put("sections", arrangeList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            re.add(map); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return  re; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return  xmlToList(xml); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -424,9 +498,8 @@ public class GuahaoXMService implements IGuahaoService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 创建挂号单 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * update by linz 新增代签约人的code和name用于转诊预约 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public String CreateOrder(String hospitalId,String hospitalName,String hosDeptId,String hosDeptName,String doctorId,String doctorName,String arrangeDate,String patient,String patientName,String cardNo,String clinicCard,String patientPhone,String dname,String dcode) throws Exception{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public String CreateOrder(String hospitalId,String hospitalName,String hosDeptId,String hosDeptName,String doctorId,String doctorName,String arrangeDate,String patient,String patientName,String cardNo,String clinicCard,String patientPhone) throws Exception{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String re = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Patient p = patientService.findByCode(patient); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -475,62 +548,30 @@ public class GuahaoXMService implements IGuahaoService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            param3.put("value", values[2]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            params.put(param3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String xml = SOAPUtil.post(ORDER_CREATE, params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (StringUtils.isEmpty(xml)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String response = SOAPUtil.post(ORDER_CREATE, params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (StringUtils.isEmpty(response)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                // 请求失败 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                throw new Exception("请求失败!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else if (StringUtils.startsWith(xml, "System-Error")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else if (StringUtils.startsWith(response, "System-Error")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                // 调用失败 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                throw new Exception(xml.substring(xml.indexOf(":") + 1, xml.length())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }  else if (StringUtils.startsWith(xml, "Error")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                throw new Exception(response.substring(response.indexOf(":") + 1, response.length())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }  else if (StringUtils.startsWith(response, "Error")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                // 调用失败 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                throw new Exception(xml.substring(xml.indexOf(":") + 1, xml.length())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                throw new Exception(response.substring(response.indexOf(":") + 1, response.length())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //预约成功 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (xml.toLowerCase().startsWith("ok")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                // 预约成功,获取预约号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String code = xml.replace("OK:", ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                // 查询医生职称和头像 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                GuahaoDoctor doctor =  GetDoctorInfo(doctorId,hospitalId,hosDeptId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                // 保存预约记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                PatientReservation reservation = new PatientReservation(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                reservation.setCode(code); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                reservation.setCzrq(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                reservation.setType("1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                reservation.setOrgCode(hospitalId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                reservation.setOrgName(hospitalName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                reservation.setDeptCode(hosDeptId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                reservation.setDeptName(hosDeptName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                reservation.setDoctorCode(doctorId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                reservation.setDoctorName(doctorName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                reservation.setDoctorJob(doctor.getTitle()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                reservation.setDoctorPhoto(doctor.getPhoto()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                reservation.setIdcard(cardNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                reservation.setName(patientName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                reservation.setPatient(patient); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                reservation.setPhone(patientPhone); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                reservation.setSectionType(sectionType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                reservation.setSsc(clinicCard); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                reservation.setStartTime(startTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                reservation.setEndTime(endTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                reservation.setStatus(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(StringUtils.isNotBlank(dname)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    reservation.setDname(dname);//代理签约维护待签约人名称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(StringUtils.isNotBlank(dcode)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    reservation.setDoctor(dcode);//代理签约维护待签约人编码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    SendP2PUtil.sendP2Pmsg(dcode,patient,"1","我已成功为您预约:"+startTime+","+hospitalName+hosDeptName+doctorName+"医生的号源。您可直接前往医院就诊</br><a name='guahao' href='javascript:void(0)' data-id='"+code+"'>点击查看详情</a>"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                // 保存预约记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                patientReservationDao.save(reservation); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                re = code; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            re = CreateOrderAfter(response,hospitalId,hospitalName,hosDeptId,hosDeptName,doctorId,doctorName,sectionType,startTime,endTime,patient,patientName,cardNo,clinicCard,patientPhone,null,null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            throw new Exception("该排班信息错误或者不存在!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return re; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 取消挂号单 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -977,4 +1018,49 @@ public class GuahaoXMService implements IGuahaoService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            patientReservation.setDoctorJob(guahaoDoctor.getTitle());//职称 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return patientReservation; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    JwSmjkService jwSmjkService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /******************************** 基卫内网服务 ************************************************/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public List<Map<String,Object>> GetDoctorArrangeTenDay(String hospitalId,String hosDeptId,String doctorId) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String strStart = DateUtil.getStringDateShort(); //当前时间; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String strEnd = DateUtil.getNextDay(strStart,11);         //10天预约 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String response = jwSmjkService.getRegDeptSpeDoctorSectionList(hospitalId,hosDeptId,strStart,strEnd,doctorId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return xmlToList(response); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 转诊预约挂号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public String CreateOrderByDoctor(String hospitalId,String hospitalName,String hosDeptId,String hosDeptName,String doctorId,String doctorName,String arrangeDate,String patient,String patientName,String cardNo,String clinicCard,String patientPhone,String dname,String dcode) throws Exception 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String re = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Patient p = patientService.findByCode(patient); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (p == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            throw new Exception("患者信息不存在!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Map<String,String> map = objectMapper.readValue(arrangeDate,Map.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(map.containsKey("sectionType") && map.containsKey("startTime")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String sectionType = map.get("sectionType"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String startTime = map.get("startTime"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String endTime = map.get("endTime"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String response = jwSmjkService.webRegisterByFamily(cardNo,patientName,clinicCard,sectionType,startTime,hospitalId,hosDeptId,hosDeptName,doctorId,doctorName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            re = CreateOrderAfter(response,hospitalId,hospitalName,hosDeptId,hosDeptName,doctorId,doctorName,sectionType,startTime,endTime,patient,patientName,cardNo,clinicCard,patientPhone,dname,dcode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            throw new Exception("该排班信息错误或者不存在!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return re; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 |