|  | @ -10805,5 +10805,267 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return res;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  |     //先调预约核酸检测的接口
 | 
	
		
			
				|  |  |     public Map natAppointment(String mediaCard,String patientId,String name,String cardNo,String cardType,String mobile,
 | 
	
		
			
				|  |  |                                   String firstJobCode,String firstJobName,String secondJobCode,String secondJobName,String natTime,String address,String provinceName,String cityName,String townName,String streetName) throws Exception {
 | 
	
		
			
				|  |  |         BaseNatAppointmentDO baseNatAppointmentDO= new BaseNatAppointmentDO();
 | 
	
		
			
				|  |  |         baseNatAppointmentDO.setMedicare(mediaCard);
 | 
	
		
			
				|  |  |         baseNatAppointmentDO.setName(name);
 | 
	
		
			
				|  |  |         baseNatAppointmentDO.setCardNo(cardNo);
 | 
	
		
			
				|  |  |         baseNatAppointmentDO.setCardType(cardType);
 | 
	
		
			
				|  |  |         baseNatAppointmentDO.setAddress(address);
 | 
	
		
			
				|  |  |         baseNatAppointmentDO.setAppointmentTime(DateUtil.strToDate(natTime,"yyyy-MM-dd hh:mm:ss"));
 | 
	
		
			
				|  |  |         baseNatAppointmentDO.setCityName(cityName);
 | 
	
		
			
				|  |  |         baseNatAppointmentDO.setFirstJobCode(firstJobCode);
 | 
	
		
			
				|  |  |         baseNatAppointmentDO.setFirstJobName(firstJobName);
 | 
	
		
			
				|  |  |         baseNatAppointmentDO.setSecondJobCode(secondJobCode);
 | 
	
		
			
				|  |  |         baseNatAppointmentDO.setSecondJobName(secondJobName);
 | 
	
		
			
				|  |  |         baseNatAppointmentDO.setProvinceName(provinceName);
 | 
	
		
			
				|  |  |         baseNatAppointmentDO.setTownName(townName);
 | 
	
		
			
				|  |  |         baseNatAppointmentDO.setStreetName(streetName);
 | 
	
		
			
				|  |  |         baseNatAppointmentDO.setPatientId(patientId);
 | 
	
		
			
				|  |  |         baseNatAppointmentDO.setIsSuccess("0");
 | 
	
		
			
				|  |  |         baseNatAppointmentDO.setPayStatus("0");
 | 
	
		
			
				|  |  |         baseNatAppointmentDO.setCreateTime(new Date());
 | 
	
		
			
				|  |  |         baseNatAppointmentDO.setMobile(mobile);
 | 
	
		
			
				|  |  |         baseNatAppointmentDO.setInspectionCode("鼻/咽拭子");
 | 
	
		
			
				|  |  |         baseNatAppointmentDO.setInspectionName("鼻/咽拭子");
 | 
	
		
			
				|  |  |         baseNatAppointmentDO.setIcdCode("Z00.000");
 | 
	
		
			
				|  |  |         baseNatAppointmentDO.setChargeCode("361322");
 | 
	
		
			
				|  |  |         baseNatAppointmentDO.setWinNo("6");
 | 
	
		
			
				|  |  |         baseNatAppointmentDO.setDept("3150000");
 | 
	
		
			
				|  |  |         baseNatAppointmentDO.setDeptName("感染疾病科");
 | 
	
		
			
				|  |  |         baseNatAppointmentDO= baseNatAppointmentDao.save(baseNatAppointmentDO);
 | 
	
		
			
				|  |  |         Map<String,Object> returnMap = new HashMap();
 | 
	
		
			
				|  |  |         //先进行核算检测预约
 | 
	
		
			
				|  |  |         String result = entranceService.BS10144("3150000","0001",natTime,mediaCard,name,cardNo,mobile,demoFlag);
 | 
	
		
			
				|  |  |         com.alibaba.fastjson.JSONObject object = com.alibaba.fastjson.JSONObject.parseObject(result);
 | 
	
		
			
				|  |  |         logger.info("核酸检测预约结束"+result);
 | 
	
		
			
				|  |  |         if (object!=null){
 | 
	
		
			
				|  |  |             com.alibaba.fastjson.JSONObject jsonObject = object.getJSONObject("MsgInfo");
 | 
	
		
			
				|  |  |             String Msg = jsonObject.getString("Msg");
 | 
	
		
			
				|  |  |             if (Msg.contains("Error")){
 | 
	
		
			
				|  |  |                 throw new Exception(Msg);
 | 
	
		
			
				|  |  |             }else {
 | 
	
		
			
				|  |  |                 baseNatAppointmentDO.setIsSuccess("1");
 | 
	
		
			
				|  |  |                 baseNatAppointmentDO= baseNatAppointmentDao.save(baseNatAppointmentDO);
 | 
	
		
			
				|  |  |                 returnMap.put("id",baseNatAppointmentDO.getId());
 | 
	
		
			
				|  |  |                 returnMap.put("msg","预约成功");
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }else {
 | 
	
		
			
				|  |  |             returnMap.put("id",baseNatAppointmentDO.getId());
 | 
	
		
			
				|  |  |             returnMap.put("msg","预约失败");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return  returnMap;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  |     //预约核酸成功后通过订单id去挂号生成订单
 | 
	
		
			
				|  |  |     public Map<String,Object> registerAndNatPre(Integer id) throws Exception{
 | 
	
		
			
				|  |  |         BaseNatAppointmentDO baseNatAppointmentDO = baseNatAppointmentDao.findOne(id);
 | 
	
		
			
				|  |  |         Map<String,Object> map = findRandomDoctor();
 | 
	
		
			
				|  |  |         Map<String,Object> returnMap = new HashMap<>();
 | 
	
		
			
				|  |  |         if (baseNatAppointmentDO!=null){
 | 
	
		
			
				|  |  |             net.sf.json.JSONObject jsondate = new JSONObject();
 | 
	
		
			
				|  |  |             jsondate.put("checkPart","鼻/咽拭子");
 | 
	
		
			
				|  |  |             jsondate.put("cardNo",baseNatAppointmentDO.getMedicare());
 | 
	
		
			
				|  |  |             jsondate.put("chargeFlag","2");
 | 
	
		
			
				|  |  |             jsondate.put("chargeCode","361322");
 | 
	
		
			
				|  |  |             jsondate.put("icdCode","Z00.000");
 | 
	
		
			
				|  |  |             jsondate.put("socialNo",baseNatAppointmentDO.getCardNo());
 | 
	
		
			
				|  |  |             jsondate.put("tellPhone",baseNatAppointmentDO.getMobile());
 | 
	
		
			
				|  |  |             jsondate.put("address1",baseNatAppointmentDO.getProvinceName());
 | 
	
		
			
				|  |  |             jsondate.put("address2",baseNatAppointmentDO.getCityName());
 | 
	
		
			
				|  |  |             jsondate.put("address3",baseNatAppointmentDO.getTownName());
 | 
	
		
			
				|  |  |             jsondate.put("address4",baseNatAppointmentDO.getStreetName());
 | 
	
		
			
				|  |  |             jsondate.put("address5","");
 | 
	
		
			
				|  |  |             jsondate.put("area",baseNatAppointmentDO.getAddress());
 | 
	
		
			
				|  |  |             jsondate.put("winNo","6");
 | 
	
		
			
				|  |  |             jsondate.put("target","1");
 | 
	
		
			
				|  |  |             jsondate.put("quantity","1");
 | 
	
		
			
				|  |  |             if("1".equalsIgnoreCase(baseNatAppointmentDO.getIsSuccess())){
 | 
	
		
			
				|  |  |                 logger.info("挂号开始");
 | 
	
		
			
				|  |  |                 String date = DateUtil.dateToStr(new Date(), "yyyy-MM-dd");
 | 
	
		
			
				|  |  |                 if (map!=null){
 | 
	
		
			
				|  |  |                     List<WlyyPatientRegisterDO> patientRegisterDOs = patientRegisterDao.findByPatientAndDateAndDoctorAndDel(baseNatAppointmentDO.getPatientId(), date,map.get("doctorCode").toString() ,1);
 | 
	
		
			
				|  |  |                     net.sf.json.JSONObject rs = new JSONObject();
 | 
	
		
			
				|  |  |                     if (patientRegisterDOs != null && patientRegisterDOs.size() > 0) {
 | 
	
		
			
				|  |  |                         WlyyPatientRegisterDO registerDO = patientRegisterDOs.get(0);
 | 
	
		
			
				|  |  |                         //判断是否已经挂号,如果已经挂号
 | 
	
		
			
				|  |  |                         if (StringUtils.isNotBlank(registerDO.getConNo()) && StringUtils.isNotBlank(registerDO.getRegisterNo())) {
 | 
	
		
			
				|  |  |                             net.sf.json.JSONObject res = new JSONObject();
 | 
	
		
			
				|  |  |                             res.put("@RESULT", "0");
 | 
	
		
			
				|  |  |                             logger.info("已经挂号 res: " + res.toString());
 | 
	
		
			
				|  |  |                             jsondate.put("serialNo",registerDO.getRegisterNo());
 | 
	
		
			
				|  |  |                             jsondate.put("dept",map.get("deptCode").toString());
 | 
	
		
			
				|  |  |                             jsondate.put("doctor",map.get("doctorMappingCode").toString());
 | 
	
		
			
				|  |  |                             baseNatAppointmentDO.setDoctorId(map.get("doctorMappingCode").toString());
 | 
	
		
			
				|  |  |                         }else {
 | 
	
		
			
				|  |  |                             returnMap.put("msg","已经挂号的数据有误");
 | 
	
		
			
				|  |  |                             returnMap.put("status","-1");
 | 
	
		
			
				|  |  |                             returnMap.put("id",baseNatAppointmentDO.getId());
 | 
	
		
			
				|  |  |                             return returnMap;
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                     }else {
 | 
	
		
			
				|  |  |                         rs = entranceService.BS10111(baseNatAppointmentDO.getMedicare(), map.get("doctorMappingCode").toString(), map.get("deptCode").toString(), "31", "6", demoFlag);
 | 
	
		
			
				|  |  |                         net.sf.json.JSONObject res = rs.getJSONObject("resquest");
 | 
	
		
			
				|  |  |                         logger.info("挂号结果 res: " + res.toString());
 | 
	
		
			
				|  |  |                         String rsCode = res.getString("@RESULT");
 | 
	
		
			
				|  |  |                         if ("0".equals(rsCode)) {
 | 
	
		
			
				|  |  |                             //存储挂号号
 | 
	
		
			
				|  |  |                             // {"resquest":{"@RESULT":"0","@MSG":"完成","@serial_no":"47770476","@times":"28"}}
 | 
	
		
			
				|  |  |                             String serialNo = (String) res.get("@serial_no");
 | 
	
		
			
				|  |  |                             String conNo = (String) res.get("@times");
 | 
	
		
			
				|  |  |                             String xtgzh = (String) res.get("@xtgzh");
 | 
	
		
			
				|  |  |                             String realOrder = (String) res.get("@real_order");
 | 
	
		
			
				|  |  |                             logger.info("挂号流水 @serial_no: " + serialNo + " @times: " + conNo);
 | 
	
		
			
				|  |  |                             jsondate.put("serialNo",serialNo);
 | 
	
		
			
				|  |  |                             jsondate.put("dept",map.get("deptCode").toString());
 | 
	
		
			
				|  |  |                             jsondate.put("doctor",map.get("doctorMappingCode").toString());
 | 
	
		
			
				|  |  |                             //存储就诊记录
 | 
	
		
			
				|  |  |                             WlyyPatientRegisterDO registerDO = new WlyyPatientRegisterDO();
 | 
	
		
			
				|  |  |                             // 存储挂号医生与挂号科室
 | 
	
		
			
				|  |  |                             registerDO.setDoctor(map.get("doctorCode").toString());
 | 
	
		
			
				|  |  |                             registerDO.setDoctorName(map.get("doctorName").toString());
 | 
	
		
			
				|  |  |                             registerDO.setDept(map.get("deptCode").toString());
 | 
	
		
			
				|  |  |                             registerDO.setDeptName(map.get("deptName").toString());
 | 
	
		
			
				|  |  |                             registerDO.setRealOrder(realOrder);
 | 
	
		
			
				|  |  |                             registerDO.setXtgzh(xtgzh);
 | 
	
		
			
				|  |  |                             registerDO.setPatient(baseNatAppointmentDO.getPatientId());
 | 
	
		
			
				|  |  |                             registerDO.setPatientName(baseNatAppointmentDO.getName());
 | 
	
		
			
				|  |  |                             //挂号流水号与挂号次数
 | 
	
		
			
				|  |  |                             registerDO.setRegisterNo(serialNo);
 | 
	
		
			
				|  |  |                             registerDO.setConNo(conNo);
 | 
	
		
			
				|  |  |                             registerDO.setCreateTime(new Date());
 | 
	
		
			
				|  |  |                             registerDO.setDel(1);
 | 
	
		
			
				|  |  |                             registerDO.setDate(DateUtil.dateToStr(new Date(), "yyyy-MM-dd"));
 | 
	
		
			
				|  |  |                             patientRegisterDao.save(registerDO);
 | 
	
		
			
				|  |  |                             //保存日志
 | 
	
		
			
				|  |  |                             WlyyHttpLogDO log = new WlyyHttpLogDO();
 | 
	
		
			
				|  |  |                             log.setCode("registerNat");
 | 
	
		
			
				|  |  |                             log.setName("挂号");
 | 
	
		
			
				|  |  |                             log.setPatient(baseNatAppointmentDO.getPatientId());
 | 
	
		
			
				|  |  |                             log.setDoctor(map.get("doctorCode").toString());
 | 
	
		
			
				|  |  |                             log.setResponse(rs.toString());
 | 
	
		
			
				|  |  |                             log.setStatus(rsCode);
 | 
	
		
			
				|  |  |                             log.setCreateTime(new Date());
 | 
	
		
			
				|  |  |                             wlyyHttpLogDao.save(log);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                         } else if ("-2".equals(rsCode)) {
 | 
	
		
			
				|  |  |                             String serialNo = (String) res.get("@serial_no");
 | 
	
		
			
				|  |  |                             String xtgzh = (String) res.get("@xtgzh");
 | 
	
		
			
				|  |  |                             String realOrder = (String) res.get("@real_order");
 | 
	
		
			
				|  |  |                             String conNo = (String) res.get("@times");
 | 
	
		
			
				|  |  |                             jsondate.put("serialNo",serialNo);
 | 
	
		
			
				|  |  |                             jsondate.put("dept",map.get("deptCode").toString());
 | 
	
		
			
				|  |  |                             jsondate.put("doctor",map.get("doctorMappingCode").toString());
 | 
	
		
			
				|  |  |                             logger.info("挂号流水 @serial_no: " + serialNo + " @times: " + conNo);
 | 
	
		
			
				|  |  |                             //存储就诊记录
 | 
	
		
			
				|  |  |                             WlyyPatientRegisterDO registerDO = new WlyyPatientRegisterDO();
 | 
	
		
			
				|  |  |                             registerDO.setDoctor(map.get("doctorCode").toString());
 | 
	
		
			
				|  |  |                             registerDO.setDoctorName(map.get("doctorName").toString());
 | 
	
		
			
				|  |  |                             registerDO.setDept(map.get("deptCode").toString());
 | 
	
		
			
				|  |  |                             registerDO.setDeptName(map.get("deptName").toString());
 | 
	
		
			
				|  |  |                             registerDO.setRealOrder(realOrder);
 | 
	
		
			
				|  |  |                             registerDO.setXtgzh(xtgzh);
 | 
	
		
			
				|  |  |                             registerDO.setPatient(baseNatAppointmentDO.getPatientId());
 | 
	
		
			
				|  |  |                             registerDO.setPatientName(baseNatAppointmentDO.getName());
 | 
	
		
			
				|  |  |                             registerDO.setRegisterNo(serialNo);
 | 
	
		
			
				|  |  |                             registerDO.setConNo(conNo);
 | 
	
		
			
				|  |  |                             registerDO.setCreateTime(new Date());
 | 
	
		
			
				|  |  |                             registerDO.setDate(DateUtil.dateToStr(new Date(), "yyyy-MM-dd"));
 | 
	
		
			
				|  |  |                             patientRegisterDao.save(registerDO);
 | 
	
		
			
				|  |  |                             //保存日志
 | 
	
		
			
				|  |  |                             WlyyHttpLogDO log = new WlyyHttpLogDO();
 | 
	
		
			
				|  |  |                             log.setCode("registerOutPatient");
 | 
	
		
			
				|  |  |                             log.setName("挂号");
 | 
	
		
			
				|  |  |                             log.setPatient(baseNatAppointmentDO.getPatientId());
 | 
	
		
			
				|  |  |                             log.setDoctor(map.get("doctorCode").toString());
 | 
	
		
			
				|  |  |                             log.setResponse(rs.toString());
 | 
	
		
			
				|  |  |                             log.setStatus(rsCode);
 | 
	
		
			
				|  |  |                             log.setCreateTime(new Date());
 | 
	
		
			
				|  |  |                             wlyyHttpLogDao.save(log);
 | 
	
		
			
				|  |  |                         }else {
 | 
	
		
			
				|  |  |                             returnMap.put("msg","请求挂号失败");
 | 
	
		
			
				|  |  |                             returnMap.put("status","-1");
 | 
	
		
			
				|  |  |                             returnMap.put("id",baseNatAppointmentDO.getId());
 | 
	
		
			
				|  |  |                             return returnMap;
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                         baseNatAppointmentDO.setDoctorId(map.get("doctorMappingCode").toString());
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                     logger.info("开单开始");
 | 
	
		
			
				|  |  |                     logger.info("NatPre params:"+jsondate.toString());
 | 
	
		
			
				|  |  |                     com.alibaba.fastjson.JSONArray array = new com.alibaba.fastjson.JSONArray();
 | 
	
		
			
				|  |  |                     array.add(jsondate);
 | 
	
		
			
				|  |  |                     try {
 | 
	
		
			
				|  |  |                         JSONObject jsonObject  = entranceService.BS10112(array.toString(),demoFlag);
 | 
	
		
			
				|  |  |                         //判断返回结果
 | 
	
		
			
				|  |  |                         String prers = jsonObject.getString("@RESULT");
 | 
	
		
			
				|  |  |                         //保存日志
 | 
	
		
			
				|  |  |                         WlyyHttpLogDO log = new WlyyHttpLogDO();
 | 
	
		
			
				|  |  |                         log.setCode("NatAppointment");
 | 
	
		
			
				|  |  |                         log.setName("核酸检测开方");
 | 
	
		
			
				|  |  |                         log.setPatient(baseNatAppointmentDO.getPatientId());
 | 
	
		
			
				|  |  |                         log.setDoctor(map.get("doctorCode").toString());
 | 
	
		
			
				|  |  |                         log.setResponse(jsonObject.toString());
 | 
	
		
			
				|  |  |                         log.setRequest(jsondate.toString());
 | 
	
		
			
				|  |  |                         log.setCreateTime(new Date());
 | 
	
		
			
				|  |  |                         wlyyHttpLogDao.save(log);
 | 
	
		
			
				|  |  |                         if ("0".equals(prers)) {
 | 
	
		
			
				|  |  |                             String realOrder = jsonObject.getString("@real_order");
 | 
	
		
			
				|  |  |                             baseNatAppointmentDO.setRealOrder(realOrder);
 | 
	
		
			
				|  |  |                             baseNatAppointmentDao.save(baseNatAppointmentDO);
 | 
	
		
			
				|  |  |                             String recipeTime = DateUtil.dateToStr(new Date(), "yyyyMMddHHmmss");
 | 
	
		
			
				|  |  |                             String applyDepaName = map.get("deptName").toString();
 | 
	
		
			
				|  |  |                             String voucherNo = jsonObject.getString("@xtgzh0");
 | 
	
		
			
				|  |  |                             String applyDoctorName = map.get("doctorName").toString();
 | 
	
		
			
				|  |  |                             BasePatientDO patientDO = basePatientDao.findById(baseNatAppointmentDO.getPatientId());
 | 
	
		
			
				|  |  |                             String userName = null;
 | 
	
		
			
				|  |  |                             String idcard = null;
 | 
	
		
			
				|  |  |                             if (patientDO != null) {
 | 
	
		
			
				|  |  |                                 userName = patientDO.getName();
 | 
	
		
			
				|  |  |                                 idcard = patientDO.getIdcard();
 | 
	
		
			
				|  |  |                             }
 | 
	
		
			
				|  |  |                             PatientMappingDO patientMappingDO = patientMappingDao.findByPatient(baseNatAppointmentDO.getPatientId());
 | 
	
		
			
				|  |  |                             String userNo = null;
 | 
	
		
			
				|  |  |                             if (patientMappingDO != null) {
 | 
	
		
			
				|  |  |                                 userNo = patientMappingDO.getMappingCode();
 | 
	
		
			
				|  |  |                             }
 | 
	
		
			
				|  |  |                         /*JSONObject jsonObject1 =entranceService.BS15054(patientMappingDO.getMappingCode(),realOrder,demoFlag);
 | 
	
		
			
				|  |  |                         net.sf.json.JSONObject res = jsonObject1.getJSONObject("resquest");
 | 
	
		
			
				|  |  |                         logger.info("获取待结算数据 res: " + res.toString());
 | 
	
		
			
				|  |  |                         String rsCode = res.getString("@RESULT");*/
 | 
	
		
			
				|  |  |                             String free= 80+"";
 | 
	
		
			
				|  |  |                         /*if ("0".equals(rsCode)) {
 | 
	
		
			
				|  |  |                             free = res.getString("@total_charge");
 | 
	
		
			
				|  |  |                         }*/
 | 
	
		
			
				|  |  |                             ylzPayService.msgPush("01", baseNatAppointmentDO.getMedicare(), "01", patientDO.getMobile(), "00", userNo, userName, idcard, voucherNo, applyDepaName, applyDoctorName, recipeTime, free, "1");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                         /*//成功后发送模板消息
 | 
	
		
			
				|  |  |                         sendNatWxTemplat(name,cardNo,mobile,natTime,realOrder,"natAppointmentRemind");*/
 | 
	
		
			
				|  |  |                         }else{
 | 
	
		
			
				|  |  |                             returnMap.put("msg","核酸检测开方失败");
 | 
	
		
			
				|  |  |                             returnMap.put("status","-1");
 | 
	
		
			
				|  |  |                             returnMap.put("id",baseNatAppointmentDO.getId());
 | 
	
		
			
				|  |  |                             return returnMap;
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                     } catch (Exception e) {
 | 
	
		
			
				|  |  |                         e.printStackTrace();
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                     returnMap.put("msg","预约成功");
 | 
	
		
			
				|  |  |                     returnMap.put("status","200");
 | 
	
		
			
				|  |  |                     returnMap.put("id",baseNatAppointmentDO.getId());
 | 
	
		
			
				|  |  |                 }else {
 | 
	
		
			
				|  |  |                     returnMap.put("msg","医生映射表找不到对应信息");
 | 
	
		
			
				|  |  |                     returnMap.put("status","-1");
 | 
	
		
			
				|  |  |                     returnMap.put("id",baseNatAppointmentDO.getId());
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }else{
 | 
	
		
			
				|  |  |                 returnMap.put("msg","该单状态出错:"+baseNatAppointmentDO.getIsSuccess());
 | 
	
		
			
				|  |  |                 returnMap.put("status","-1");
 | 
	
		
			
				|  |  |                 returnMap.put("id",baseNatAppointmentDO.getId());
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return returnMap;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | }
 |