|  | @ -20,6 +20,7 @@ import com.yihu.jw.entity.hospital.doctor.WlyyDoctorWorkTimeDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.hospital.doctor.WlyyPatientRegisterTimeDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.hospital.httplog.WlyyHttpLogDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.hospital.mapping.DoctorMappingDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.hospital.message.SystemMessageDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.hospital.prescription.*;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.ylzinfo.OauthYlzConfigDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.file_upload.FileUploadService;
 | 
	
	
		
			
				|  | @ -32,6 +33,7 @@ import com.yihu.jw.hospital.doctor.dao.WlyyDoctorOnlineTimeDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.hospital.httplog.dao.WlyyHttpLogDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.hospital.mapping.service.DoctorMappingService;
 | 
	
		
			
				|  |  | import com.yihu.jw.hospital.mapping.service.PatientMappingService;
 | 
	
		
			
				|  |  | import com.yihu.jw.hospital.message.service.SystemMessageService;
 | 
	
		
			
				|  |  | import com.yihu.jw.hospital.prescription.dao.*;
 | 
	
		
			
				|  |  | import com.yihu.jw.hospital.prescription.service.entrance.EntranceService;
 | 
	
		
			
				|  |  | import com.yihu.jw.org.dao.BaseOrgDao;
 | 
	
	
		
			
				|  | @ -47,6 +49,7 @@ import com.yihu.jw.restmodel.web.MixEnvelop;
 | 
	
		
			
				|  |  | import com.yihu.jw.rm.hospital.BaseHospitalRequestMapping;
 | 
	
		
			
				|  |  | import com.yihu.jw.util.common.IdCardUtil;
 | 
	
		
			
				|  |  | import com.yihu.jw.util.date.DateUtil;
 | 
	
		
			
				|  |  | import com.yihu.jw.wlyy.wlyyhttp.WlyyHttpService;
 | 
	
		
			
				|  |  | import com.yihu.mysql.query.BaseJpaService;
 | 
	
		
			
				|  |  | import com.yihu.utils.security.MD5;
 | 
	
		
			
				|  |  | import com.ylzinfo.ehc.EhcHandler;
 | 
	
	
		
			
				|  | @ -145,7 +148,9 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |     private WlyyInspectionDao wlyyInspectionDao;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private StringRedisTemplate redisTemplate;
 | 
	
		
			
				|  |  |     
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private SystemMessageService systemMessageService;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Value("${demo.flag}")
 | 
	
		
			
				|  |  |     private boolean demoFlag;
 | 
	
	
		
			
				|  | @ -197,14 +202,14 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public List<WlyyPrescriptionVO> findOriginPrescriptionList(String registerSn,String patient,String admNo,boolean demoFlag)throws Exception{
 | 
	
		
			
				|  |  |     public List<WlyyPrescriptionVO> findOriginPrescriptionList(String registerSn,String patient,String realOrder,String admNo,boolean demoFlag)throws Exception{
 | 
	
		
			
				|  |  |         String patNo =patientMappingService.findHisPatNoByPatient(patient);
 | 
	
		
			
				|  |  |         if(StringUtils.isBlank(patNo)){
 | 
	
		
			
				|  |  |             return null;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         //BS16017(String REGISTER_SN,String realOrder,String PAT_NO,String ADM_NO,boolean demoFlag) throws Exception {
 | 
	
		
			
				|  |  |         logger.info("findOriginPrescriptionList: registerSn:"+registerSn+" patient"+patient+" patNo:"+patNo+" admNo:"+admNo);
 | 
	
		
			
				|  |  |         return entranceService.BS16017(registerSn,null,patNo,admNo,demoFlag);
 | 
	
		
			
				|  |  |         logger.info("findOriginPrescriptionList: registerSn:"+registerSn+" patient"+patient+" patNo:"+patNo+" realOrder:"+realOrder+" admNo:"+admNo);
 | 
	
		
			
				|  |  |         return entranceService.BS16017(registerSn,realOrder,patNo,admNo,demoFlag);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
	
		
			
				|  | @ -243,17 +248,22 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |                 " FROM " +
 | 
	
		
			
				|  |  |                 " wlyy_outpatient o " +
 | 
	
		
			
				|  |  |                 " WHERE " +
 | 
	
		
			
				|  |  |                 " o.patient = '"+patient+"' AND o.outpatient_type != '2' ";
 | 
	
		
			
				|  |  |                 " o.patient = ? AND o.outpatient_type != '2' ";
 | 
	
		
			
				|  |  |         List<Object> totalParams = new ArrayList<>();
 | 
	
		
			
				|  |  |         totalParams.add(patient);
 | 
	
		
			
				|  |  |         if(status!=null){
 | 
	
		
			
				|  |  |             totalSql +=  " AND o.status = "+status;
 | 
	
		
			
				|  |  |             totalSql +=  " AND o.status = ? ";
 | 
	
		
			
				|  |  |             totalParams.add(status);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(startTime)){
 | 
	
		
			
				|  |  |             totalSql += " AND create_time >='"+startTime+" 00:00:00'";
 | 
	
		
			
				|  |  |             totalSql += " AND create_time >= ? ";
 | 
	
		
			
				|  |  |             totalParams.add(startTime+" 00:00:00");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(endTime)){
 | 
	
		
			
				|  |  |             totalSql += " AND create_time <='"+endTime+" 23:59:59' ";
 | 
	
		
			
				|  |  |             totalSql += " AND create_time <= ? ";
 | 
	
		
			
				|  |  |             totalParams.add(endTime+" 23:59:59");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         List<Map<String, Object>> rstotal = jdbcTemplate.queryForList(totalSql);
 | 
	
		
			
				|  |  |         List<Map<String, Object>> rstotal = jdbcTemplate.queryForList(totalSql,totalParams.toArray());
 | 
	
		
			
				|  |  |         Long count = 0L;
 | 
	
		
			
				|  |  |         if (rstotal != null && rstotal.size() > 0) {
 | 
	
		
			
				|  |  |             count = (Long) rstotal.get(0).get("total");
 | 
	
	
		
			
				|  | @ -291,18 +301,24 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |                 " FROM " +
 | 
	
		
			
				|  |  |                 " wlyy_outpatient o " +
 | 
	
		
			
				|  |  |                 " WHERE " +
 | 
	
		
			
				|  |  |                 " o.patient = '"+patient+"'";
 | 
	
		
			
				|  |  |                 " o.patient = ? ";
 | 
	
		
			
				|  |  |         List<Object> params = new ArrayList<>();
 | 
	
		
			
				|  |  |         params.add(patient);
 | 
	
		
			
				|  |  |         if(status!=null){
 | 
	
		
			
				|  |  |             sql +=  " AND o.status = "+status;
 | 
	
		
			
				|  |  |             sql +=  " AND o.status = ? ";
 | 
	
		
			
				|  |  |             params.add(status);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(startTime)){
 | 
	
		
			
				|  |  |             sql += " AND o.create_time >='"+startTime+" 00:00:00'";
 | 
	
		
			
				|  |  |             sql += " AND o.create_time >= ? ";
 | 
	
		
			
				|  |  |             params.add(startTime+" 00:00:00");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(endTime)){
 | 
	
		
			
				|  |  |             sql += " AND o.create_time <='"+endTime+" 23:59:59'";
 | 
	
		
			
				|  |  |             sql += " AND o.create_time <= ? ";
 | 
	
		
			
				|  |  |             params.add(endTime+" 23:59:59");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         sql += " AND o.outpatient_type != '2' ORDER BY o.create_time DESC LIMIT " + (page - 1) * size + "," + size + " ";
 | 
	
		
			
				|  |  |         List<WlyyOutpatientVO> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper(WlyyOutpatientVO.class));
 | 
	
		
			
				|  |  |         List<WlyyOutpatientVO> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper(WlyyOutpatientVO.class),params.toArray());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         return MixEnvelop.getSuccessListWithPage(BaseHospitalRequestMapping.Prescription.api_success, list, page, size, count);
 | 
	
		
			
				|  |  |     }
 | 
	
	
		
			
				|  | @ -606,7 +622,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |         waitingRoom.setHospitalName(outpatientDO.getHospitalName());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //是否是有协同门诊医生
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(outpatientDO.getDoctor())){
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(outpatientDO.getGeneralDoctor())){
 | 
	
		
			
				|  |  |             waitingRoom.setGeneralDoctor(outpatientDO.getGeneralDoctor());
 | 
	
		
			
				|  |  |             waitingRoom.setGeneralDoctorName(outpatientDO.getGeneralDoctorName());
 | 
	
		
			
				|  |  |         }
 | 
	
	
		
			
				|  | @ -697,6 +713,38 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 prescriptionDao.save(wlyyPrescriptionDO);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             //发送取药系统消息
 | 
	
		
			
				|  |  |             sendPatientGetDrugMes(outpatientDO,wlyyPrescriptionDO);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return true;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public Boolean sendPatientGetDrugMes(WlyyOutpatientDO outpatient,WlyyPrescriptionDO prescriptionDO){
 | 
	
		
			
				|  |  |         try{
 | 
	
		
			
				|  |  |             SystemMessageDO systemMessageDO = new SystemMessageDO();
 | 
	
		
			
				|  |  |             systemMessageDO.setTitle("患者取药");
 | 
	
		
			
				|  |  |             systemMessageDO.setType("7");
 | 
	
		
			
				|  |  |             systemMessageDO.setReceiver(outpatient.getDoctor());
 | 
	
		
			
				|  |  |             systemMessageDO.setReceiverName(outpatient.getDoctorName());
 | 
	
		
			
				|  |  |             systemMessageDO.setRelationCode(outpatient.getId());
 | 
	
		
			
				|  |  |             systemMessageDO.setSender(outpatient.getPatient());
 | 
	
		
			
				|  |  |             systemMessageDO.setSenderName(outpatient.getPatientName());
 | 
	
		
			
				|  |  |             systemMessageDO.setRelationCode(outpatient.getId());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             JSONObject data = new JSONObject();
 | 
	
		
			
				|  |  |             data.put("name",outpatient.getPatientName());
 | 
	
		
			
				|  |  |             data.put("age",IdCardUtil.getAgeForIdcard(outpatient.getIdcard()));
 | 
	
		
			
				|  |  |             data.put("gender",IdCardUtil.getSexForIdcard_new(outpatient.getIdcard()));
 | 
	
		
			
				|  |  |             data.put("recipeType",prescriptionDO.getDispensaryType());
 | 
	
		
			
				|  |  |             data.put("message","患者已完成取药");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             systemMessageDO.setData(data.toString());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             systemMessageService.saveMessage(systemMessageDO);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         }catch (Exception e){
 | 
	
		
			
				|  |  |             logger.error("sendPatientGetDrugMes :"+e.toString());
 | 
	
		
			
				|  |  |             return false;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return true;
 | 
	
		
			
				|  |  |     }
 | 
	
	
		
			
				|  | @ -3051,9 +3099,10 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 获取正在进行中的视频复诊/协同门诊
 | 
	
		
			
				|  |  |      * @param doctor
 | 
	
		
			
				|  |  |      * @param general_doctor
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public List<Map<String,Object>> getVideoPrescriptionByDoctor(String doctor) {
 | 
	
		
			
				|  |  |     public List<Map<String,Object>> getVideoPrescriptionByDoctor(String doctor,String general_doctor) {
 | 
	
		
			
				|  |  |         String sql ="SELECT " +
 | 
	
		
			
				|  |  |                 "room.outpatient_id AS id," +
 | 
	
		
			
				|  |  |                 "room.patient_id AS patient_id," +
 | 
	
	
		
			
				|  | @ -3079,9 +3128,15 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |                 "room.patient_id=patient.id " +
 | 
	
		
			
				|  |  |                 "AND room.outpatient_id=outpatient.id " +
 | 
	
		
			
				|  |  |                 "AND consult.relation_code=outpatient.id " +
 | 
	
		
			
				|  |  |                 "AND consult.status = 0 " +
 | 
	
		
			
				|  |  |                 "AND room.doctor='"+doctor+"' " +
 | 
	
		
			
				|  |  |                 "AND room.consult_type= 2";
 | 
	
		
			
				|  |  |                 "AND consult.status = 0 ";
 | 
	
		
			
				|  |  |         if(StringUtils.isNoneBlank(doctor)){
 | 
	
		
			
				|  |  |             sql = sql +"AND room.doctor='"+doctor+"' " +
 | 
	
		
			
				|  |  |                     "AND room.consult_type= 2";
 | 
	
		
			
				|  |  |         }else if(StringUtils.isNoneBlank(general_doctor)){
 | 
	
		
			
				|  |  |             sql = sql +"AND room.general_doctor='"+general_doctor+"' " +
 | 
	
		
			
				|  |  |                     "AND room.consult_type= 2";
 | 
	
		
			
				|  |  |         }else{}
 | 
	
		
			
				|  |  |         
 | 
	
		
			
				|  |  |     
 | 
	
		
			
				|  |  |         List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
 | 
	
		
			
				|  |  |         if(list!=null&&list.size()>0){
 | 
	
	
		
			
				|  | @ -3135,7 +3190,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |                 "AND outpatient.status = 0 " +
 | 
	
		
			
				|  |  |                 "AND room.doctor='"+doctor+"' " +
 | 
	
		
			
				|  |  |                 "AND room.reservation_time is not null " +
 | 
	
		
			
				|  |  |                 "AND room.consult_type= 2 AND room.reservation_time >= '"+DateUtil.dateToStrShort(new Date())+" 00:00:00' order by room.reservation_time DESC ";
 | 
	
		
			
				|  |  |                 "AND room.consult_type= 2 AND room.reservation_time >= '"+DateUtil.dateToStrShort(new Date())+" 00:00:00' order by room.reservation_time ASC ";
 | 
	
		
			
				|  |  | //                "AND room.reservation_time>='"+DateUtil.getStringDate("yyyy-MM-dd")+" 00:00:00"+"' ";
 | 
	
		
			
				|  |  |     
 | 
	
		
			
				|  |  |         List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
 | 
	
	
		
			
				|  | @ -3431,9 +3486,56 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |         //3.创建候诊室
 | 
	
		
			
				|  |  |         createRoom(outpatient,chargeType);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //4.发送协同门诊系统消息
 | 
	
		
			
				|  |  |         sendOutPatientMes(outpatient);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         return outpatient;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 发送新增门诊信息
 | 
	
		
			
				|  |  |      * @param outpatient
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public Boolean sendOutPatientMes(WlyyOutpatientDO outpatient){
 | 
	
		
			
				|  |  |         try{
 | 
	
		
			
				|  |  |             SystemMessageDO systemMessageDO = new SystemMessageDO();
 | 
	
		
			
				|  |  |             //1.在线复诊2.协同门诊
 | 
	
		
			
				|  |  |             if("2".equals(outpatient.getOutpatientType())){
 | 
	
		
			
				|  |  |                 systemMessageDO.setTitle("协同门诊");
 | 
	
		
			
				|  |  |                 systemMessageDO.setType("3");
 | 
	
		
			
				|  |  |             }else{
 | 
	
		
			
				|  |  |                 //1.图文 2.视频
 | 
	
		
			
				|  |  |                 if("1".equals(outpatient.getType())){
 | 
	
		
			
				|  |  |                     systemMessageDO.setTitle("图文复诊");
 | 
	
		
			
				|  |  |                     systemMessageDO.setType("1");
 | 
	
		
			
				|  |  |                 }else {
 | 
	
		
			
				|  |  |                     systemMessageDO.setTitle("视频复诊");
 | 
	
		
			
				|  |  |                     systemMessageDO.setType("2");
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             systemMessageDO.setReceiver(outpatient.getDoctor());
 | 
	
		
			
				|  |  |             systemMessageDO.setReceiverName(outpatient.getDoctorName());
 | 
	
		
			
				|  |  |             systemMessageDO.setRelationCode(outpatient.getId());
 | 
	
		
			
				|  |  |             systemMessageDO.setSender(outpatient.getPatient());
 | 
	
		
			
				|  |  |             systemMessageDO.setSenderName(outpatient.getPatientName());
 | 
	
		
			
				|  |  |             systemMessageDO.setRelationCode(outpatient.getId());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             JSONObject data = new JSONObject();
 | 
	
		
			
				|  |  |             data.put("name",outpatient.getPatientName());
 | 
	
		
			
				|  |  |             data.put("age",IdCardUtil.getAgeForIdcard(outpatient.getIdcard()));
 | 
	
		
			
				|  |  |             data.put("gender",IdCardUtil.getSexForIdcard_new(outpatient.getIdcard()));
 | 
	
		
			
				|  |  |             data.put("question",outpatient.getDescription());
 | 
	
		
			
				|  |  |             systemMessageDO.setData(data.toString());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             systemMessageService.saveMessage(systemMessageDO);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         }catch (Exception e){
 | 
	
		
			
				|  |  |             logger.error("sendOutPatientMes :"+e.toString());
 | 
	
		
			
				|  |  |             return false;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return true;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 指定门诊医生医生
 | 
	
		
			
				|  |  |      * @param outpatientJson
 | 
	
	
		
			
				|  | @ -3529,7 +3631,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                         String salt = UUID.randomUUID().toString().substring(0,5);
 | 
	
		
			
				|  |  |                         String mobile = biz.getString("mobile_phone");
 | 
	
		
			
				|  |  |                         String pw = idcard.substring(mobile.length()-6);
 | 
	
		
			
				|  |  |                         String pw = mobile.substring(mobile.length()-6);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                         patient.setIdcard(idcard);
 | 
	
		
			
				|  |  |                         patient.setName(biz.getString("user_name"));
 |