|  | @ -162,6 +162,8 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |     private HibenateUtils hibenateUtils;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private BaseDoctorPatientFollowDao baseOrgPatientDao;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private WlyyHospitalWorkRuleDao wlyyHospitalWorkRuleDao;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Value("${demo.flag}")
 | 
	
	
		
			
				|  | @ -169,6 +171,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 获取居民就诊记录接口
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param patient
 | 
	
		
			
				|  |  |      * @param startTime
 | 
	
		
			
				|  |  |      * @param endTime
 | 
	
	
		
			
				|  | @ -176,35 +179,36 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public  List<WlyyOutpatientVO> findOutpatientList(String patient, String startTime, String endTime, boolean demoFlag)throws Exception{
 | 
	
		
			
				|  |  |         logger.info("findOutpatientList patient:"+patient);
 | 
	
		
			
				|  |  |         String patNo =patientMappingService.findHisPatNoByPatient(patient);
 | 
	
		
			
				|  |  |         if(StringUtils.isBlank(patNo)){
 | 
	
		
			
				|  |  |     public List<WlyyOutpatientVO> findOutpatientList(String patient, String startTime, String endTime, boolean demoFlag) throws Exception {
 | 
	
		
			
				|  |  |         logger.info("findOutpatientList patient:" + patient);
 | 
	
		
			
				|  |  |         String patNo = patientMappingService.findHisPatNoByPatient(patient);
 | 
	
		
			
				|  |  |         if (StringUtils.isBlank(patNo)) {
 | 
	
		
			
				|  |  |             return null;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         logger.info("findOutpatientList patNo "+patNo);
 | 
	
		
			
				|  |  |         return entranceService.BS30025(patNo,null,startTime,endTime,demoFlag);
 | 
	
		
			
				|  |  |         logger.info("findOutpatientList patNo " + patNo);
 | 
	
		
			
				|  |  |         return entranceService.BS30025(patNo, null, startTime, endTime, demoFlag);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 查询单条门诊记录
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param patient
 | 
	
		
			
				|  |  |      * @param conNo
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public WlyyOutpatientVO findOutpatientInfo(String patient,String conNo)throws Exception{
 | 
	
		
			
				|  |  |         logger.info("findOutpatientList patient:"+patient);
 | 
	
		
			
				|  |  |         String patNo =patientMappingService.findHisPatNoByPatient(patient);
 | 
	
		
			
				|  |  |         if(StringUtils.isBlank(patNo)){
 | 
	
		
			
				|  |  |     public WlyyOutpatientVO findOutpatientInfo(String patient, String conNo) throws Exception {
 | 
	
		
			
				|  |  |         logger.info("findOutpatientList patient:" + patient);
 | 
	
		
			
				|  |  |         String patNo = patientMappingService.findHisPatNoByPatient(patient);
 | 
	
		
			
				|  |  |         if (StringUtils.isBlank(patNo)) {
 | 
	
		
			
				|  |  |             return null;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         logger.info("findOutpatientList patNo:"+patNo);
 | 
	
		
			
				|  |  |         List<WlyyOutpatientVO> list = entranceService.BS30025(patNo,conNo,null,null,demoFlag);
 | 
	
		
			
				|  |  |         logger.info("findOutpatientList patNo:" + patNo);
 | 
	
		
			
				|  |  |         List<WlyyOutpatientVO> list = entranceService.BS30025(patNo, conNo, null, null, demoFlag);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         if(list!=null&&list.size()>0){
 | 
	
		
			
				|  |  |         if (list != null && list.size() > 0) {
 | 
	
		
			
				|  |  |             WlyyOutpatientVO outpatientVO = list.get(0);
 | 
	
		
			
				|  |  |             BasePatientDO patientDO = basePatientDao.findById(patient);
 | 
	
		
			
				|  |  |             outpatientVO.setSex(patientDO.getSex()+"");
 | 
	
		
			
				|  |  |             outpatientVO.setSex(patientDO.getSex() + "");
 | 
	
		
			
				|  |  |             outpatientVO.setBirthday(patientDO.getBirthday());
 | 
	
		
			
				|  |  |             return outpatientVO;
 | 
	
		
			
				|  |  |         }
 | 
	
	
		
			
				|  | @ -214,18 +218,19 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     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)){
 | 
	
		
			
				|  |  |     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+" realOrder:"+realOrder+" admNo:"+admNo);
 | 
	
		
			
				|  |  |         return entranceService.BS16017(registerSn,realOrder,patNo,admNo,demoFlag);
 | 
	
		
			
				|  |  |         logger.info("findOriginPrescriptionList: registerSn:" + registerSn + " patient" + patient + " patNo:" + patNo + " realOrder:" + realOrder + " admNo:" + admNo);
 | 
	
		
			
				|  |  |         return entranceService.BS16017(registerSn, realOrder, patNo, admNo, demoFlag);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 获取单条处方记录
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param registerSn
 | 
	
		
			
				|  |  |      * @param patient
 | 
	
		
			
				|  |  |      * @param admNo
 | 
	
	
		
			
				|  | @ -234,13 +239,13 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public WlyyPrescriptionVO findOriginPrescription(String registerSn, String patient, String admNo, String realOrder, boolean demoFlag)throws Exception{
 | 
	
		
			
				|  |  |         String patNo =patientMappingService.findHisPatNoByPatient(patient);
 | 
	
		
			
				|  |  |         if(StringUtils.isBlank(patNo)){
 | 
	
		
			
				|  |  |     public WlyyPrescriptionVO findOriginPrescription(String registerSn, String patient, String admNo, String realOrder, boolean demoFlag) throws Exception {
 | 
	
		
			
				|  |  |         String patNo = patientMappingService.findHisPatNoByPatient(patient);
 | 
	
		
			
				|  |  |         if (StringUtils.isBlank(patNo)) {
 | 
	
		
			
				|  |  |             return null;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         List<WlyyPrescriptionVO> rs = entranceService.BS16017(registerSn,realOrder,patNo,admNo,demoFlag);
 | 
	
		
			
				|  |  |         if(rs!=null&&rs.size()>0){
 | 
	
		
			
				|  |  |         List<WlyyPrescriptionVO> rs = entranceService.BS16017(registerSn, realOrder, patNo, admNo, demoFlag);
 | 
	
		
			
				|  |  |         if (rs != null && rs.size() > 0) {
 | 
	
		
			
				|  |  |             return rs.get(0);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return null;
 | 
	
	
		
			
				|  | @ -248,13 +253,14 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 获取复诊记录列表
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param patient
 | 
	
		
			
				|  |  |      * @param status
 | 
	
		
			
				|  |  |      * @param page
 | 
	
		
			
				|  |  |      * @param size
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public MixEnvelop findReOutpatientList(String patient,Integer status,String startTime,String endTime,Integer page,Integer size){
 | 
	
		
			
				|  |  |     public MixEnvelop findReOutpatientList(String patient, Integer status, String startTime, String endTime, Integer page, Integer size) {
 | 
	
		
			
				|  |  |         String totalSql = "SELECT " +
 | 
	
		
			
				|  |  |                 " COUNT(1) AS total " +
 | 
	
		
			
				|  |  |                 " FROM " +
 | 
	
	
		
			
				|  | @ -263,24 +269,24 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |                 " o.patient = ? AND o.outpatient_type != '2' ";
 | 
	
		
			
				|  |  |         List<Object> totalParams = new ArrayList<>();
 | 
	
		
			
				|  |  |         totalParams.add(patient);
 | 
	
		
			
				|  |  |         if(status!=null){
 | 
	
		
			
				|  |  |             totalSql +=  " AND o.status = ? ";
 | 
	
		
			
				|  |  |         if (status != null) {
 | 
	
		
			
				|  |  |             totalSql += " AND o.status = ? ";
 | 
	
		
			
				|  |  |             totalParams.add(status);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(startTime)){
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(startTime)) {
 | 
	
		
			
				|  |  |             totalSql += " AND create_time >= ? ";
 | 
	
		
			
				|  |  |             totalParams.add(startTime+" 00:00:00");
 | 
	
		
			
				|  |  |             totalParams.add(startTime + " 00:00:00");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(endTime)){
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(endTime)) {
 | 
	
		
			
				|  |  |             totalSql += " AND create_time <= ? ";
 | 
	
		
			
				|  |  |             totalParams.add(endTime+" 23:59:59");
 | 
	
		
			
				|  |  |             totalParams.add(endTime + " 23:59:59");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         List<Map<String, Object>> rstotal = jdbcTemplate.queryForList(totalSql,totalParams.toArray());
 | 
	
		
			
				|  |  |         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");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         String sql ="SELECT " +
 | 
	
		
			
				|  |  |         String sql = "SELECT " +
 | 
	
		
			
				|  |  |                 " o.id, " +
 | 
	
		
			
				|  |  |                 " o.adm_no AS admNo, " +
 | 
	
		
			
				|  |  |                 " o.origin_adm_no AS originAdmNo, " +
 | 
	
	
		
			
				|  | @ -317,101 +323,102 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |                 " o.patient = ? ";
 | 
	
		
			
				|  |  |         List<Object> params = new ArrayList<>();
 | 
	
		
			
				|  |  |         params.add(patient);
 | 
	
		
			
				|  |  |         if(status!=null){
 | 
	
		
			
				|  |  |             sql +=  " AND o.status = ? ";
 | 
	
		
			
				|  |  |         if (status != null) {
 | 
	
		
			
				|  |  |             sql += " AND o.status = ? ";
 | 
	
		
			
				|  |  |             params.add(status);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(startTime)){
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(startTime)) {
 | 
	
		
			
				|  |  |             sql += " AND o.create_time >= ? ";
 | 
	
		
			
				|  |  |             params.add(startTime+" 00:00:00");
 | 
	
		
			
				|  |  |             params.add(startTime + " 00:00:00");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(endTime)){
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(endTime)) {
 | 
	
		
			
				|  |  |             sql += " AND o.create_time <= ? ";
 | 
	
		
			
				|  |  |             params.add(endTime+" 23:59:59");
 | 
	
		
			
				|  |  |             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),params.toArray());
 | 
	
		
			
				|  |  |         List<WlyyOutpatientVO> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper(WlyyOutpatientVO.class), params.toArray());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         return MixEnvelop.getSuccessListWithPage(BaseHospitalRequestMapping.Prescription.api_success, list, page, size, count);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 获取单条复诊记录信息
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param outpatientId
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public com.alibaba.fastjson.JSONObject findReOutpatientInfo(String outpatientId,String prescriptionId){
 | 
	
		
			
				|  |  |     public com.alibaba.fastjson.JSONObject findReOutpatientInfo(String outpatientId, String prescriptionId) {
 | 
	
		
			
				|  |  |         com.alibaba.fastjson.JSONObject rs = new com.alibaba.fastjson.JSONObject();
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //复诊信息
 | 
	
		
			
				|  |  |         WlyyOutpatientDO outpatientDO = outpatientDao.findOne(outpatientId);
 | 
	
		
			
				|  |  |         rs.put("outpatient",convertToModel(outpatientDO,WlyyOutpatientVO.class));
 | 
	
		
			
				|  |  |         rs.put("outpatient", convertToModel(outpatientDO, WlyyOutpatientVO.class));
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //居民详情
 | 
	
		
			
				|  |  |         BasePatientDO basePatientDO = basePatientDao.findById(outpatientDO.getPatient());
 | 
	
		
			
				|  |  |         rs.put("patientName",basePatientDO.getName());
 | 
	
		
			
				|  |  |         rs.put("photo",basePatientDO.getPhoto());
 | 
	
		
			
				|  |  |         rs.put("patientId",basePatientDO.getId());
 | 
	
		
			
				|  |  |         rs.put("idCard",basePatientDO.getIdcard());
 | 
	
		
			
				|  |  |         rs.put("patientName", basePatientDO.getName());
 | 
	
		
			
				|  |  |         rs.put("photo", basePatientDO.getPhoto());
 | 
	
		
			
				|  |  |         rs.put("patientId", basePatientDO.getId());
 | 
	
		
			
				|  |  |         rs.put("idCard", basePatientDO.getIdcard());
 | 
	
		
			
				|  |  |         rs.put("sex", basePatientDO.getSex());
 | 
	
		
			
				|  |  |         PatientMedicareCardDO cardDO = basePatientMedicareCardDao.findByTypeAndPatientCodeAndDel(PatientMedicareCardDO.Type.MedicareCard.getType(),outpatientDO.getPatient(),"1");
 | 
	
		
			
				|  |  |         rs.put("ssc",cardDO);
 | 
	
		
			
				|  |  |         rs.put("age",IdCardUtil.getAgeForIdcard(basePatientDO.getIdcard()));
 | 
	
		
			
				|  |  |         rs.put("address",basePatientDO.getAddress());
 | 
	
		
			
				|  |  |         rs.put("mobile",basePatientDO.getMobile());
 | 
	
		
			
				|  |  |         rs.put("birthday",DateUtil.dateToStr(basePatientDO.getBirthday(),"yyyy-MM-dd"));
 | 
	
		
			
				|  |  |         PatientMedicareCardDO cardDO = basePatientMedicareCardDao.findByTypeAndPatientCodeAndDel(PatientMedicareCardDO.Type.MedicareCard.getType(), outpatientDO.getPatient(), "1");
 | 
	
		
			
				|  |  |         rs.put("ssc", cardDO);
 | 
	
		
			
				|  |  |         rs.put("age", IdCardUtil.getAgeForIdcard(basePatientDO.getIdcard()));
 | 
	
		
			
				|  |  |         rs.put("address", basePatientDO.getAddress());
 | 
	
		
			
				|  |  |         rs.put("mobile", basePatientDO.getMobile());
 | 
	
		
			
				|  |  |         rs.put("birthday", DateUtil.dateToStr(basePatientDO.getBirthday(), "yyyy-MM-dd"));
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //获取处方信息
 | 
	
		
			
				|  |  |         List<WlyyPrescriptionDO> prescriptionDOs = null;
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(prescriptionId)){
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(prescriptionId)) {
 | 
	
		
			
				|  |  |             prescriptionDOs = prescriptionDao.findById(prescriptionId);
 | 
	
		
			
				|  |  |         }else{
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             prescriptionDOs = prescriptionDao.findByOutpatientId(outpatientId);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         List<WlyyPrescriptionVO> prescriptionVOs = new ArrayList<>();
 | 
	
		
			
				|  |  |         if(prescriptionDOs!=null&&prescriptionDOs.size()>0){
 | 
	
		
			
				|  |  |             convertToModels(prescriptionDOs,prescriptionVOs,WlyyPrescriptionVO.class);
 | 
	
		
			
				|  |  |             for(WlyyPrescriptionVO vo:prescriptionVOs){
 | 
	
		
			
				|  |  |         if (prescriptionDOs != null && prescriptionDOs.size() > 0) {
 | 
	
		
			
				|  |  |             convertToModels(prescriptionDOs, prescriptionVOs, WlyyPrescriptionVO.class);
 | 
	
		
			
				|  |  |             for (WlyyPrescriptionVO vo : prescriptionVOs) {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 //疾病信息
 | 
	
		
			
				|  |  |                 vo.setDiagnosisVOs(findDiagnosisById(vo.getId()));
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 //药品信息
 | 
	
		
			
				|  |  |                 List<WlyyPrescriptionInfoVO> infoVOs = new ArrayList<>();
 | 
	
		
			
				|  |  |                 vo.setInfoVOs(convertToModels(prescriptionInfoDao.findByPrescriptionId(vo.getId()),infoVOs,WlyyPrescriptionInfoVO.class));
 | 
	
		
			
				|  |  |                 vo.setInfoVOs(convertToModels(prescriptionInfoDao.findByPrescriptionId(vo.getId()), infoVOs, WlyyPrescriptionInfoVO.class));
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 //检查检验信息
 | 
	
		
			
				|  |  |                 List<WlyyInspectionVO> inspectionVOs = new ArrayList<>();
 | 
	
		
			
				|  |  |                 vo.setInspectionVOs(convertToModels(wlyyInspectionDao.findByPrescriptionId(vo.getId()),inspectionVOs,WlyyInspectionVO.class));
 | 
	
		
			
				|  |  |                 vo.setInspectionVOs(convertToModels(wlyyInspectionDao.findByPrescriptionId(vo.getId()), inspectionVOs, WlyyInspectionVO.class));
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         rs.put("prescriptions",prescriptionVOs);
 | 
	
		
			
				|  |  |         rs.put("prescriptions", prescriptionVOs);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //物流信息
 | 
	
		
			
				|  |  |         List<WlyyPrescriptionExpressageDO> expressageDOs = prescriptionExpressageDao.findByOutpatientId(outpatientId);
 | 
	
		
			
				|  |  |         if(expressageDOs!=null&&expressageDOs.size()>0){
 | 
	
		
			
				|  |  |             rs.put("expressage",convertToModel(expressageDOs.get(0), WlyyPrescriptionExpressageVO.class));
 | 
	
		
			
				|  |  |         }else{
 | 
	
		
			
				|  |  |             rs.put("expressage",null);
 | 
	
		
			
				|  |  |         if (expressageDOs != null && expressageDOs.size() > 0) {
 | 
	
		
			
				|  |  |             rs.put("expressage", convertToModel(expressageDOs.get(0), WlyyPrescriptionExpressageVO.class));
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             rs.put("expressage", null);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //物流配送新
 | 
	
		
			
				|  |  |         List<WlyyPrescriptionExpressageLogDO>  expressageLogDOs = prescriptionExpressageLogDao.queryByOutpatientIdOrderByCreateTimeDesc(outpatientId);
 | 
	
		
			
				|  |  |         List<WlyyPrescriptionExpressageLogDO> expressageLogDOs = prescriptionExpressageLogDao.queryByOutpatientIdOrderByCreateTimeDesc(outpatientId);
 | 
	
		
			
				|  |  |         List<WlyyPrescriptionExpressageLogVO> expressageLogVOs = new ArrayList<>();
 | 
	
		
			
				|  |  |         if(expressageLogDOs!=null&&expressageLogDOs.size()>0){
 | 
	
		
			
				|  |  |             rs.put("expressageLogs",convertToModels(expressageLogDOs,expressageLogVOs, WlyyPrescriptionExpressageLogVO.class));
 | 
	
		
			
				|  |  |         }else{
 | 
	
		
			
				|  |  |             rs.put("expressageLogs",null);
 | 
	
		
			
				|  |  |         if (expressageLogDOs != null && expressageLogDOs.size() > 0) {
 | 
	
		
			
				|  |  |             rs.put("expressageLogs", convertToModels(expressageLogDOs, expressageLogVOs, WlyyPrescriptionExpressageLogVO.class));
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             rs.put("expressageLogs", null);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //预约记录
 | 
	
		
			
				|  |  |         List<WlyyPatientRegisterTimeDO> timeDOs = patientRegisterTimeDao.findByOutpatientId(outpatientId);
 | 
	
		
			
				|  |  |         if(timeDOs!=null&&timeDOs.size()>0){
 | 
	
		
			
				|  |  |             rs.put("register",timeDOs.get(0));
 | 
	
		
			
				|  |  |         }else{
 | 
	
		
			
				|  |  |             rs.put("register",null);
 | 
	
		
			
				|  |  |         if (timeDOs != null && timeDOs.size() > 0) {
 | 
	
		
			
				|  |  |             rs.put("register", timeDOs.get(0));
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             rs.put("register", null);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         return rs;
 | 
	
	
		
			
				|  | @ -420,6 +427,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 查询历史
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param patient
 | 
	
		
			
				|  |  |      * @param status
 | 
	
		
			
				|  |  |      * @param startTime
 | 
	
	
		
			
				|  | @ -428,24 +436,24 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |      * @param size
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public MixEnvelop findPrescriptionList(String patient, String status,String startTime, String endTime, Integer page, Integer size){
 | 
	
		
			
				|  |  |     public MixEnvelop findPrescriptionList(String patient, String status, String startTime, String endTime, Integer page, Integer size) {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         String totalSql ="SELECT " +
 | 
	
		
			
				|  |  |         String totalSql = "SELECT " +
 | 
	
		
			
				|  |  |                 " count(1) AS total " +
 | 
	
		
			
				|  |  |                 " FROM " +
 | 
	
		
			
				|  |  |                 " wlyy_prescription p ";
 | 
	
		
			
				|  |  |         totalSql += " WHERE 1=1 ";
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(patient)){
 | 
	
		
			
				|  |  |             totalSql+=" AND p.patient_code ='"+patient+"'";
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(patient)) {
 | 
	
		
			
				|  |  |             totalSql += " AND p.patient_code ='" + patient + "'";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(status)){
 | 
	
		
			
				|  |  |             totalSql+=" AND p.status IN ("+status+")";
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(status)) {
 | 
	
		
			
				|  |  |             totalSql += " AND p.status IN (" + status + ")";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(startTime)){
 | 
	
		
			
				|  |  |             totalSql += " AND create_time >='"+startTime+" 00:00:00'";
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(startTime)) {
 | 
	
		
			
				|  |  |             totalSql += " AND create_time >='" + startTime + " 00:00:00'";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(endTime)){
 | 
	
		
			
				|  |  |             totalSql += " AND create_time <='"+endTime+" 23:59:59'";
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(endTime)) {
 | 
	
		
			
				|  |  |             totalSql += " AND create_time <='" + endTime + " 23:59:59'";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         List<Map<String, Object>> rstotal = jdbcTemplate.queryForList(totalSql);
 | 
	
		
			
				|  |  | 
 | 
	
	
		
			
				|  | @ -454,7 +462,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |             count = (Long) rstotal.get(0).get("total");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         String sql ="SELECT " +
 | 
	
		
			
				|  |  |         String sql = "SELECT " +
 | 
	
		
			
				|  |  |                 " p.id, " +
 | 
	
		
			
				|  |  |                 " p.real_order AS realOrder," +
 | 
	
		
			
				|  |  |                 " p.origin_real_order AS originRealOrder," +
 | 
	
	
		
			
				|  | @ -500,70 +508,70 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |                 " FROM " +
 | 
	
		
			
				|  |  |                 " wlyy_prescription p " +
 | 
	
		
			
				|  |  |                 " WHERE 1=1 ";
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(patient)){
 | 
	
		
			
				|  |  |             sql+=" AND p.patient_code ='"+patient+"'";
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(patient)) {
 | 
	
		
			
				|  |  |             sql += " AND p.patient_code ='" + patient + "'";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(status)){
 | 
	
		
			
				|  |  |             sql+=" AND p.status IN ("+status+")";
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(status)) {
 | 
	
		
			
				|  |  |             sql += " AND p.status IN (" + status + ")";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(startTime)){
 | 
	
		
			
				|  |  |             sql += " AND create_time >='"+startTime+" 00:00:00'";
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(startTime)) {
 | 
	
		
			
				|  |  |             sql += " AND create_time >='" + startTime + " 00:00:00'";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(endTime)){
 | 
	
		
			
				|  |  |             sql += " AND create_time <='"+endTime+" 23:59:59'";
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(endTime)) {
 | 
	
		
			
				|  |  |             sql += " AND create_time <='" + endTime + " 23:59:59'";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         sql += " LIMIT " + (page - 1) * size + "," + size + "";
 | 
	
		
			
				|  |  |         List<WlyyPrescriptionVO> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper(WlyyPrescriptionVO.class));
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //设置病种,药品
 | 
	
		
			
				|  |  |         if(list!=null&&list.size()>0){
 | 
	
		
			
				|  |  |             for(WlyyPrescriptionVO vo:list){
 | 
	
		
			
				|  |  |         if (list != null && list.size() > 0) {
 | 
	
		
			
				|  |  |             for (WlyyPrescriptionVO vo : list) {
 | 
	
		
			
				|  |  |                 vo.setDiagnosisVOs(findDiagnosisById(vo.getId()));
 | 
	
		
			
				|  |  |                 List<WlyyPrescriptionInfoVO> infoVOs = new ArrayList<>();
 | 
	
		
			
				|  |  |                 vo.setInfoVOs(convertToModels(prescriptionInfoDao.findByPrescriptionId(vo.getId()),infoVOs,WlyyPrescriptionInfoVO.class));
 | 
	
		
			
				|  |  |                 vo.setInfoVOs(convertToModels(prescriptionInfoDao.findByPrescriptionId(vo.getId()), infoVOs, WlyyPrescriptionInfoVO.class));
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         return MixEnvelop.getSuccessListWithPage(BaseHospitalRequestMapping.Prescription.api_success, list, page, size, count);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public List<WlyyPrescriptionDiagnosisVO> findDiagnosisById(String id){
 | 
	
		
			
				|  |  |     public List<WlyyPrescriptionDiagnosisVO> findDiagnosisById(String id) {
 | 
	
		
			
				|  |  |         List<WlyyPrescriptionDiagnosisDO> list = prescriptionDiagnosisDao.findByPrescriptionId(id);
 | 
	
		
			
				|  |  |         List<WlyyPrescriptionDiagnosisVO> rs = new ArrayList<>();
 | 
	
		
			
				|  |  |         if(list!=null&&list.size()>0){
 | 
	
		
			
				|  |  |             return convertToModels(list,rs,WlyyPrescriptionDiagnosisVO.class);
 | 
	
		
			
				|  |  |         if (list != null && list.size() > 0) {
 | 
	
		
			
				|  |  |             return convertToModels(list, rs, WlyyPrescriptionDiagnosisVO.class);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return rs;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public Map<String,Object> findPrescriptionInfo(String prescriptionId){
 | 
	
		
			
				|  |  |     public Map<String, Object> findPrescriptionInfo(String prescriptionId) {
 | 
	
		
			
				|  |  |         //续方信息
 | 
	
		
			
				|  |  |         Map<String,Object> rs = new HashedMap();
 | 
	
		
			
				|  |  |         Map<String, Object> rs = new HashedMap();
 | 
	
		
			
				|  |  |         WlyyPrescriptionDO wlyyPrescriptionDO = prescriptionDao.findOne(prescriptionId);
 | 
	
		
			
				|  |  |         rs.put("prescription",convertToModel(wlyyPrescriptionDO,WlyyPrescriptionVO.class));
 | 
	
		
			
				|  |  |         rs.put("prescription", convertToModel(wlyyPrescriptionDO, WlyyPrescriptionVO.class));
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //居民详情
 | 
	
		
			
				|  |  |         BasePatientDO basePatientDO = basePatientDao.findById(wlyyPrescriptionDO.getPatientCode());
 | 
	
		
			
				|  |  |         rs.put("patientName",basePatientDO.getName());
 | 
	
		
			
				|  |  |         rs.put("patientId",basePatientDO.getId());
 | 
	
		
			
				|  |  |         rs.put("idCard",basePatientDO.getIdcard());
 | 
	
		
			
				|  |  |         rs.put("patientName", basePatientDO.getName());
 | 
	
		
			
				|  |  |         rs.put("patientId", basePatientDO.getId());
 | 
	
		
			
				|  |  |         rs.put("idCard", basePatientDO.getIdcard());
 | 
	
		
			
				|  |  |         rs.put("sex", basePatientDO.getSex());
 | 
	
		
			
				|  |  |         PatientMedicareCardDO cardDO = basePatientMedicareCardDao.findByTypeAndPatientCodeAndDel(PatientMedicareCardDO.Type.MedicareCard.getType(),wlyyPrescriptionDO.getPatientCode(),"1");
 | 
	
		
			
				|  |  |         rs.put("ssc",cardDO);
 | 
	
		
			
				|  |  |         rs.put("age",IdCardUtil.getAgeForIdcard(basePatientDO.getIdcard()));
 | 
	
		
			
				|  |  |         PatientMedicareCardDO cardDO = basePatientMedicareCardDao.findByTypeAndPatientCodeAndDel(PatientMedicareCardDO.Type.MedicareCard.getType(), wlyyPrescriptionDO.getPatientCode(), "1");
 | 
	
		
			
				|  |  |         rs.put("ssc", cardDO);
 | 
	
		
			
				|  |  |         rs.put("age", IdCardUtil.getAgeForIdcard(basePatientDO.getIdcard()));
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //诊断信息
 | 
	
		
			
				|  |  |         rs.put("diagnosis",findDiagnosisById(wlyyPrescriptionDO.getId()));
 | 
	
		
			
				|  |  |         rs.put("diagnosis", findDiagnosisById(wlyyPrescriptionDO.getId()));
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //药品信息
 | 
	
		
			
				|  |  |         rs.put("infos",prescriptionInfoDao.findByPrescriptionId(wlyyPrescriptionDO.getId()));
 | 
	
		
			
				|  |  |         rs.put("infos", prescriptionInfoDao.findByPrescriptionId(wlyyPrescriptionDO.getId()));
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         return rs;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public Boolean checkPrescription(String patient){
 | 
	
		
			
				|  |  |     public Boolean checkPrescription(String patient) {
 | 
	
		
			
				|  |  |         List<WlyyPrescriptionDO> list = prescriptionDao.findByPatientCode(patient);
 | 
	
		
			
				|  |  |         if(list!=null&&list.size()>0){
 | 
	
		
			
				|  |  |         if (list != null && list.size() > 0) {
 | 
	
		
			
				|  |  |             return false;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return true;
 | 
	
	
		
			
				|  | @ -572,15 +580,16 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 发起图文和视频复诊
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param outpatientJson
 | 
	
		
			
				|  |  |      * @param expressageJson
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public WlyyOutpatientDO appointmentRevisit(String outpatientJson,String expressageJson,String registerJson,String chargeType)throws Exception{
 | 
	
		
			
				|  |  |     public WlyyOutpatientDO appointmentRevisit(String outpatientJson, String expressageJson, String registerJson, String chargeType) throws Exception {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //1.保存就诊实体
 | 
	
		
			
				|  |  |         WlyyOutpatientDO outpatientDO = objectMapper.readValue(outpatientJson,WlyyOutpatientDO.class);
 | 
	
		
			
				|  |  |         WlyyOutpatientDO outpatientDO = objectMapper.readValue(outpatientJson, WlyyOutpatientDO.class);
 | 
	
		
			
				|  |  |         BasePatientDO patientDO = basePatientDao.findById(outpatientDO.getPatient());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         outpatientDO.setMjz("mz");
 | 
	
	
		
			
				|  | @ -590,7 +599,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |         outpatientDO.setOutpatientType("1");
 | 
	
		
			
				|  |  |         outpatientDO.setCreateTime(new Date());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         if(outpatientDO.getRegisterDate()==null){
 | 
	
		
			
				|  |  |         if (outpatientDO.getRegisterDate() == null) {
 | 
	
		
			
				|  |  |             outpatientDO.setRegisterDate(new Date());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
	
		
			
				|  | @ -600,25 +609,25 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             //如果是视频预约咨询
 | 
	
		
			
				|  |  |             if(StringUtils.isNotBlank(registerJson)){
 | 
	
		
			
				|  |  |                 registerTimeDO = objectMapper.readValue(registerJson,WlyyPatientRegisterTimeDO.class);
 | 
	
		
			
				|  |  |             if (StringUtils.isNotBlank(registerJson)) {
 | 
	
		
			
				|  |  |                 registerTimeDO = objectMapper.readValue(registerJson, WlyyPatientRegisterTimeDO.class);
 | 
	
		
			
				|  |  |                 registerTimeDO.setOutpatientId(outpatient.getId());
 | 
	
		
			
				|  |  |                 registerTimeDO.setCreateTime(new Date());
 | 
	
		
			
				|  |  |                 patientRegisterTimeDao.save(registerTimeDO);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }catch (Exception e){
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             throw new RuntimeException("号源已经被预约,请选择其他号源");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //2.物流信息
 | 
	
		
			
				|  |  |         WlyyPrescriptionExpressageDO expressageDO = objectMapper.readValue(expressageJson,WlyyPrescriptionExpressageDO.class);
 | 
	
		
			
				|  |  |         WlyyPrescriptionExpressageDO expressageDO = objectMapper.readValue(expressageJson, WlyyPrescriptionExpressageDO.class);
 | 
	
		
			
				|  |  |         expressageDO.setDel(1);
 | 
	
		
			
				|  |  |         expressageDO.setCreateTime(new Date());
 | 
	
		
			
				|  |  |         expressageDO.setOutpatientId(outpatient.getId());
 | 
	
		
			
				|  |  |         prescriptionExpressageDao.save(expressageDO);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //3.创建候诊室
 | 
	
		
			
				|  |  |         createRoom(outpatient,chargeType);
 | 
	
		
			
				|  |  |         createRoom(outpatient, chargeType);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         return outpatient;
 | 
	
		
			
				|  |  |     }
 | 
	
	
		
			
				|  | @ -626,10 +635,11 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 创建候诊室
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param outpatientDO
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public Boolean createRoom(WlyyOutpatientDO outpatientDO,String chargeType){
 | 
	
		
			
				|  |  |     public Boolean createRoom(WlyyOutpatientDO outpatientDO, String chargeType) {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         WlyyHospitalWaitingRoomDO waitingRoom = new WlyyHospitalWaitingRoomDO();
 | 
	
		
			
				|  |  | 
 | 
	
	
		
			
				|  | @ -639,7 +649,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |         waitingRoom.setHospitalName(outpatientDO.getHospitalName());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //是否是有协同门诊医生
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(outpatientDO.getGeneralDoctor())){
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(outpatientDO.getGeneralDoctor())) {
 | 
	
		
			
				|  |  |             waitingRoom.setGeneralDoctor(outpatientDO.getGeneralDoctor());
 | 
	
		
			
				|  |  |             waitingRoom.setGeneralDoctorName(outpatientDO.getGeneralDoctorName());
 | 
	
		
			
				|  |  |         }
 | 
	
	
		
			
				|  | @ -649,18 +659,18 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |         waitingRoom.setReservationTime(outpatientDO.getRegisterDate());
 | 
	
		
			
				|  |  |         waitingRoom.setVisitStatus(0);
 | 
	
		
			
				|  |  |         //设置复诊类型
 | 
	
		
			
				|  |  |         waitingRoom.setReservationType(StringUtils.isNotBlank(outpatientDO.getOutpatientType())?Integer.parseInt(outpatientDO.getOutpatientType()):1);
 | 
	
		
			
				|  |  |         waitingRoom.setReservationType(StringUtils.isNotBlank(outpatientDO.getOutpatientType()) ? Integer.parseInt(outpatientDO.getOutpatientType()) : 1);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         waitingRoom.setSort(0);
 | 
	
		
			
				|  |  |         waitingRoom.setConsultType(Integer.parseInt(outpatientDO.getType()));
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(outpatientDO.getDoctor())){
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(outpatientDO.getDoctor())) {
 | 
	
		
			
				|  |  |             waitingRoom.setDoctor(outpatientDO.getDoctor());
 | 
	
		
			
				|  |  |             waitingRoom.setDoctorName(outpatientDO.getDoctorName());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         waitingRoom.setOutpatientId(outpatientDO.getId());
 | 
	
		
			
				|  |  |         waitingRoom.setCreateTime(new Date());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(chargeType)){
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(chargeType)) {
 | 
	
		
			
				|  |  |             waitingRoom.setChargeType(chargeType);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
	
		
			
				|  | @ -670,7 +680,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public Boolean cancelPrescription(String prescriptionId){
 | 
	
		
			
				|  |  |     public Boolean cancelPrescription(String prescriptionId) {
 | 
	
		
			
				|  |  |         WlyyPrescriptionDO prescriptionDO = prescriptionDao.findOne(prescriptionId);
 | 
	
		
			
				|  |  |         prescriptionDO.setStatus(-2);
 | 
	
		
			
				|  |  |         return true;
 | 
	
	
		
			
				|  | @ -678,18 +688,18 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      *@param admNo 门诊唯一号
 | 
	
		
			
				|  |  |      * @param admNo     门诊唯一号
 | 
	
		
			
				|  |  |      * @param realOrder 处方号
 | 
	
		
			
				|  |  |      *  @param status 处方状态 1审方失败,2审核完成,3结算完成
 | 
	
		
			
				|  |  |      * @param status    处方状态 1审方失败,2审核完成,3结算完成
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public Map<String,Object> updatePrescriptionByHisStatu(String admNo,String realOrder,String status)throws Exception {
 | 
	
		
			
				|  |  |         Map<String,Object> rs = new HashedMap();
 | 
	
		
			
				|  |  |     public Map<String, Object> updatePrescriptionByHisStatu(String admNo, String realOrder, String status) throws Exception {
 | 
	
		
			
				|  |  |         Map<String, Object> rs = new HashedMap();
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         String sql = "";
 | 
	
		
			
				|  |  |         //status 处方流程状态 ,13  开方失败/调整中,20 诊断完成/开方成功/待支付,已完成:100 已完成
 | 
	
		
			
				|  |  |         //pay_status`:处方结算状态,0为未结算,1为结算成功,默认为0',
 | 
	
		
			
				|  |  |         String outPatientSql="";
 | 
	
		
			
				|  |  |         String outPatientSql = "";
 | 
	
		
			
				|  |  |         if ("1".equals(status)) {
 | 
	
		
			
				|  |  |             sql = "UPDATE base.wlyy_prescription p SET p.`status`='13' WHERE p.adm_no='" + admNo + "' AND p.real_order='" + realOrder + "' ";
 | 
	
		
			
				|  |  |             WlyyPrescriptionDO wlyyPrescriptionDO = prescriptionDao.findByRealOrder(realOrder);
 | 
	
	
		
			
				|  | @ -699,7 +709,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |             //开方成功时候,先用处方号获取本地处方状态是否为开方失败,如果是则需要更新本地的处方
 | 
	
		
			
				|  |  |             sql = "UPDATE base.wlyy_prescription p SET p.`status`='20' WHERE p.adm_no='" + admNo + "' AND p.real_order='" + realOrder + "' ";
 | 
	
		
			
				|  |  |             //变更门诊状态
 | 
	
		
			
				|  |  |             outPatientSql="UPDATE base.wlyy_outpatient p SET p.`status`='2' WHERE p.adm_no='" + admNo + "'";
 | 
	
		
			
				|  |  |             outPatientSql = "UPDATE base.wlyy_outpatient p SET p.`status`='2' WHERE p.adm_no='" + admNo + "'";
 | 
	
		
			
				|  |  |             jdbcTemplate.execute(outPatientSql);
 | 
	
		
			
				|  |  |             jdbcTemplate.execute(sql);
 | 
	
		
			
				|  |  | 
 | 
	
	
		
			
				|  | @ -713,7 +723,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |                 wlyyPrescriptionDO.setPayStatus(1);
 | 
	
		
			
				|  |  |                 wlyyPrescriptionDO.setStatus(100);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 prescriptionLogService.addPrescriptionLog(wlyyPrescriptionDO.getId(),100,2,outpatientDO.getDoctor(),outpatientDO.getDoctorName(),"",new Date());
 | 
	
		
			
				|  |  |                 prescriptionLogService.addPrescriptionLog(wlyyPrescriptionDO.getId(), 100, 2, outpatientDO.getDoctor(), outpatientDO.getDoctorName(), "", new Date());
 | 
	
		
			
				|  |  |                 prescriptionDao.save(wlyyPrescriptionDO);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             } else {
 | 
	
	
		
			
				|  | @ -721,30 +731,30 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |                 wlyyPrescriptionDO.setPayStatus(1);
 | 
	
		
			
				|  |  |                 wlyyPrescriptionDO.setStatus(32);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 try{
 | 
	
		
			
				|  |  |                     WlyyPrescriptionVO vo = findOriginPrescription(outpatientDO.getRegisterNo(),outpatientDO.getPatient(),admNo,realOrder,demoFlag);
 | 
	
		
			
				|  |  |                 try {
 | 
	
		
			
				|  |  |                     WlyyPrescriptionVO vo = findOriginPrescription(outpatientDO.getRegisterNo(), outpatientDO.getPatient(), admNo, realOrder, demoFlag);
 | 
	
		
			
				|  |  |                     wlyyPrescriptionDO.setDispUser(vo.getDispUser());
 | 
	
		
			
				|  |  |                     wlyyPrescriptionDO.setDispUserName(vo.getDispUserName());
 | 
	
		
			
				|  |  |                     wlyyPrescriptionDO.setDispDate(new Date());
 | 
	
		
			
				|  |  |                     prescriptionLogService.addPrescriptionLog(wlyyPrescriptionDO.getId(),32,2,vo.getDispUser(),vo.getDispUserName(),"",new Date());
 | 
	
		
			
				|  |  |                 }catch (Exception e){
 | 
	
		
			
				|  |  |                     logger.error("获取处方信息异常"+e.toString());
 | 
	
		
			
				|  |  |                     prescriptionLogService.addPrescriptionLog(wlyyPrescriptionDO.getId(), 32, 2, vo.getDispUser(), vo.getDispUserName(), "", new Date());
 | 
	
		
			
				|  |  |                 } catch (Exception e) {
 | 
	
		
			
				|  |  |                     logger.error("获取处方信息异常" + e.toString());
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 prescriptionDao.save(wlyyPrescriptionDO);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             //发送取药系统消息
 | 
	
		
			
				|  |  |             SystemMessageDO systemMessageDO = sendPatientGetDrugMes(outpatientDO,wlyyPrescriptionDO);
 | 
	
		
			
				|  |  |             SystemMessageDO systemMessageDO = sendPatientGetDrugMes(outpatientDO, wlyyPrescriptionDO);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             rs.put("mes",systemMessageDO);
 | 
	
		
			
				|  |  |             rs.put("mes", systemMessageDO);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         rs.put("flag",true);
 | 
	
		
			
				|  |  |         rs.put("flag", true);
 | 
	
		
			
				|  |  |         return rs;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public SystemMessageDO sendPatientGetDrugMes(WlyyOutpatientDO outpatient,WlyyPrescriptionDO prescriptionDO){
 | 
	
		
			
				|  |  |     public SystemMessageDO sendPatientGetDrugMes(WlyyOutpatientDO outpatient, WlyyPrescriptionDO prescriptionDO) {
 | 
	
		
			
				|  |  |         SystemMessageDO systemMessageDO = new SystemMessageDO();
 | 
	
		
			
				|  |  |         try{
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             systemMessageDO.setTitle("患者取药");
 | 
	
		
			
				|  |  |             systemMessageDO.setType("7");
 | 
	
	
		
			
				|  | @ -756,37 +766,38 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |             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","患者已完成取药");
 | 
	
		
			
				|  |  |             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());
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             logger.error("sendPatientGetDrugMes :" + e.toString());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return systemMessageDO;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 获取卡记录
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param patient
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public JSONArray findPatientCard(String patient)throws Exception{
 | 
	
		
			
				|  |  |     public JSONArray findPatientCard(String patient) throws Exception {
 | 
	
		
			
				|  |  |         BasePatientDO patientDO = basePatientDao.findById(patient);
 | 
	
		
			
				|  |  |         JSONArray res = entranceService.BS15018(patientDO.getIdcard(),null,demoFlag);
 | 
	
		
			
				|  |  |         JSONArray res = entranceService.BS15018(patientDO.getIdcard(), null, demoFlag);
 | 
	
		
			
				|  |  |         JSONArray rs = new JSONArray();
 | 
	
		
			
				|  |  |         if(res !=null){
 | 
	
		
			
				|  |  |             for (int i =0;i<res.size();i++){
 | 
	
		
			
				|  |  |         if (res != null) {
 | 
	
		
			
				|  |  |             for (int i = 0; i < res.size(); i++) {
 | 
	
		
			
				|  |  |                 JSONObject card = res.getJSONObject(i);
 | 
	
		
			
				|  |  |                 String cardStat = card.getString("CARD_STAT");
 | 
	
		
			
				|  |  |                 if("激活".equals(cardStat)){
 | 
	
		
			
				|  |  |                 if ("激活".equals(cardStat)) {
 | 
	
		
			
				|  |  |                     rs.add(card);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
	
		
			
				|  | @ -795,53 +806,54 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public Map<String,Object> checkOutpatient(String patient)throws Exception{
 | 
	
		
			
				|  |  |     public Map<String, Object> checkOutpatient(String patient) throws Exception {
 | 
	
		
			
				|  |  |         //-1卡余额不足,,-2 存在未结束的诊断热 1成功
 | 
	
		
			
				|  |  |         Map<String,Object> rs = new HashedMap();
 | 
	
		
			
				|  |  |         Map<String, Object> rs = new HashedMap();
 | 
	
		
			
				|  |  |         //1.余额判断改到前端判断
 | 
	
		
			
				|  |  |         //net.sf.json.JSONObject json = entranceService.qutpatientBalance(cardNo,demoFlag);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //2.判断是否有未结束的
 | 
	
		
			
				|  |  |         List<WlyyOutpatientDO> list = outpatientDao.findByPatientList(patient);
 | 
	
		
			
				|  |  |         if(list!=null&&list.size()>0){
 | 
	
		
			
				|  |  |             rs.put("outpatient",list.get(0));
 | 
	
		
			
				|  |  |             rs.put("code",-2);
 | 
	
		
			
				|  |  |             rs.put("mes","存在未结束的诊断");
 | 
	
		
			
				|  |  |         if (list != null && list.size() > 0) {
 | 
	
		
			
				|  |  |             rs.put("outpatient", list.get(0));
 | 
	
		
			
				|  |  |             rs.put("code", -2);
 | 
	
		
			
				|  |  |             rs.put("mes", "存在未结束的诊断");
 | 
	
		
			
				|  |  |             return rs;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         rs.put("code",1);
 | 
	
		
			
				|  |  |         rs.put("mes","验证通过");
 | 
	
		
			
				|  |  |         rs.put("code", 1);
 | 
	
		
			
				|  |  |         rs.put("mes", "验证通过");
 | 
	
		
			
				|  |  |         return rs;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 获取所有医院列表
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public List<BaseOrgVO> findAllHospital(Integer level,String keyWord){
 | 
	
		
			
				|  |  |     
 | 
	
		
			
				|  |  |     public List<BaseOrgVO> findAllHospital(Integer level, String keyWord) {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         if (StringUtils.isNoneEmpty(keyWord)) {
 | 
	
		
			
				|  |  |             keyWord = "%" + keyWord + "%";
 | 
	
		
			
				|  |  |     
 | 
	
		
			
				|  |  |             if(level!=null){
 | 
	
		
			
				|  |  |                 List<BaseOrgDO> list = baseOrgDao.findByLevelAndName(level,"1",keyWord);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             if (level != null) {
 | 
	
		
			
				|  |  |                 List<BaseOrgDO> list = baseOrgDao.findByLevelAndName(level, "1", keyWord);
 | 
	
		
			
				|  |  |                 List<BaseOrgVO> rs = new ArrayList<>();
 | 
	
		
			
				|  |  |                 return convertToModels(list,rs,BaseOrgVO.class);
 | 
	
		
			
				|  |  |             }else {
 | 
	
		
			
				|  |  |                 List<BaseOrgDO> list = baseOrgDao.findByDelAndName("1",keyWord);
 | 
	
		
			
				|  |  |                 return convertToModels(list, rs, BaseOrgVO.class);
 | 
	
		
			
				|  |  |             } else {
 | 
	
		
			
				|  |  |                 List<BaseOrgDO> list = baseOrgDao.findByDelAndName("1", keyWord);
 | 
	
		
			
				|  |  |                 List<BaseOrgVO> rs = new ArrayList<>();
 | 
	
		
			
				|  |  |                 return convertToModels(list,rs,BaseOrgVO.class);
 | 
	
		
			
				|  |  |                 return convertToModels(list, rs, BaseOrgVO.class);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }else{
 | 
	
		
			
				|  |  |     
 | 
	
		
			
				|  |  |             if(level!=null){
 | 
	
		
			
				|  |  |                 List<BaseOrgDO> list = baseOrgDao.findByLevelAndDel(level,"1");
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             if (level != null) {
 | 
	
		
			
				|  |  |                 List<BaseOrgDO> list = baseOrgDao.findByLevelAndDel(level, "1");
 | 
	
		
			
				|  |  |                 List<BaseOrgVO> rs = new ArrayList<>();
 | 
	
		
			
				|  |  |                 return convertToModels(list,rs,BaseOrgVO.class);
 | 
	
		
			
				|  |  |             }else {
 | 
	
		
			
				|  |  |                 return convertToModels(list, rs, BaseOrgVO.class);
 | 
	
		
			
				|  |  |             } else {
 | 
	
		
			
				|  |  |                 List<BaseOrgDO> list = baseOrgDao.findByDel("1");
 | 
	
		
			
				|  |  |                 List<BaseOrgVO> rs = new ArrayList<>();
 | 
	
		
			
				|  |  |                 return convertToModels(list,rs,BaseOrgVO.class);
 | 
	
		
			
				|  |  |                 return convertToModels(list, rs, BaseOrgVO.class);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
	
		
			
				|  | @ -849,24 +861,25 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 获取机构下部门信息
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param orgCode
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public List<DictHospitalDeptVO> findDeptByHospital(String orgCode,String dept,String consultDeptFlag){
 | 
	
		
			
				|  |  |     public List<DictHospitalDeptVO> findDeptByHospital(String orgCode, String dept, String consultDeptFlag) {
 | 
	
		
			
				|  |  |         List<DictHospitalDeptDO> list;
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(consultDeptFlag)&&"1".equals(consultDeptFlag)){
 | 
	
		
			
				|  |  |             list = dictHospitalDeptDao.findByOrgCodeAndConsultDeptFlag(orgCode,consultDeptFlag);
 | 
	
		
			
				|  |  |         }else {
 | 
	
		
			
				|  |  |             list =  dictHospitalDeptDao.findByOrgCodeIn(orgCode);
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(consultDeptFlag) && "1".equals(consultDeptFlag)) {
 | 
	
		
			
				|  |  |             list = dictHospitalDeptDao.findByOrgCodeAndConsultDeptFlag(orgCode, consultDeptFlag);
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             list = dictHospitalDeptDao.findByOrgCodeIn(orgCode);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         List<DictHospitalDeptVO> rs = new ArrayList<>();
 | 
	
		
			
				|  |  |         convertToModels(list,rs,DictHospitalDeptVO.class);
 | 
	
		
			
				|  |  |         if(rs!=null&&rs.size()>0&&StringUtils.isNotBlank(dept)){
 | 
	
		
			
				|  |  |         convertToModels(list, rs, DictHospitalDeptVO.class);
 | 
	
		
			
				|  |  |         if (rs != null && rs.size() > 0 && StringUtils.isNotBlank(dept)) {
 | 
	
		
			
				|  |  |             //排序
 | 
	
		
			
				|  |  |             for(int i=0;i<rs.size();i++){
 | 
	
		
			
				|  |  |             for (int i = 0; i < rs.size(); i++) {
 | 
	
		
			
				|  |  |                 String id = rs.get(i).getCode();
 | 
	
		
			
				|  |  |                 if(dept.equals(id)){
 | 
	
		
			
				|  |  |                     Collections.swap(rs,0,i);
 | 
	
		
			
				|  |  |                 if (dept.equals(id)) {
 | 
	
		
			
				|  |  |                     Collections.swap(rs, 0, i);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
	
		
			
				|  | @ -875,12 +888,13 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 获取医生列表.
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param orgCode
 | 
	
		
			
				|  |  |      * @param dept
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public List<Map<String,Object>> findDoctorByHospitalAndDept(String orgCode,String dept,String chargeType,String doctorCode,String outpatientType,String startDate,String endDate,String key,String consultStatus){
 | 
	
		
			
				|  |  |         String sql ="SELECT " +
 | 
	
		
			
				|  |  |     public List<Map<String, Object>> findDoctorByHospitalAndDept(String orgCode, String dept, String chargeType, String doctorCode, String outpatientType, String startDate, String endDate, String key, String consultStatus) {
 | 
	
		
			
				|  |  |         String sql = "SELECT " +
 | 
	
		
			
				|  |  |                 " d.id, " +
 | 
	
		
			
				|  |  |                 " d.photo, " +
 | 
	
		
			
				|  |  |                 " d.`name`, " +
 | 
	
	
		
			
				|  | @ -896,59 +910,59 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |                 " JOIN base_doctor_hospital h ON h.doctor_code = d.id " +
 | 
	
		
			
				|  |  |                 " WHERE  " +
 | 
	
		
			
				|  |  |                 " 1=1";
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(dept)){
 | 
	
		
			
				|  |  |             sql+= " AND h.dept_code = '"+dept+"'";
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(dept)) {
 | 
	
		
			
				|  |  |             sql += " AND h.dept_code = '" + dept + "'";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(orgCode)){
 | 
	
		
			
				|  |  |             sql+= " AND h.org_code = '"+orgCode+"'";
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(orgCode)) {
 | 
	
		
			
				|  |  |             sql += " AND h.org_code = '" + orgCode + "'";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(chargeType)){
 | 
	
		
			
				|  |  |             if("all".equals(chargeType)){
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(chargeType)) {
 | 
	
		
			
				|  |  |             if ("all".equals(chargeType)) {
 | 
	
		
			
				|  |  |                 //查询全部号源
 | 
	
		
			
				|  |  |             }else{
 | 
	
		
			
				|  |  |                 sql+=" AND d.charge_type ='"+chargeType+"'";
 | 
	
		
			
				|  |  |             } else {
 | 
	
		
			
				|  |  |                 sql += " AND d.charge_type ='" + chargeType + "'";
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }else{
 | 
	
		
			
				|  |  |             sql+=" AND d.charge_type is not null ";
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             sql += " AND d.charge_type is not null ";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(outpatientType)){
 | 
	
		
			
				|  |  |             if("all".equals(outpatientType)){
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(outpatientType)) {
 | 
	
		
			
				|  |  |             if ("all".equals(outpatientType)) {
 | 
	
		
			
				|  |  |                 //查询全部权限
 | 
	
		
			
				|  |  |             }else{
 | 
	
		
			
				|  |  |                 sql+=" AND d.outpatient_type like'%"+outpatientType+"%'";
 | 
	
		
			
				|  |  |             } else {
 | 
	
		
			
				|  |  |                 sql += " AND d.outpatient_type like'%" + outpatientType + "%'";
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }else{
 | 
	
		
			
				|  |  |             sql+=" AND d.outpatient_type is not null ";
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             sql += " AND d.outpatient_type is not null ";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(key)){
 | 
	
		
			
				|  |  |             sql+=" AND (h.dept_name like '%"+key+"%' OR d.name like '%"+key+"%' OR d.expertise like '%"+key+"%') ";
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(key)) {
 | 
	
		
			
				|  |  |             sql += " AND (h.dept_name like '%" + key + "%' OR d.name like '%" + key + "%' OR d.expertise like '%" + key + "%') ";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(consultStatus)){
 | 
	
		
			
				|  |  |             sql+=" AND d.consult_status = '"+consultStatus+"'";
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(consultStatus)) {
 | 
	
		
			
				|  |  |             sql += " AND d.consult_status = '" + consultStatus + "'";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(endDate)&&StringUtils.isNotBlank(startDate)){
 | 
	
		
			
				|  |  |             sql+=" AND EXISTS ( " +
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(endDate) && StringUtils.isNotBlank(startDate)) {
 | 
	
		
			
				|  |  |             sql += " AND EXISTS ( " +
 | 
	
		
			
				|  |  |                     " SELECT " +
 | 
	
		
			
				|  |  |                     "  1 " +
 | 
	
		
			
				|  |  |                     " FROM " +
 | 
	
		
			
				|  |  |                     "  wlyy_doctor_work_time t " +
 | 
	
		
			
				|  |  |                     " WHERE " +
 | 
	
		
			
				|  |  |                     "  t.doctor = d.id " +
 | 
	
		
			
				|  |  |                     " AND t.start_time >='" +startDate+"'" +
 | 
	
		
			
				|  |  |                     " AND t.start_time <='"+endDate+"'"+
 | 
	
		
			
				|  |  |                     " AND t.start_time >='" + startDate + "'" +
 | 
	
		
			
				|  |  |                     " AND t.start_time <='" + endDate + "'" +
 | 
	
		
			
				|  |  |                     " )";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         logger.info("findDoctorByHospitalAndDept sql:"+sql);
 | 
	
		
			
				|  |  |         logger.info("findDoctorByHospitalAndDept sql:" + sql);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
 | 
	
		
			
				|  |  |         List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         if(list!=null&&list.size()>0&&StringUtils.isNotBlank(doctorCode)){
 | 
	
		
			
				|  |  |         if (list != null && list.size() > 0 && StringUtils.isNotBlank(doctorCode)) {
 | 
	
		
			
				|  |  |             //排序
 | 
	
		
			
				|  |  |             for(int i=0;i<list.size();i++){
 | 
	
		
			
				|  |  |                 String id = (String)list.get(i).get("id");
 | 
	
		
			
				|  |  |                 if(doctorCode.equals(id)){
 | 
	
		
			
				|  |  |                     Collections.swap(list,0,i);
 | 
	
		
			
				|  |  |             for (int i = 0; i < list.size(); i++) {
 | 
	
		
			
				|  |  |                 String id = (String) list.get(i).get("id");
 | 
	
		
			
				|  |  |                 if (doctorCode.equals(id)) {
 | 
	
		
			
				|  |  |                     Collections.swap(list, 0, i);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
	
		
			
				|  | @ -958,64 +972,65 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 获取医生列表带排班
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param orgCode
 | 
	
		
			
				|  |  |      * @param dept
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public MixEnvelop findDoctorWithWork(String orgCode,String dept,String chargeType,String doctorCode,String outpatientType,String startDate,String endDate,String key,String consultStatus,Integer page,Integer size){
 | 
	
		
			
				|  |  |     public MixEnvelop findDoctorWithWork(String orgCode, String dept, String chargeType, String doctorCode, String outpatientType, String startDate, String endDate, String key, String consultStatus, Integer page, Integer size) {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         String totalSql ="SELECT " +
 | 
	
		
			
				|  |  |         String totalSql = "SELECT " +
 | 
	
		
			
				|  |  |                 " count(1) AS total " +
 | 
	
		
			
				|  |  |                 " FROM " +
 | 
	
		
			
				|  |  |                 " base_doctor d " +
 | 
	
		
			
				|  |  |                 " JOIN base_doctor_hospital h ON h.doctor_code = d.id " +
 | 
	
		
			
				|  |  |                 " WHERE  " +
 | 
	
		
			
				|  |  |                 " 1=1 ";
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(dept)){
 | 
	
		
			
				|  |  |             totalSql+= " AND h.dept_code = '"+dept+"'";
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(dept)) {
 | 
	
		
			
				|  |  |             totalSql += " AND h.dept_code = '" + dept + "'";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(orgCode)){
 | 
	
		
			
				|  |  |             totalSql+= " AND h.org_code = '"+orgCode+"'";
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(orgCode)) {
 | 
	
		
			
				|  |  |             totalSql += " AND h.org_code = '" + orgCode + "'";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(chargeType)){
 | 
	
		
			
				|  |  |             totalSql+= " AND d.charge_type ='"+chargeType+"'";
 | 
	
		
			
				|  |  |         }else{
 | 
	
		
			
				|  |  |             totalSql+= " AND d.charge_type is not null ";
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(chargeType)) {
 | 
	
		
			
				|  |  |             totalSql += " AND d.charge_type ='" + chargeType + "'";
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             totalSql += " AND d.charge_type is not null ";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(outpatientType)){
 | 
	
		
			
				|  |  |             if(outpatientType.contains("or")){
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(outpatientType)) {
 | 
	
		
			
				|  |  |             if (outpatientType.contains("or")) {
 | 
	
		
			
				|  |  |                 String[] outpatientTypeArray = outpatientType.split("or");
 | 
	
		
			
				|  |  |                 totalSql+= " AND ( ";
 | 
	
		
			
				|  |  |     
 | 
	
		
			
				|  |  |                 totalSql += " AND ( ";
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 for (int i = 0; i < outpatientTypeArray.length; i++) {
 | 
	
		
			
				|  |  |                     totalSql +=" d.outpatient_type like'%"+outpatientTypeArray[i]+"%'";
 | 
	
		
			
				|  |  |                     if(i != outpatientTypeArray.length -1){
 | 
	
		
			
				|  |  |                     totalSql += " d.outpatient_type like'%" + outpatientTypeArray[i] + "%'";
 | 
	
		
			
				|  |  |                     if (i != outpatientTypeArray.length - 1) {
 | 
	
		
			
				|  |  |                         totalSql += " or ";
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 totalSql+= "  ) ";
 | 
	
		
			
				|  |  |             }else{
 | 
	
		
			
				|  |  |                 totalSql+= " AND d.outpatient_type like'%"+outpatientType+"%'";
 | 
	
		
			
				|  |  |                 totalSql += "  ) ";
 | 
	
		
			
				|  |  |             } else {
 | 
	
		
			
				|  |  |                 totalSql += " AND d.outpatient_type like'%" + outpatientType + "%'";
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }else{
 | 
	
		
			
				|  |  |             totalSql+=" AND d.outpatient_type is not null ";
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             totalSql += " AND d.outpatient_type is not null ";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(key)){
 | 
	
		
			
				|  |  |             totalSql+=" AND (h.dept_name like '%"+key+"%' OR d.name like '%"+key+"%' OR d.expertise like '%"+key+"%') ";
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(key)) {
 | 
	
		
			
				|  |  |             totalSql += " AND (h.dept_name like '%" + key + "%' OR d.name like '%" + key + "%' OR d.expertise like '%" + key + "%') ";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(consultStatus)){
 | 
	
		
			
				|  |  |             totalSql+=" AND d.consult_status = '"+consultStatus+"'";
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(consultStatus)) {
 | 
	
		
			
				|  |  |             totalSql += " AND d.consult_status = '" + consultStatus + "'";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(endDate)&&StringUtils.isNotBlank(startDate)){
 | 
	
		
			
				|  |  |             totalSql+=" AND EXISTS ( " +
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(endDate) && StringUtils.isNotBlank(startDate)) {
 | 
	
		
			
				|  |  |             totalSql += " AND EXISTS ( " +
 | 
	
		
			
				|  |  |                     " SELECT " +
 | 
	
		
			
				|  |  |                     "  1 " +
 | 
	
		
			
				|  |  |                     " FROM " +
 | 
	
		
			
				|  |  |                     "  wlyy_doctor_work_time t " +
 | 
	
		
			
				|  |  |                     " WHERE " +
 | 
	
		
			
				|  |  |                     "  t.doctor = d.id " +
 | 
	
		
			
				|  |  |                     " AND t.start_time >='" +startDate+"'" +
 | 
	
		
			
				|  |  |                     " AND t.start_time <='"+endDate+"'"+
 | 
	
		
			
				|  |  |                     " AND t.start_time >='" + startDate + "'" +
 | 
	
		
			
				|  |  |                     " AND t.start_time <='" + endDate + "'" +
 | 
	
		
			
				|  |  |                     " )";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         List<Map<String, Object>> rstotal = jdbcTemplate.queryForList(totalSql);
 | 
	
	
		
			
				|  | @ -1025,7 +1040,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |             count = (Long) rstotal.get(0).get("total");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         String sql ="SELECT " +
 | 
	
		
			
				|  |  |         String sql = "SELECT " +
 | 
	
		
			
				|  |  |                 " d.id, " +
 | 
	
		
			
				|  |  |                 " d.photo, " +
 | 
	
		
			
				|  |  |                 " d.`name`, " +
 | 
	
	
		
			
				|  | @ -1042,72 +1057,72 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |                 " base_doctor d " +
 | 
	
		
			
				|  |  |                 " JOIN base_doctor_hospital h ON h.doctor_code = d.id " +
 | 
	
		
			
				|  |  |                 " WHERE " +
 | 
	
		
			
				|  |  |                 " 1=1" ;
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(dept)){
 | 
	
		
			
				|  |  |             sql+= " AND h.dept_code = '"+dept+"'";
 | 
	
		
			
				|  |  |                 " 1=1";
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(dept)) {
 | 
	
		
			
				|  |  |             sql += " AND h.dept_code = '" + dept + "'";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(orgCode)){
 | 
	
		
			
				|  |  |             sql+= " AND h.org_code = '"+orgCode+"'";
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(orgCode)) {
 | 
	
		
			
				|  |  |             sql += " AND h.org_code = '" + orgCode + "'";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(chargeType)){
 | 
	
		
			
				|  |  |             sql+= " AND d.charge_type ='"+chargeType+"'";
 | 
	
		
			
				|  |  |         }else{
 | 
	
		
			
				|  |  |             sql+= " AND d.charge_type is not null";
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(chargeType)) {
 | 
	
		
			
				|  |  |             sql += " AND d.charge_type ='" + chargeType + "'";
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             sql += " AND d.charge_type is not null";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(outpatientType)){
 | 
	
		
			
				|  |  |             if(outpatientType.contains("or")){
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(outpatientType)) {
 | 
	
		
			
				|  |  |             if (outpatientType.contains("or")) {
 | 
	
		
			
				|  |  |                 String[] outpatientTypeArray = outpatientType.split("or");
 | 
	
		
			
				|  |  |                 sql+= " AND ( ";
 | 
	
		
			
				|  |  |             
 | 
	
		
			
				|  |  |                 sql += " AND ( ";
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 for (int i = 0; i < outpatientTypeArray.length; i++) {
 | 
	
		
			
				|  |  |                     sql +=" d.outpatient_type like'%"+outpatientTypeArray[i]+"%'";
 | 
	
		
			
				|  |  |                     if(i != outpatientTypeArray.length -1){
 | 
	
		
			
				|  |  |                     sql += " d.outpatient_type like'%" + outpatientTypeArray[i] + "%'";
 | 
	
		
			
				|  |  |                     if (i != outpatientTypeArray.length - 1) {
 | 
	
		
			
				|  |  |                         sql += " or ";
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 sql+= " ) ";
 | 
	
		
			
				|  |  |             }else{
 | 
	
		
			
				|  |  |                 sql+= " AND d.outpatient_type like'%"+outpatientType+"%'";
 | 
	
		
			
				|  |  |                 sql += " ) ";
 | 
	
		
			
				|  |  |             } else {
 | 
	
		
			
				|  |  |                 sql += " AND d.outpatient_type like'%" + outpatientType + "%'";
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }else{
 | 
	
		
			
				|  |  |             sql+=" AND d.outpatient_type is not null ";
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             sql += " AND d.outpatient_type is not null ";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(key)){
 | 
	
		
			
				|  |  |             sql+=" AND (h.dept_name like '%"+key+"%' OR d.name like '%"+key+"%' OR d.expertise like '%"+key+"%') ";
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(key)) {
 | 
	
		
			
				|  |  |             sql += " AND (h.dept_name like '%" + key + "%' OR d.name like '%" + key + "%' OR d.expertise like '%" + key + "%') ";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(consultStatus)){
 | 
	
		
			
				|  |  |             sql+=" AND d.consult_status = '"+consultStatus+"'";
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(consultStatus)) {
 | 
	
		
			
				|  |  |             sql += " AND d.consult_status = '" + consultStatus + "'";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(endDate)&&StringUtils.isNotBlank(startDate)){
 | 
	
		
			
				|  |  |             sql+=" AND EXISTS ( " +
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(endDate) && StringUtils.isNotBlank(startDate)) {
 | 
	
		
			
				|  |  |             sql += " AND EXISTS ( " +
 | 
	
		
			
				|  |  |                     " SELECT " +
 | 
	
		
			
				|  |  |                     "  1 " +
 | 
	
		
			
				|  |  |                     " FROM " +
 | 
	
		
			
				|  |  |                     "  wlyy_doctor_work_time t " +
 | 
	
		
			
				|  |  |                     " WHERE " +
 | 
	
		
			
				|  |  |                     "  t.doctor = d.id " +
 | 
	
		
			
				|  |  |                     " AND t.start_time >='" +startDate+"'" +
 | 
	
		
			
				|  |  |                     " AND t.start_time <='"+endDate+"'"+
 | 
	
		
			
				|  |  |                     " AND t.start_time >='" + startDate + "'" +
 | 
	
		
			
				|  |  |                     " AND t.start_time <='" + endDate + "'" +
 | 
	
		
			
				|  |  |                     " )";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         sql += " AND d.del='1' AND d.outpatient_type is not null LIMIT " + (page - 1) * size + "," + size + "";
 | 
	
		
			
				|  |  |         List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
 | 
	
		
			
				|  |  |         if(list!=null&&list.size()>0){
 | 
	
		
			
				|  |  |         List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
 | 
	
		
			
				|  |  |         if (list != null && list.size() > 0) {
 | 
	
		
			
				|  |  |             //获取排班
 | 
	
		
			
				|  |  |             for(Map<String,Object> doctor :list){
 | 
	
		
			
				|  |  |                 String id = (String)doctor.get("id");
 | 
	
		
			
				|  |  |                 List<WlyyDoctorWorkTimeVO> times = findDoctorWorkTime(id);
 | 
	
		
			
				|  |  |                 doctor.put("workTime",times);
 | 
	
		
			
				|  |  |             for (Map<String, Object> doctor : list) {
 | 
	
		
			
				|  |  |                 String id = (String) doctor.get("id");
 | 
	
		
			
				|  |  |                 List<WlyyDoctorWorkTimeVO> times = findDoctorWorkTime(id, orgCode);
 | 
	
		
			
				|  |  |                 doctor.put("workTime", times);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             if(StringUtils.isNotBlank(doctorCode)){
 | 
	
		
			
				|  |  |             if (StringUtils.isNotBlank(doctorCode)) {
 | 
	
		
			
				|  |  |                 //排序
 | 
	
		
			
				|  |  |                 for(int i=0;i<list.size();i++){
 | 
	
		
			
				|  |  |                     String id = (String)list.get(i).get("id");
 | 
	
		
			
				|  |  |                     if(doctorCode.equals(id)){
 | 
	
		
			
				|  |  |                         Collections.swap(list,0,i);
 | 
	
		
			
				|  |  |                 for (int i = 0; i < list.size(); i++) {
 | 
	
		
			
				|  |  |                     String id = (String) list.get(i).get("id");
 | 
	
		
			
				|  |  |                     if (doctorCode.equals(id)) {
 | 
	
		
			
				|  |  |                         Collections.swap(list, 0, i);
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
	
		
			
				|  | @ -1115,8 +1130,29 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |         return MixEnvelop.getSuccessListWithPage(BaseHospitalRequestMapping.Prescription.api_success, list, page, size, count);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public List<WlyyDoctorWorkTimeVO> findDoctorWorkTime(String doctor, String hospital) {
 | 
	
		
			
				|  |  |         List<WlyyHospitalWorkRuleDO> list = wlyyHospitalWorkRuleDao.findByHospital(hospital);
 | 
	
		
			
				|  |  |         if (list != null && list.size() > 0) {
 | 
	
		
			
				|  |  |             WlyyHospitalWorkRuleDO rule = list.get(0);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             Date openTime = DateUtil.strToDate(DateUtil.dateToStr(new Date(), "yyyy-MM-dd") + " " + rule.getMaxDayOpenTime() + ":00", "yyyy-MM-dd HH:mm:ss");
 | 
	
		
			
				|  |  |             Integer openDay = rule.getMaxDay();
 | 
	
		
			
				|  |  |             if (openTime.before(new Date())) {
 | 
	
		
			
				|  |  |                 openDay = openDay - 1;
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             Date endDate = DateUtil.stringToDate(DateUtil.dateToStr(DateUtil.getPreDays(new Date(), openDay), "yyyy-MM-dd") + "23:59:59", "yyyy-MM-dd HH:mm:ss");
 | 
	
		
			
				|  |  |             List<WlyyDoctorWorkTimeVO> timeVOs = new ArrayList<>();
 | 
	
		
			
				|  |  |             List<WlyyDoctorWorkTimeDO> timeDOs = doctorWorkTimeDao.findDoctorWorkTime(doctor, new Date(), endDate);
 | 
	
		
			
				|  |  |             convertToModels(timeDOs, timeVOs, WlyyDoctorWorkTimeVO.class);
 | 
	
		
			
				|  |  |             return timeVOs;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return null;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 查询医生列表带月份排班状态
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param orgCode
 | 
	
		
			
				|  |  |      * @param dept
 | 
	
		
			
				|  |  |      * @param chargeType
 | 
	
	
		
			
				|  | @ -1125,33 +1161,33 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |      * @param size
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public MixEnvelop findDoctorWithMouthWork(String orgCode,String dept,String chargeType,String date,String nameKey,Integer page,Integer size){
 | 
	
		
			
				|  |  |     public MixEnvelop findDoctorWithMouthWork(String orgCode, String dept, String chargeType, String date, String nameKey, Integer page, Integer size) {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         String totalSql ="SELECT " +
 | 
	
		
			
				|  |  |         String totalSql = "SELECT " +
 | 
	
		
			
				|  |  |                 " count(1) AS total " +
 | 
	
		
			
				|  |  |                 " FROM " +
 | 
	
		
			
				|  |  |                 " base_doctor d " +
 | 
	
		
			
				|  |  |                 " JOIN base_doctor_hospital h ON h.doctor_code = d.id " +
 | 
	
		
			
				|  |  |                 " JOIN base_doctor_role r ON r.doctor_code = d.id " +
 | 
	
		
			
				|  |  |                 " WHERE  " +
 | 
	
		
			
				|  |  |                 " h.org_code = '"+orgCode+"'" +
 | 
	
		
			
				|  |  |                 " h.org_code = '" + orgCode + "'" +
 | 
	
		
			
				|  |  |                 " AND r.role_code ='specialist'";
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(chargeType)){
 | 
	
		
			
				|  |  |             if("all".equals(chargeType)){
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(chargeType)) {
 | 
	
		
			
				|  |  |             if ("all".equals(chargeType)) {
 | 
	
		
			
				|  |  |                 //不过滤号别
 | 
	
		
			
				|  |  |             }else{
 | 
	
		
			
				|  |  |                 totalSql+=" AND d.charge_type ='"+chargeType+"'";
 | 
	
		
			
				|  |  |             } else {
 | 
	
		
			
				|  |  |                 totalSql += " AND d.charge_type ='" + chargeType + "'";
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }else{
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             //不传号别过滤不为为空
 | 
	
		
			
				|  |  |             totalSql+=" AND d.charge_type is not null ";
 | 
	
		
			
				|  |  |             totalSql += " AND d.charge_type is not null ";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(dept)){
 | 
	
		
			
				|  |  |             totalSql+= " AND h.dept_code = '"+dept+"' " ;
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(dept)) {
 | 
	
		
			
				|  |  |             totalSql += " AND h.dept_code = '" + dept + "' ";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(nameKey)){
 | 
	
		
			
				|  |  |             totalSql+= " AND d.name like '%"+nameKey+"%' " ;
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(nameKey)) {
 | 
	
		
			
				|  |  |             totalSql += " AND d.name like '%" + nameKey + "%' ";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         List<Map<String, Object>> rstotal = jdbcTemplate.queryForList(totalSql);
 | 
	
		
			
				|  |  | 
 | 
	
	
		
			
				|  | @ -1160,7 +1196,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |             count = (Long) rstotal.get(0).get("total");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         String sql ="SELECT " +
 | 
	
		
			
				|  |  |         String sql = "SELECT " +
 | 
	
		
			
				|  |  |                 " d.id, " +
 | 
	
		
			
				|  |  |                 " d.photo, " +
 | 
	
		
			
				|  |  |                 " d.`name`, " +
 | 
	
	
		
			
				|  | @ -1176,72 +1212,72 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |                 " JOIN base_doctor_hospital h ON h.doctor_code = d.id " +
 | 
	
		
			
				|  |  |                 " JOIN base_doctor_role r ON r.doctor_code = d.id " +
 | 
	
		
			
				|  |  |                 " WHERE  " +
 | 
	
		
			
				|  |  |                 " h.org_code = '"+orgCode+"'"+
 | 
	
		
			
				|  |  |                 " h.org_code = '" + orgCode + "'" +
 | 
	
		
			
				|  |  |                 " AND r.role_code ='specialist'";
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(chargeType)){
 | 
	
		
			
				|  |  |             if("all".equals(chargeType)){
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(chargeType)) {
 | 
	
		
			
				|  |  |             if ("all".equals(chargeType)) {
 | 
	
		
			
				|  |  |                 //不过滤号别
 | 
	
		
			
				|  |  |             }else{
 | 
	
		
			
				|  |  |                 sql+=" AND d.charge_type ='"+chargeType+"'";
 | 
	
		
			
				|  |  |             } else {
 | 
	
		
			
				|  |  |                 sql += " AND d.charge_type ='" + chargeType + "'";
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }else{
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             //不传号别过滤不为为空
 | 
	
		
			
				|  |  |             sql+=" AND d.charge_type is not null ";
 | 
	
		
			
				|  |  |             sql += " AND d.charge_type is not null ";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(dept)){
 | 
	
		
			
				|  |  |             sql+= " AND h.dept_code = '"+dept+"' " ;
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(dept)) {
 | 
	
		
			
				|  |  |             sql += " AND h.dept_code = '" + dept + "' ";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(nameKey)){
 | 
	
		
			
				|  |  |             sql+= " AND d.name like '%"+nameKey+"%' " ;
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(nameKey)) {
 | 
	
		
			
				|  |  |             sql += " AND d.name like '%" + nameKey + "%' ";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         sql += " LIMIT " + (page - 1) * size + "," + size + "";
 | 
	
		
			
				|  |  |         List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
 | 
	
		
			
				|  |  |         if(list!=null&&list.size()>0){
 | 
	
		
			
				|  |  |         List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
 | 
	
		
			
				|  |  |         if (list != null && list.size() > 0) {
 | 
	
		
			
				|  |  |             //获取排班
 | 
	
		
			
				|  |  |             for(Map<String,Object> doctor :list){
 | 
	
		
			
				|  |  |                 String id = (String)doctor.get("id");
 | 
	
		
			
				|  |  |                 List<WlyyDoctorWorkTimeDO> workTimeDOs = doctorWorkTimeDao.findDoctorWorkTimeByMonth(id,"%"+date+"%");
 | 
	
		
			
				|  |  |                 if(workTimeDOs!=null&&workTimeDOs.size()>0){
 | 
	
		
			
				|  |  |                     doctor.put("isScheduling",true);
 | 
	
		
			
				|  |  |                 }else{
 | 
	
		
			
				|  |  |                     doctor.put("isScheduling",false);
 | 
	
		
			
				|  |  |             for (Map<String, Object> doctor : list) {
 | 
	
		
			
				|  |  |                 String id = (String) doctor.get("id");
 | 
	
		
			
				|  |  |                 List<WlyyDoctorWorkTimeDO> workTimeDOs = doctorWorkTimeDao.findDoctorWorkTimeByMonth(id, "%" + date + "%");
 | 
	
		
			
				|  |  |                 if (workTimeDOs != null && workTimeDOs.size() > 0) {
 | 
	
		
			
				|  |  |                     doctor.put("isScheduling", true);
 | 
	
		
			
				|  |  |                 } else {
 | 
	
		
			
				|  |  |                     doctor.put("isScheduling", false);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         logger.info("findDoctorWithMouthWork :"+sql);
 | 
	
		
			
				|  |  |         logger.info("findDoctorWithMouthWork :" + sql);
 | 
	
		
			
				|  |  |         return MixEnvelop.getSuccessListWithPage(BaseHospitalRequestMapping.Prescription.api_success, list, page, size, count);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 挂号
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public net.sf.json.JSONObject registerOutPatient(String outPatientId,String doctor)throws Exception{
 | 
	
		
			
				|  |  |     public net.sf.json.JSONObject registerOutPatient(String outPatientId, String doctor) throws Exception {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         WlyyOutpatientDO outpatientDO = outpatientDao.findOne(outPatientId);
 | 
	
		
			
				|  |  |         
 | 
	
		
			
				|  |  |         
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         DoctorMappingDO doctorMappingDO = doctorMappingService.findMappingCode(doctor,outpatientDO.getHospital());
 | 
	
		
			
				|  |  |         if(doctorMappingDO==null){
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         DoctorMappingDO doctorMappingDO = doctorMappingService.findMappingCode(doctor, outpatientDO.getHospital());
 | 
	
		
			
				|  |  |         if (doctorMappingDO == null) {
 | 
	
		
			
				|  |  |             throw new RuntimeException("未找到医生映射信息");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         BasePatientDO basePatientDO = basePatientDao.findById(outpatientDO.getPatient());
 | 
	
		
			
				|  |  |     
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         Integer manageType = 1;//处理类型(1-新增 2-修改 3-删除) 必填
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //查找居民当天挂号记录
 | 
	
		
			
				|  |  |         String date = DateUtil.dateToStr(new Date(),"yyyy-MM-dd");
 | 
	
		
			
				|  |  |         List<WlyyPatientRegisterDO>  patientRegisterDOs = patientRegisterDao.findByPatientAndDateAndDoctor(outpatientDO.getPatient(),date,doctor);
 | 
	
		
			
				|  |  |         if(patientRegisterDOs!=null&&patientRegisterDOs.size()>0){
 | 
	
		
			
				|  |  |         String date = DateUtil.dateToStr(new Date(), "yyyy-MM-dd");
 | 
	
		
			
				|  |  |         List<WlyyPatientRegisterDO> patientRegisterDOs = patientRegisterDao.findByPatientAndDateAndDoctor(outpatientDO.getPatient(), date, doctor);
 | 
	
		
			
				|  |  |         if (patientRegisterDOs != null && patientRegisterDOs.size() > 0) {
 | 
	
		
			
				|  |  |             WlyyPatientRegisterDO registerDO = patientRegisterDOs.get(0);
 | 
	
		
			
				|  |  |             //判断是否已经挂号,如果已经挂号
 | 
	
		
			
				|  |  |             if(StringUtils.isNotBlank(registerDO.getConNo())&&StringUtils.isNotBlank(registerDO.getRegisterNo())){
 | 
	
		
			
				|  |  |             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());
 | 
	
		
			
				|  |  |                 res.put("@RESULT", "0");
 | 
	
		
			
				|  |  |                 logger.info("已经挂号 res: " + res.toString());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 //更新挂号流水号
 | 
	
		
			
				|  |  |                 outpatientDO.setConNo(registerDO.getConNo());
 | 
	
	
		
			
				|  | @ -1249,27 +1285,27 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |                 outpatientDO.setAdmDate(registerDO.getCreateTime());
 | 
	
		
			
				|  |  |                 outpatientDao.save(outpatientDO);
 | 
	
		
			
				|  |  |                 //调用电子病历注册
 | 
	
		
			
				|  |  |                 manageType =2;
 | 
	
		
			
				|  |  |                 registDianziBingli(outpatientDO,basePatientDO,manageType,registerDO.getRegisterNo(),registerDO.getConNo());
 | 
	
		
			
				|  |  |                 manageType = 2;
 | 
	
		
			
				|  |  |                 registDianziBingli(outpatientDO, basePatientDO, manageType, registerDO.getRegisterNo(), registerDO.getConNo());
 | 
	
		
			
				|  |  |                 return res;
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         net.sf.json.JSONObject rs = entranceService.BS10111(outpatientDO.getCardNo(),doctorMappingDO.getMappingCode(),outpatientDO.getDept(),null,outpatientDO.getWinNo(),demoFlag);
 | 
	
		
			
				|  |  |         net.sf.json.JSONObject rs = entranceService.BS10111(outpatientDO.getCardNo(), doctorMappingDO.getMappingCode(), outpatientDO.getDept(), null, outpatientDO.getWinNo(), demoFlag);
 | 
	
		
			
				|  |  |         net.sf.json.JSONObject res = rs.getJSONObject("resquest");
 | 
	
		
			
				|  |  |         logger.info("挂号结果 res: " +res.toString());
 | 
	
		
			
				|  |  |         logger.info("挂号结果 res: " + res.toString());
 | 
	
		
			
				|  |  |         String rsCode = res.getString("@RESULT");
 | 
	
		
			
				|  |  |         
 | 
	
		
			
				|  |  |         if("0".equals(rsCode)){
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         if ("0".equals(rsCode)) {
 | 
	
		
			
				|  |  |             //存储挂号号
 | 
	
		
			
				|  |  |             // {"resquest":{"@RESULT":"0","@MSG":"完成","@serial_no":"47770476","@times":"28"}}
 | 
	
		
			
				|  |  |             String serialNo = (String)res.get("@serial_no");
 | 
	
		
			
				|  |  |             String serialNo = (String) res.get("@serial_no");
 | 
	
		
			
				|  |  |             outpatientDO.setRegisterNo(serialNo);
 | 
	
		
			
				|  |  |             String conNo = (String)res.get("@times");
 | 
	
		
			
				|  |  |             String conNo = (String) res.get("@times");
 | 
	
		
			
				|  |  |             outpatientDO.setConNo(conNo);
 | 
	
		
			
				|  |  |             outpatientDO.setAdmDate(new Date());
 | 
	
		
			
				|  |  |             logger.info("挂号流水 @serial_no: " +serialNo+" @times: "+conNo);
 | 
	
		
			
				|  |  |             logger.info("挂号流水 @serial_no: " + serialNo + " @times: " + conNo);
 | 
	
		
			
				|  |  |             outpatientDao.save(outpatientDO);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             //存储就诊记录
 | 
	
	
		
			
				|  | @ -1286,21 +1322,21 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |             registerDO.setRegisterNo(serialNo);
 | 
	
		
			
				|  |  |             registerDO.setConNo(conNo);
 | 
	
		
			
				|  |  |             registerDO.setCreateTime(new Date());
 | 
	
		
			
				|  |  |             registerDO.setDate(DateUtil.dateToStr(new Date(),"yyyy-MM-dd"));
 | 
	
		
			
				|  |  |             registerDO.setDate(DateUtil.dateToStr(new Date(), "yyyy-MM-dd"));
 | 
	
		
			
				|  |  |             patientRegisterDao.save(registerDO);
 | 
	
		
			
				|  |  |     
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             //调用电子病历注册
 | 
	
		
			
				|  |  |             manageType = 1;//处理类型(1-新增 2-修改 3-删除) 必填
 | 
	
		
			
				|  |  |             registDianziBingli(outpatientDO,basePatientDO,manageType,registerDO.getRegisterNo(),registerDO.getConNo());
 | 
	
		
			
				|  |  |             
 | 
	
		
			
				|  |  |         }else if("-2".equals(rsCode)){
 | 
	
		
			
				|  |  |             registDianziBingli(outpatientDO, basePatientDO, manageType, registerDO.getRegisterNo(), registerDO.getConNo());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             String serialNo = (String)res.get("@serial_no");
 | 
	
		
			
				|  |  |         } else if ("-2".equals(rsCode)) {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             String serialNo = (String) res.get("@serial_no");
 | 
	
		
			
				|  |  |             outpatientDO.setRegisterNo(serialNo);
 | 
	
		
			
				|  |  |             String conNo = (String)res.get("@times");
 | 
	
		
			
				|  |  |             String conNo = (String) res.get("@times");
 | 
	
		
			
				|  |  |             outpatientDO.setConNo(conNo);
 | 
	
		
			
				|  |  |             outpatientDO.setAdmDate(new Date());
 | 
	
		
			
				|  |  |             logger.info("挂号流水 @serial_no: " +serialNo+" @times: "+conNo);
 | 
	
		
			
				|  |  |             logger.info("挂号流水 @serial_no: " + serialNo + " @times: " + conNo);
 | 
	
		
			
				|  |  |             outpatientDao.save(outpatientDO);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             //存储就诊记录
 | 
	
	
		
			
				|  | @ -1316,112 +1352,111 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |             registerDO.setRegisterNo(serialNo);
 | 
	
		
			
				|  |  |             registerDO.setConNo(conNo);
 | 
	
		
			
				|  |  |             registerDO.setCreateTime(new Date());
 | 
	
		
			
				|  |  |             registerDO.setDate(DateUtil.dateToStr(new Date(),"yyyy-MM-dd"));
 | 
	
		
			
				|  |  |             registerDO.setDate(DateUtil.dateToStr(new Date(), "yyyy-MM-dd"));
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             patientRegisterDao.save(registerDO);
 | 
	
		
			
				|  |  |     
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             //调用电子病历注册
 | 
	
		
			
				|  |  |             manageType = 1;//处理类型(1-新增 2-修改 3-删除) 必填
 | 
	
		
			
				|  |  |             registDianziBingli(outpatientDO,basePatientDO,manageType,registerDO.getRegisterNo(),registerDO.getConNo());
 | 
	
		
			
				|  |  |             registDianziBingli(outpatientDO, basePatientDO, manageType, registerDO.getRegisterNo(), registerDO.getConNo());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         
 | 
	
		
			
				|  |  |             //保存日志
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //保存日志
 | 
	
		
			
				|  |  |         WlyyHttpLogDO log = new WlyyHttpLogDO();
 | 
	
		
			
				|  |  |         log.setCode("registerOutPatient");
 | 
	
		
			
				|  |  |         log.setName("挂号");
 | 
	
		
			
				|  |  |         log.setPatient(outpatientDO.getPatient());
 | 
	
		
			
				|  |  |         log.setDoctor(doctor);
 | 
	
		
			
				|  |  |         log.setResponse(rs.toString());
 | 
	
		
			
				|  |  |         log.setRequest("outPatientId="+outPatientId+"&doctor="+doctor);
 | 
	
		
			
				|  |  |         log.setRequest("outPatientId=" + outPatientId + "&doctor=" + doctor);
 | 
	
		
			
				|  |  |         log.setStatus(rsCode);
 | 
	
		
			
				|  |  |         log.setCreateTime(new Date());
 | 
	
		
			
				|  |  |         wlyyHttpLogDao.save(log);
 | 
	
		
			
				|  |  |         return res;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  |     
 | 
	
		
			
				|  |  |     public String registDianziBingli(WlyyOutpatientDO outpatientDO,BasePatientDO basePatientDO,Integer manageType,String RegisterSN,String registerCon) throws Exception {
 | 
	
		
			
				|  |  |     
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public String registDianziBingli(WlyyOutpatientDO outpatientDO, BasePatientDO basePatientDO, Integer manageType, String RegisterSN, String registerCon) throws Exception {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //调用电子病历接口注册居民信息
 | 
	
		
			
				|  |  |             String patientMappingCode =  patientMappingService.findHisPatNoByIdCard(basePatientDO.getIdcard());
 | 
	
		
			
				|  |  |             DoctorMappingDO doctorMappingDO = doctorMappingService.findMappingCode(outpatientDO.getDoctor(),outpatientDO.getHospital());
 | 
	
		
			
				|  |  |             Map<String,String> params = new HashedMap();
 | 
	
		
			
				|  |  |             params.put("type","PatientInfo");
 | 
	
		
			
				|  |  |             
 | 
	
		
			
				|  |  |             String _xmlStr="<?xml version='1.0' encoding='UTF-8'?>" +
 | 
	
		
			
				|  |  |                     "<HtRequest>" +
 | 
	
		
			
				|  |  |                     "<OutRegister>" +
 | 
	
		
			
				|  |  |                     "<RecordFlow>"+outpatientDO.getId()+"</RecordFlow>" +
 | 
	
		
			
				|  |  |                     "<RegisterSN>"+RegisterSN+"</RegisterSN>" +
 | 
	
		
			
				|  |  |                     "<TreatDate>"+DateUtil.getStringDate("yyyyMMdd")+"</TreatDate>" +
 | 
	
		
			
				|  |  |                     "<RegisterDeptCode>"+outpatientDO.getDept()+"</RegisterDeptCode>" +
 | 
	
		
			
				|  |  |                     "<RegisterDeptName>"+outpatientDO.getDeptName()+"</RegisterDeptName>" +
 | 
	
		
			
				|  |  |                     "<RegisterDoctorID>"+doctorMappingDO.getMappingCode()+"</RegisterDoctorID>" +
 | 
	
		
			
				|  |  |                     "<RegisterDoctorName>"+doctorMappingDO.getDoctorName()+"</RegisterDoctorName>" +
 | 
	
		
			
				|  |  |                     "<DutyID></DutyID>" +
 | 
	
		
			
				|  |  |                     "<DutyName></DutyName>" +
 | 
	
		
			
				|  |  |                     "<OutPatientTime></OutPatientTime>" +
 | 
	
		
			
				|  |  |                     "<NumClassCode></NumClassCode>" +
 | 
	
		
			
				|  |  |                     "<NumClassName></NumClassName>" +
 | 
	
		
			
				|  |  |                     "<JoinGroupCode></JoinGroupCode>" +
 | 
	
		
			
				|  |  |                     "<JoinGroupName></JoinGroupName>" +
 | 
	
		
			
				|  |  |                     "<NumClassNO></NumClassNO>" +
 | 
	
		
			
				|  |  |                     "<AppointmentDateTime></AppointmentDateTime>" +
 | 
	
		
			
				|  |  |                     "<AppointSN></AppointSN>" +
 | 
	
		
			
				|  |  |                     "<Pid>"+patientMappingCode+"</Pid>" +
 | 
	
		
			
				|  |  |                     "<CardNO>"+outpatientDO.getCardNo()+"</CardNO>\n" +
 | 
	
		
			
				|  |  |                     "<PatientName>"+basePatientDO.getName()+"</PatientName>"+
 | 
	
		
			
				|  |  |                     "<SexCode>"+basePatientDO.getSex()+"</SexCode>";
 | 
	
		
			
				|  |  |                     if(1 == basePatientDO.getSex()){
 | 
	
		
			
				|  |  |                         _xmlStr = _xmlStr + "<Sex>男</Sex>";
 | 
	
		
			
				|  |  |                     }else{
 | 
	
		
			
				|  |  |                         _xmlStr = _xmlStr +  "<Sex>女</Sex>";
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                     _xmlStr = _xmlStr + "<Age>"+IdCardUtil.getAgeForIdcard(basePatientDO.getIdcard())+"</Age>" +
 | 
	
		
			
				|  |  |                     "<AgeDesc>"+IdCardUtil.getAgeForIdcard(basePatientDO.getIdcard())+"岁</AgeDesc>" +
 | 
	
		
			
				|  |  |                     "<PatientClass></PatientClass>" +
 | 
	
		
			
				|  |  |                     "<FeeTypeCode></FeeTypeCode>" +
 | 
	
		
			
				|  |  |                     "<FeeTypeName></FeeTypeName>" +
 | 
	
		
			
				|  |  |                     "<MedicalInsuranceType></MedicalInsuranceType>" +
 | 
	
		
			
				|  |  |                     "<IsFirst>N</IsFirst>" +
 | 
	
		
			
				|  |  |                     "<RegisterDateTime>20200121</RegisterDateTime>" +
 | 
	
		
			
				|  |  |                     "<RegisterUserID>"+patientMappingCode+"</RegisterUserID>" +
 | 
	
		
			
				|  |  |                     "<RegisterUserName></RegisterUserName>" +
 | 
	
		
			
				|  |  |                     "<OutStatus>20</OutStatus>" +
 | 
	
		
			
				|  |  |                     "<ModifierID></ModifierID>" +
 | 
	
		
			
				|  |  |                     "<Modifier></Modifier>" +
 | 
	
		
			
				|  |  |                     "<ModifyTime></ModifyTime>" +
 | 
	
		
			
				|  |  |                     "<RetreatDateTime></RetreatDateTime>" +
 | 
	
		
			
				|  |  |                     "<RetreatUserID></RetreatUserID>" +
 | 
	
		
			
				|  |  |                     "<RetreatUserName></RetreatUserName>" +
 | 
	
		
			
				|  |  |                     "<PaymentMethodCode></PaymentMethodCode>" +
 | 
	
		
			
				|  |  |                     "<PaymentMethod></PaymentMethod>" +
 | 
	
		
			
				|  |  |                     "<RegisterFee></RegisterFee>" +
 | 
	
		
			
				|  |  |                     "<MedicalFee></MedicalFee>" +
 | 
	
		
			
				|  |  |                     "<OtherFee></OtherFee>" +
 | 
	
		
			
				|  |  |                     "<TotalFee></TotalFee>" +
 | 
	
		
			
				|  |  |                     "<MedicalFloor>N</MedicalFloor>" +
 | 
	
		
			
				|  |  |                     "<MedicalAddress></MedicalAddress>" +
 | 
	
		
			
				|  |  |                     "<LastDeptCode></LastDeptCode>" +
 | 
	
		
			
				|  |  |                     "<LastDeptName></LastDeptName>" +
 | 
	
		
			
				|  |  |                     "<LastDoctorID></LastDoctorID>" +
 | 
	
		
			
				|  |  |                     "<LastDoctorName></LastDoctorName>" +
 | 
	
		
			
				|  |  |                     "<LastTreatDateTime></LastTreatDateTime>" +
 | 
	
		
			
				|  |  |                     "<LastOpid></LastOpid>" +
 | 
	
		
			
				|  |  |                     "<NumTypeCode>0</NumTypeCode>" +
 | 
	
		
			
				|  |  |                     "<NumTypeName></NumTypeName>" +
 | 
	
		
			
				|  |  |                     "<RegisterSource>1</RegisterSource>" +
 | 
	
		
			
				|  |  |                     "<AcctNO></AcctNO>" +
 | 
	
		
			
				|  |  |                     "<IsAcct>N</IsAcct>" +
 | 
	
		
			
				|  |  |                     "<ManageType>"+manageType+"</ManageType>" +
 | 
	
		
			
				|  |  |                     "<Times>"+registerCon+"</Times>" +
 | 
	
		
			
				|  |  |                     "</OutRegister>" +
 | 
	
		
			
				|  |  |                     "<PatientInfo>" +
 | 
	
		
			
				|  |  |                     "<RecordFlow>"+outpatientDO.getId()+"</RecordFlow>" +
 | 
	
		
			
				|  |  |                     "<PID>"+patientMappingCode+"</PID></PatientInfo></HtRequest>";
 | 
	
		
			
				|  |  |             
 | 
	
		
			
				|  |  |             
 | 
	
		
			
				|  |  |         String patientMappingCode = patientMappingService.findHisPatNoByIdCard(basePatientDO.getIdcard());
 | 
	
		
			
				|  |  |         DoctorMappingDO doctorMappingDO = doctorMappingService.findMappingCode(outpatientDO.getDoctor(), outpatientDO.getHospital());
 | 
	
		
			
				|  |  |         Map<String, String> params = new HashedMap();
 | 
	
		
			
				|  |  |         params.put("type", "PatientInfo");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         String _xmlStr = "<?xml version='1.0' encoding='UTF-8'?>" +
 | 
	
		
			
				|  |  |                 "<HtRequest>" +
 | 
	
		
			
				|  |  |                 "<OutRegister>" +
 | 
	
		
			
				|  |  |                 "<RecordFlow>" + outpatientDO.getId() + "</RecordFlow>" +
 | 
	
		
			
				|  |  |                 "<RegisterSN>" + RegisterSN + "</RegisterSN>" +
 | 
	
		
			
				|  |  |                 "<TreatDate>" + DateUtil.getStringDate("yyyyMMdd") + "</TreatDate>" +
 | 
	
		
			
				|  |  |                 "<RegisterDeptCode>" + outpatientDO.getDept() + "</RegisterDeptCode>" +
 | 
	
		
			
				|  |  |                 "<RegisterDeptName>" + outpatientDO.getDeptName() + "</RegisterDeptName>" +
 | 
	
		
			
				|  |  |                 "<RegisterDoctorID>" + doctorMappingDO.getMappingCode() + "</RegisterDoctorID>" +
 | 
	
		
			
				|  |  |                 "<RegisterDoctorName>" + doctorMappingDO.getDoctorName() + "</RegisterDoctorName>" +
 | 
	
		
			
				|  |  |                 "<DutyID></DutyID>" +
 | 
	
		
			
				|  |  |                 "<DutyName></DutyName>" +
 | 
	
		
			
				|  |  |                 "<OutPatientTime></OutPatientTime>" +
 | 
	
		
			
				|  |  |                 "<NumClassCode></NumClassCode>" +
 | 
	
		
			
				|  |  |                 "<NumClassName></NumClassName>" +
 | 
	
		
			
				|  |  |                 "<JoinGroupCode></JoinGroupCode>" +
 | 
	
		
			
				|  |  |                 "<JoinGroupName></JoinGroupName>" +
 | 
	
		
			
				|  |  |                 "<NumClassNO></NumClassNO>" +
 | 
	
		
			
				|  |  |                 "<AppointmentDateTime></AppointmentDateTime>" +
 | 
	
		
			
				|  |  |                 "<AppointSN></AppointSN>" +
 | 
	
		
			
				|  |  |                 "<Pid>" + patientMappingCode + "</Pid>" +
 | 
	
		
			
				|  |  |                 "<CardNO>" + outpatientDO.getCardNo() + "</CardNO>\n" +
 | 
	
		
			
				|  |  |                 "<PatientName>" + basePatientDO.getName() + "</PatientName>" +
 | 
	
		
			
				|  |  |                 "<SexCode>" + basePatientDO.getSex() + "</SexCode>";
 | 
	
		
			
				|  |  |         if (1 == basePatientDO.getSex()) {
 | 
	
		
			
				|  |  |             _xmlStr = _xmlStr + "<Sex>男</Sex>";
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             _xmlStr = _xmlStr + "<Sex>女</Sex>";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         _xmlStr = _xmlStr + "<Age>" + IdCardUtil.getAgeForIdcard(basePatientDO.getIdcard()) + "</Age>" +
 | 
	
		
			
				|  |  |                 "<AgeDesc>" + IdCardUtil.getAgeForIdcard(basePatientDO.getIdcard()) + "岁</AgeDesc>" +
 | 
	
		
			
				|  |  |                 "<PatientClass></PatientClass>" +
 | 
	
		
			
				|  |  |                 "<FeeTypeCode></FeeTypeCode>" +
 | 
	
		
			
				|  |  |                 "<FeeTypeName></FeeTypeName>" +
 | 
	
		
			
				|  |  |                 "<MedicalInsuranceType></MedicalInsuranceType>" +
 | 
	
		
			
				|  |  |                 "<IsFirst>N</IsFirst>" +
 | 
	
		
			
				|  |  |                 "<RegisterDateTime>20200121</RegisterDateTime>" +
 | 
	
		
			
				|  |  |                 "<RegisterUserID>" + patientMappingCode + "</RegisterUserID>" +
 | 
	
		
			
				|  |  |                 "<RegisterUserName></RegisterUserName>" +
 | 
	
		
			
				|  |  |                 "<OutStatus>20</OutStatus>" +
 | 
	
		
			
				|  |  |                 "<ModifierID></ModifierID>" +
 | 
	
		
			
				|  |  |                 "<Modifier></Modifier>" +
 | 
	
		
			
				|  |  |                 "<ModifyTime></ModifyTime>" +
 | 
	
		
			
				|  |  |                 "<RetreatDateTime></RetreatDateTime>" +
 | 
	
		
			
				|  |  |                 "<RetreatUserID></RetreatUserID>" +
 | 
	
		
			
				|  |  |                 "<RetreatUserName></RetreatUserName>" +
 | 
	
		
			
				|  |  |                 "<PaymentMethodCode></PaymentMethodCode>" +
 | 
	
		
			
				|  |  |                 "<PaymentMethod></PaymentMethod>" +
 | 
	
		
			
				|  |  |                 "<RegisterFee></RegisterFee>" +
 | 
	
		
			
				|  |  |                 "<MedicalFee></MedicalFee>" +
 | 
	
		
			
				|  |  |                 "<OtherFee></OtherFee>" +
 | 
	
		
			
				|  |  |                 "<TotalFee></TotalFee>" +
 | 
	
		
			
				|  |  |                 "<MedicalFloor>N</MedicalFloor>" +
 | 
	
		
			
				|  |  |                 "<MedicalAddress></MedicalAddress>" +
 | 
	
		
			
				|  |  |                 "<LastDeptCode></LastDeptCode>" +
 | 
	
		
			
				|  |  |                 "<LastDeptName></LastDeptName>" +
 | 
	
		
			
				|  |  |                 "<LastDoctorID></LastDoctorID>" +
 | 
	
		
			
				|  |  |                 "<LastDoctorName></LastDoctorName>" +
 | 
	
		
			
				|  |  |                 "<LastTreatDateTime></LastTreatDateTime>" +
 | 
	
		
			
				|  |  |                 "<LastOpid></LastOpid>" +
 | 
	
		
			
				|  |  |                 "<NumTypeCode>0</NumTypeCode>" +
 | 
	
		
			
				|  |  |                 "<NumTypeName></NumTypeName>" +
 | 
	
		
			
				|  |  |                 "<RegisterSource>1</RegisterSource>" +
 | 
	
		
			
				|  |  |                 "<AcctNO></AcctNO>" +
 | 
	
		
			
				|  |  |                 "<IsAcct>N</IsAcct>" +
 | 
	
		
			
				|  |  |                 "<ManageType>" + manageType + "</ManageType>" +
 | 
	
		
			
				|  |  |                 "<Times>" + registerCon + "</Times>" +
 | 
	
		
			
				|  |  |                 "</OutRegister>" +
 | 
	
		
			
				|  |  |                 "<PatientInfo>" +
 | 
	
		
			
				|  |  |                 "<RecordFlow>" + outpatientDO.getId() + "</RecordFlow>" +
 | 
	
		
			
				|  |  |                 "<PID>" + patientMappingCode + "</PID></PatientInfo></HtRequest>";
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | //            String xmlStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
 | 
	
		
			
				|  |  | //                    "<HtRequest >" +
 | 
	
		
			
				|  |  | //                    "<PatientInfo>" +
 | 
	
	
		
			
				|  | @ -1501,134 +1536,142 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  | //                    "<RhBloodType></RhBloodType>" +
 | 
	
		
			
				|  |  | //                    "</PatientInfo>" +
 | 
	
		
			
				|  |  | //                    "</HtRequest>";
 | 
	
		
			
				|  |  |             String returnValue = "";
 | 
	
		
			
				|  |  |             params.put("xmlStr",_xmlStr);
 | 
	
		
			
				|  |  |         
 | 
	
		
			
				|  |  |             returnValue = WebserviceUtil.post("http://192.10.33.34:9080/HtMzWebService/services/Manage",
 | 
	
		
			
				|  |  |                     "http://business.htemr.haitaiinc.com",
 | 
	
		
			
				|  |  |                     "manageAdt",
 | 
	
		
			
				|  |  |                     params);
 | 
	
		
			
				|  |  |         
 | 
	
		
			
				|  |  |             logger.info("调用电子病历注册接口请求成功,返回值xmlstr:"+returnValue);
 | 
	
		
			
				|  |  |             
 | 
	
		
			
				|  |  |             return returnValue;
 | 
	
		
			
				|  |  |         String returnValue = "";
 | 
	
		
			
				|  |  |         params.put("xmlStr", _xmlStr);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         returnValue = WebserviceUtil.post("http://192.10.33.34:9080/HtMzWebService/services/Manage",
 | 
	
		
			
				|  |  |                 "http://business.htemr.haitaiinc.com",
 | 
	
		
			
				|  |  |                 "manageAdt",
 | 
	
		
			
				|  |  |                 params);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         logger.info("调用电子病历注册接口请求成功,返回值xmlstr:" + returnValue);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         return returnValue;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 获取诊断
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param pyKey
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public JSONArray getICD10(String pyKey)throws Exception{
 | 
	
		
			
				|  |  |         return entranceService.MS25001(pyKey,demoFlag);
 | 
	
		
			
				|  |  |     public JSONArray getICD10(String pyKey) throws Exception {
 | 
	
		
			
				|  |  |         return entranceService.MS25001(pyKey, demoFlag);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 获取药品
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public JSONArray getDrugDictionary(String chargeCode,String pyKey,String winNo,String groupNo)throws Exception{
 | 
	
		
			
				|  |  |         return entranceService.MS53001(chargeCode,pyKey,"0",winNo,"0",groupNo,demoFlag);
 | 
	
		
			
				|  |  |     public JSONArray getDrugDictionary(String chargeCode, String pyKey, String winNo, String groupNo) throws Exception {
 | 
	
		
			
				|  |  |         return entranceService.MS53001(chargeCode, pyKey, "0", winNo, "0", groupNo, demoFlag);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 获取药品用法
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public JSONArray getDrugUse(String drugNo,String pyKey)throws Exception{
 | 
	
		
			
				|  |  |         return entranceService.BS10110(drugNo,pyKey,demoFlag);
 | 
	
		
			
				|  |  |     public JSONArray getDrugUse(String drugNo, String pyKey) throws Exception {
 | 
	
		
			
				|  |  |         return entranceService.BS10110(drugNo, pyKey, demoFlag);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 医院频次
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public JSONArray getDrugFrequency()throws Exception{
 | 
	
		
			
				|  |  |     public JSONArray getDrugFrequency() throws Exception {
 | 
	
		
			
				|  |  |         return entranceService.MS30012(demoFlag);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 检查模板选择接口
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param bz_code
 | 
	
		
			
				|  |  |      * @param flag
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public JSONArray getJcmb(String bz_code,String tc_no,String flag)throws Exception{
 | 
	
		
			
				|  |  |         return entranceService.BS25033(bz_code,tc_no,flag,demoFlag);
 | 
	
		
			
				|  |  |     public JSONArray getJcmb(String bz_code, String tc_no, String flag) throws Exception {
 | 
	
		
			
				|  |  |         return entranceService.BS25033(bz_code, tc_no, flag, demoFlag);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 检验选择接口
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param bz_code
 | 
	
		
			
				|  |  |      * @param flag
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public JSONArray getJymb(String bz_code,String tc_no,String flag)throws Exception{
 | 
	
		
			
				|  |  |         return entranceService.BS20030(bz_code,tc_no,flag,demoFlag);
 | 
	
		
			
				|  |  |     public JSONArray getJymb(String bz_code, String tc_no, String flag) throws Exception {
 | 
	
		
			
				|  |  |         return entranceService.BS20030(bz_code, tc_no, flag, demoFlag);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 套餐选择接口
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param bz_code
 | 
	
		
			
				|  |  |      * @param flag
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public JSONArray getTcxz(String bz_code,String tc_no,String flag)throws Exception{
 | 
	
		
			
				|  |  |         return entranceService.MS02017(bz_code,tc_no,flag,demoFlag);
 | 
	
		
			
				|  |  |     public JSONArray getTcxz(String bz_code, String tc_no, String flag) throws Exception {
 | 
	
		
			
				|  |  |         return entranceService.MS02017(bz_code, tc_no, flag, demoFlag);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 套餐子项目接口
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param parent_code 检查检验项目的charge_code
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public JSONArray getTcChild(String parent_code)throws Exception{
 | 
	
		
			
				|  |  |         return entranceService.MS02015(parent_code,demoFlag);
 | 
	
		
			
				|  |  |     public JSONArray getTcChild(String parent_code) throws Exception {
 | 
	
		
			
				|  |  |         return entranceService.MS02015(parent_code, demoFlag);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 项目子项目接口
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param zd_charge_code
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public JSONArray getInsChild(String zd_charge_code)throws Exception{
 | 
	
		
			
				|  |  |         return entranceService.MS02016(zd_charge_code,demoFlag);
 | 
	
		
			
				|  |  |     public JSONArray getInsChild(String zd_charge_code) throws Exception {
 | 
	
		
			
				|  |  |         return entranceService.MS02016(zd_charge_code, demoFlag);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 获取检查检验
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public JSONArray getInspectionDictionary(String pyKey,String codes,String winNo)throws Exception{
 | 
	
		
			
				|  |  |         JSONArray rs = entranceService.MS25002(pyKey,codes,winNo,demoFlag);
 | 
	
		
			
				|  |  |         if(rs!=null&&rs.size()>0){
 | 
	
		
			
				|  |  |     public JSONArray getInspectionDictionary(String pyKey, String codes, String winNo) throws Exception {
 | 
	
		
			
				|  |  |         JSONArray rs = entranceService.MS25002(pyKey, codes, winNo, demoFlag);
 | 
	
		
			
				|  |  |         if (rs != null && rs.size() > 0) {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             //设置科室翻译名称字典,减少循环层级降低循环次数
 | 
	
		
			
				|  |  |             List<DictHospitalDeptDO> depts =dictHospitalDeptDao.findByOrgCode("350211A1002");
 | 
	
		
			
				|  |  |             Map<String,String> deptDictMap = new HashedMap();
 | 
	
		
			
				|  |  |             for(DictHospitalDeptDO dp:depts){
 | 
	
		
			
				|  |  |                 deptDictMap.put(dp.getCode(),dp.getName());
 | 
	
		
			
				|  |  |             List<DictHospitalDeptDO> depts = dictHospitalDeptDao.findByOrgCode("350211A1002");
 | 
	
		
			
				|  |  |             Map<String, String> deptDictMap = new HashedMap();
 | 
	
		
			
				|  |  |             for (DictHospitalDeptDO dp : depts) {
 | 
	
		
			
				|  |  |                 deptDictMap.put(dp.getCode(), dp.getName());
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             //翻译执行科室
 | 
	
		
			
				|  |  |             for(int i=0;i<rs.size();i++){
 | 
	
		
			
				|  |  |                 JSONObject dict = (JSONObject)rs.get(i);
 | 
	
		
			
				|  |  |             for (int i = 0; i < rs.size(); i++) {
 | 
	
		
			
				|  |  |                 JSONObject dict = (JSONObject) rs.get(i);
 | 
	
		
			
				|  |  |                 String dept = dict.getString("exec_unit");
 | 
	
		
			
				|  |  |                 if(StringUtils.isNotBlank(dept)){
 | 
	
		
			
				|  |  |                 if (StringUtils.isNotBlank(dept)) {
 | 
	
		
			
				|  |  |                     String deptName = deptDictMap.get(dept);
 | 
	
		
			
				|  |  |                     if(StringUtils.isNotBlank(deptName)){
 | 
	
		
			
				|  |  |                         dict.put("exec_unit_name",deptName);
 | 
	
		
			
				|  |  |                     }else{
 | 
	
		
			
				|  |  |                         dict.put("exec_unit_name","");
 | 
	
		
			
				|  |  |                     if (StringUtils.isNotBlank(deptName)) {
 | 
	
		
			
				|  |  |                         dict.put("exec_unit_name", deptName);
 | 
	
		
			
				|  |  |                     } else {
 | 
	
		
			
				|  |  |                         dict.put("exec_unit_name", "");
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
	
		
			
				|  | @ -1638,16 +1681,17 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 下诊断,线上开方
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param outPatientId
 | 
	
		
			
				|  |  |      * @param advice
 | 
	
		
			
				|  |  |      * @param type 1带处方,2不带处方
 | 
	
		
			
				|  |  |      * @param type          1带处方,2不带处方
 | 
	
		
			
				|  |  |      * @param infoJsons
 | 
	
		
			
				|  |  |      * @param diagnosisJson
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public Map<String,Object> makeDiagnosis(String outPatientId,String advice,String type,String infoJsons,String diagnosisJson,String inspectionJson)throws Exception{
 | 
	
		
			
				|  |  |     public Map<String, Object> makeDiagnosis(String outPatientId, String advice, String type, String infoJsons, String diagnosisJson, String inspectionJson) throws Exception {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         Map<String,Object> result = new HashedMap();
 | 
	
		
			
				|  |  |         Map<String, Object> result = new HashedMap();
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //获取门诊记录
 | 
	
		
			
				|  |  |         WlyyOutpatientDO outpatientDO = outpatientDao.findOne(outPatientId);
 | 
	
	
		
			
				|  | @ -1658,9 +1702,9 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |         //创建处方记录
 | 
	
		
			
				|  |  |         List<WlyyPrescriptionDO> prescriptionDOs = prescriptionDao.findByOutpatientId(outPatientId);
 | 
	
		
			
				|  |  |         WlyyPrescriptionDO prescriptionDO = null;
 | 
	
		
			
				|  |  |         if(prescriptionDOs!=null&&prescriptionDOs.size()>0){
 | 
	
		
			
				|  |  |         if (prescriptionDOs != null && prescriptionDOs.size() > 0) {
 | 
	
		
			
				|  |  |             prescriptionDO = prescriptionDOs.get(0);
 | 
	
		
			
				|  |  |         }else{
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             prescriptionDO = new WlyyPrescriptionDO();
 | 
	
		
			
				|  |  |             prescriptionDO.setOutpatientId(outPatientId);
 | 
	
		
			
				|  |  |         }
 | 
	
	
		
			
				|  | @ -1675,44 +1719,44 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |         //========================处方操作结束=============================================================
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //加入处方状态变更流水日志
 | 
	
		
			
				|  |  |         prescriptionLogService.addPrescriptionLog(prescription.getId(),10,2,outpatientDO.getDoctor(),outpatientDO.getDoctorName(),"",new Date());
 | 
	
		
			
				|  |  |         prescriptionLogService.addPrescriptionLog(prescription.getId(), 10, 2, outpatientDO.getDoctor(), outpatientDO.getDoctorName(), "", new Date());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //============================下诊断==============================================================
 | 
	
		
			
				|  |  |         //删除之前诊断
 | 
	
		
			
				|  |  |         List<WlyyPrescriptionDiagnosisDO> ds = prescriptionDiagnosisDao.findByPrescriptionId(prescription.getId());
 | 
	
		
			
				|  |  |         if(ds!=null&&ds.size()>0){
 | 
	
		
			
				|  |  |         if (ds != null && ds.size() > 0) {
 | 
	
		
			
				|  |  |             prescriptionDiagnosisDao.delete(ds);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         List<WlyyPrescriptionDiagnosisDO> diagnosisDOs = (List<WlyyPrescriptionDiagnosisDO>) com.alibaba.fastjson.JSONArray.parseArray(diagnosisJson, WlyyPrescriptionDiagnosisDO.class);
 | 
	
		
			
				|  |  |         String Icd10 = "";
 | 
	
		
			
				|  |  |         String Icd10Name = "";
 | 
	
		
			
				|  |  |         for(WlyyPrescriptionDiagnosisDO diagnosisDO:diagnosisDOs){
 | 
	
		
			
				|  |  |             if("1".equals(diagnosisDO.getType())){
 | 
	
		
			
				|  |  |                 Icd10 = diagnosisDO.getCode()+","+Icd10;
 | 
	
		
			
				|  |  |                 Icd10Name+=diagnosisDO.getName()+","+Icd10Name;
 | 
	
		
			
				|  |  |             }else {
 | 
	
		
			
				|  |  |                 Icd10+=diagnosisDO.getCode()+",";
 | 
	
		
			
				|  |  |                 Icd10Name+=diagnosisDO.getName()+",";
 | 
	
		
			
				|  |  |         for (WlyyPrescriptionDiagnosisDO diagnosisDO : diagnosisDOs) {
 | 
	
		
			
				|  |  |             if ("1".equals(diagnosisDO.getType())) {
 | 
	
		
			
				|  |  |                 Icd10 = diagnosisDO.getCode() + "," + Icd10;
 | 
	
		
			
				|  |  |                 Icd10Name += diagnosisDO.getName() + "," + Icd10Name;
 | 
	
		
			
				|  |  |             } else {
 | 
	
		
			
				|  |  |                 Icd10 += diagnosisDO.getCode() + ",";
 | 
	
		
			
				|  |  |                 Icd10Name += diagnosisDO.getName() + ",";
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             diagnosisDO.setPrescriptionId(prescription.getId());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         prescriptionDiagnosisDao.save(diagnosisDOs);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //存储icd10
 | 
	
		
			
				|  |  |         Icd10 = Icd10.substring(0,Icd10.length()-1);
 | 
	
		
			
				|  |  |         Icd10Name = Icd10Name.substring(0,Icd10Name.length()-1);
 | 
	
		
			
				|  |  |         Icd10 = Icd10.substring(0, Icd10.length() - 1);
 | 
	
		
			
				|  |  |         Icd10Name = Icd10Name.substring(0, Icd10Name.length() - 1);
 | 
	
		
			
				|  |  |         outpatientDO.setIcd10(Icd10);
 | 
	
		
			
				|  |  |         outpatientDO.setIcd10Name(Icd10Name);
 | 
	
		
			
				|  |  |         outpatientDao.save(outpatientDO);
 | 
	
		
			
				|  |  |         //============================下诊断end==============================================================
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //判断是否有检查检验或药品开方
 | 
	
		
			
				|  |  |         if("1".equals(type)){
 | 
	
		
			
				|  |  |         if ("1".equals(type)) {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             //doctor转换为his医生
 | 
	
		
			
				|  |  |             DoctorMappingDO doctorMappingDO = doctorMappingService.findMappingCode(outpatientDO.getDoctor(),outpatientDO.getHospital());
 | 
	
		
			
				|  |  |             if(doctorMappingDO==null){
 | 
	
		
			
				|  |  |             DoctorMappingDO doctorMappingDO = doctorMappingService.findMappingCode(outpatientDO.getDoctor(), outpatientDO.getHospital());
 | 
	
		
			
				|  |  |             if (doctorMappingDO == null) {
 | 
	
		
			
				|  |  |                 throw new RuntimeException("未找到医生映射信息");
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  | 
 | 
	
	
		
			
				|  | @ -1722,22 +1766,22 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |             //===================药品操作======================================================
 | 
	
		
			
				|  |  |             // 删除原有药品信息
 | 
	
		
			
				|  |  |             List<WlyyPrescriptionInfoDO> oldInfos = prescriptionInfoDao.findByPrescriptionId(prescription.getId());
 | 
	
		
			
				|  |  |             if(oldInfos!=null&&oldInfos.size()>0){
 | 
	
		
			
				|  |  |             if (oldInfos != null && oldInfos.size() > 0) {
 | 
	
		
			
				|  |  |                 prescriptionInfoDao.delete(oldInfos);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             //存储药品,构建his开方入参
 | 
	
		
			
				|  |  |             if(StringUtils.isNotBlank(infoJsons)){
 | 
	
		
			
				|  |  |             if (StringUtils.isNotBlank(infoJsons)) {
 | 
	
		
			
				|  |  |                 //药品
 | 
	
		
			
				|  |  |                 List<WlyyPrescriptionInfoDO> infoDOs = (List<WlyyPrescriptionInfoDO>) com.alibaba.fastjson.JSONArray.parseArray(infoJsons, WlyyPrescriptionInfoDO.class);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 for(WlyyPrescriptionInfoDO info:infoDOs){
 | 
	
		
			
				|  |  |                 for (WlyyPrescriptionInfoDO info : infoDOs) {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                     info.setDel(1);
 | 
	
		
			
				|  |  |                     info.setPrescriptionId(prescription.getId());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                     //设置his药品查询条件
 | 
	
		
			
				|  |  |                     setInfoJsonParam(jsonData,doctorMappingDO,outpatientDO,prescriptionDO,info,Icd10);
 | 
	
		
			
				|  |  |                     setInfoJsonParam(jsonData, doctorMappingDO, outpatientDO, prescriptionDO, info, Icd10);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 //保存药品信息
 | 
	
		
			
				|  |  |                 prescriptionInfoDao.save(infoDOs);
 | 
	
	
		
			
				|  | @ -1752,20 +1796,20 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |             //存储检查检验,构建his开方入参
 | 
	
		
			
				|  |  |             //删除之前检查检验
 | 
	
		
			
				|  |  |             List<WlyyInspectionDO> inspectionDels = wlyyInspectionDao.findByOutpatientId(outPatientId);
 | 
	
		
			
				|  |  |             if(inspectionDels!=null&&inspectionDels.size()>0){
 | 
	
		
			
				|  |  |             if (inspectionDels != null && inspectionDels.size() > 0) {
 | 
	
		
			
				|  |  |                 wlyyInspectionDao.delete(inspectionDels);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             if(StringUtils.isNotBlank(inspectionJson)){
 | 
	
		
			
				|  |  |             if (StringUtils.isNotBlank(inspectionJson)) {
 | 
	
		
			
				|  |  |                 List<WlyyInspectionDO> inspections = (List<WlyyInspectionDO>) com.alibaba.fastjson.JSONArray.parseArray(inspectionJson, WlyyInspectionDO.class);
 | 
	
		
			
				|  |  |                 for(WlyyInspectionDO ins:inspections){
 | 
	
		
			
				|  |  |                 for (WlyyInspectionDO ins : inspections) {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                     ins.setCreateTime(new Date());
 | 
	
		
			
				|  |  |                     ins.setPrescriptionId(prescription.getId());
 | 
	
		
			
				|  |  |                     ins.setOutpatientId(outPatientId);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                     //设置his药品查询条件
 | 
	
		
			
				|  |  |                     setInspectionParam(jsonData,doctorMappingDO,outpatientDO,prescriptionDO,ins,Icd10);
 | 
	
		
			
				|  |  |                     setInspectionParam(jsonData, doctorMappingDO, outpatientDO, prescriptionDO, ins, Icd10);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 //保存检查检验。
 | 
	
		
			
				|  |  |                 wlyyInspectionDao.save(inspections);
 | 
	
	
		
			
				|  | @ -1781,14 +1825,14 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |             prescriptionDao.save(prescription);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             //上传his开方
 | 
	
		
			
				|  |  |             return sendHisDiagnosis(jsonData,outpatientDO,prescription);
 | 
	
		
			
				|  |  |             return sendHisDiagnosis(jsonData, outpatientDO, prescription);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         }else{
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             outpatientDO.setStatus("2");
 | 
	
		
			
				|  |  |             outpatientDao.save(outpatientDO);
 | 
	
		
			
				|  |  |             result.put("code",1);
 | 
	
		
			
				|  |  |             result.put("mes","诊断完成");
 | 
	
		
			
				|  |  |             result.put("code", 1);
 | 
	
		
			
				|  |  |             result.put("mes", "诊断完成");
 | 
	
		
			
				|  |  |             return result;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
	
		
			
				|  | @ -1796,57 +1840,60 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 计算药品费用
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param infoDOs
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public Double getInfoFee(List<WlyyPrescriptionInfoDO> infoDOs){
 | 
	
		
			
				|  |  |     public Double getInfoFee(List<WlyyPrescriptionInfoDO> infoDOs) {
 | 
	
		
			
				|  |  |         Double fee = 0D;
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             if(infoDOs!=null&&infoDOs.size()>0){
 | 
	
		
			
				|  |  |                 for(WlyyPrescriptionInfoDO info:infoDOs){
 | 
	
		
			
				|  |  |             if (infoDOs != null && infoDOs.size() > 0) {
 | 
	
		
			
				|  |  |                 for (WlyyPrescriptionInfoDO info : infoDOs) {
 | 
	
		
			
				|  |  |                     Integer quantity = Integer.parseInt(info.getQuantity());
 | 
	
		
			
				|  |  |                     fee += info.getPackRetprice()*quantity;
 | 
	
		
			
				|  |  |                     fee += info.getPackRetprice() * quantity;
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }catch (Exception e){
 | 
	
		
			
				|  |  |             logger.error("getInfoFee:"+e.toString());
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             logger.error("getInfoFee:" + e.toString());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return fee;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 计算检查检验费用
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param inspections
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public Double getInsFee(List<WlyyInspectionDO> inspections){
 | 
	
		
			
				|  |  |     public Double getInsFee(List<WlyyInspectionDO> inspections) {
 | 
	
		
			
				|  |  |         Double fee = 0D;
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             if(inspections!=null&&inspections.size()>0){
 | 
	
		
			
				|  |  |                 for(WlyyInspectionDO ins:inspections){
 | 
	
		
			
				|  |  |             if (inspections != null && inspections.size() > 0) {
 | 
	
		
			
				|  |  |                 for (WlyyInspectionDO ins : inspections) {
 | 
	
		
			
				|  |  |                     Double chargeAmount = Double.parseDouble(ins.getChargeAmount());
 | 
	
		
			
				|  |  |                     fee += chargeAmount*ins.getQuantity();
 | 
	
		
			
				|  |  |                     fee += chargeAmount * ins.getQuantity();
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }catch (Exception e){
 | 
	
		
			
				|  |  |             logger.error("getInsFee:"+e.toString());
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             logger.error("getInsFee:" + e.toString());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return fee;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 计算挂号费用
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param doctor
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public Double getChargeFee(String doctor){
 | 
	
		
			
				|  |  |     public Double getChargeFee(String doctor) {
 | 
	
		
			
				|  |  |         Double fee = 0D;
 | 
	
		
			
				|  |  |         try{
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             BaseDoctorDO doctorDO = baseDoctorDao.findById(doctor);
 | 
	
		
			
				|  |  |             WlyyChargeDictDO chargeDictDO = wlyyChargeDictDao.findByChargeTypeAndDeptTypeCode(doctorDO.getChargeType(),"6");
 | 
	
		
			
				|  |  |             WlyyChargeDictDO chargeDictDO = wlyyChargeDictDao.findByChargeTypeAndDeptTypeCode(doctorDO.getChargeType(), "6");
 | 
	
		
			
				|  |  |             return chargeDictDO.getReqFee();
 | 
	
		
			
				|  |  |         }catch (Exception e){
 | 
	
		
			
				|  |  |             logger.error("getChargeFee:"+e.toString());
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             logger.error("getChargeFee:" + e.toString());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return fee;
 | 
	
	
		
			
				|  | @ -1854,18 +1901,19 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 上传his开方
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param jsonData
 | 
	
		
			
				|  |  |      * @param outpatientDO
 | 
	
		
			
				|  |  |      * @param prescription
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public Map<String,Object> sendHisDiagnosis(com.alibaba.fastjson.JSONArray jsonData,WlyyOutpatientDO outpatientDO,WlyyPrescriptionDO prescription)throws Exception{
 | 
	
		
			
				|  |  |         Map<String,Object> result = new HashedMap();
 | 
	
		
			
				|  |  |     public Map<String, Object> sendHisDiagnosis(com.alibaba.fastjson.JSONArray jsonData, WlyyOutpatientDO outpatientDO, WlyyPrescriptionDO prescription) throws Exception {
 | 
	
		
			
				|  |  |         Map<String, Object> result = new HashedMap();
 | 
	
		
			
				|  |  |         //调用his开方接口
 | 
	
		
			
				|  |  |         net.sf.json.JSONObject jsonObject = entranceService.BS10112(jsonData.toJSONString(),demoFlag);
 | 
	
		
			
				|  |  |         net.sf.json.JSONObject jsonObject = entranceService.BS10112(jsonData.toJSONString(), demoFlag);
 | 
	
		
			
				|  |  |         //如果无法解析his系统报文,his系统报错
 | 
	
		
			
				|  |  |         if(jsonObject==null){
 | 
	
		
			
				|  |  |         if (jsonObject == null) {
 | 
	
		
			
				|  |  |             //记录http日志
 | 
	
		
			
				|  |  |             WlyyHttpLogDO log = new WlyyHttpLogDO();
 | 
	
		
			
				|  |  |             log.setCode("makeDiagnosis");
 | 
	
	
		
			
				|  | @ -1882,15 +1930,15 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |             prescription.setStatus(13);
 | 
	
		
			
				|  |  |             prescriptionDao.save(prescription);
 | 
	
		
			
				|  |  |             //记录开发失败日志
 | 
	
		
			
				|  |  |             prescriptionLogService.addPrescriptionLog(prescription.getId(),13,2,outpatientDO.getDoctor(),outpatientDO.getDoctorName(),"",new Date());
 | 
	
		
			
				|  |  |             prescriptionLogService.addPrescriptionLog(prescription.getId(), 13, 2, outpatientDO.getDoctor(), outpatientDO.getDoctorName(), "", new Date());
 | 
	
		
			
				|  |  |             //开方失败返回值
 | 
	
		
			
				|  |  |             result.put("code",-1);
 | 
	
		
			
				|  |  |             result.put("mes","开方失败,his系统异常");
 | 
	
		
			
				|  |  |             result.put("code", -1);
 | 
	
		
			
				|  |  |             result.put("mes", "开方失败,his系统异常");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             return result;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         logger.info("调用his开方接口: "+jsonObject.toString());
 | 
	
		
			
				|  |  |         logger.info("调用his开方接口: " + jsonObject.toString());
 | 
	
		
			
				|  |  |         //判断返回结果
 | 
	
		
			
				|  |  |         String rs = jsonObject.getString("@RESULT");
 | 
	
		
			
				|  |  |         //保存日志
 | 
	
	
		
			
				|  | @ -1905,7 +1953,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |         log.setCreateTime(new Date());
 | 
	
		
			
				|  |  |         wlyyHttpLogDao.save(log);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         if("0".equals(rs)){
 | 
	
		
			
				|  |  |         if ("0".equals(rs)) {
 | 
	
		
			
				|  |  |             String admNo = jsonObject.getString("@ADM_NO");
 | 
	
		
			
				|  |  |             String realOrder = jsonObject.getString("@real_order");
 | 
	
		
			
				|  |  | 
 | 
	
	
		
			
				|  | @ -1915,19 +1963,19 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |             outpatientDO.setAdmNo(admNo);
 | 
	
		
			
				|  |  |             outpatientDao.save(outpatientDO);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             result.put("code",1);
 | 
	
		
			
				|  |  |             result.put("mes","开方提交成功");
 | 
	
		
			
				|  |  |             result.put("code", 1);
 | 
	
		
			
				|  |  |             result.put("mes", "开方提交成功");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             return result;
 | 
	
		
			
				|  |  |         }else{
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             //开方失败
 | 
	
		
			
				|  |  |             result.put("code",-1);
 | 
	
		
			
				|  |  |             result.put("mes",jsonObject.getString("@MSG"));
 | 
	
		
			
				|  |  |             result.put("code", -1);
 | 
	
		
			
				|  |  |             result.put("mes", jsonObject.getString("@MSG"));
 | 
	
		
			
				|  |  |             //更新处方状态
 | 
	
		
			
				|  |  |             prescription.setStatus(13);
 | 
	
		
			
				|  |  |             prescriptionDao.save(prescription);
 | 
	
		
			
				|  |  |             //记录开发失败日志
 | 
	
		
			
				|  |  |             prescriptionLogService.addPrescriptionLog(prescription.getId(),13,2,outpatientDO.getDoctor(),outpatientDO.getDoctorName(),"",new Date());
 | 
	
		
			
				|  |  |             prescriptionLogService.addPrescriptionLog(prescription.getId(), 13, 2, outpatientDO.getDoctor(), outpatientDO.getDoctorName(), "", new Date());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             return result;
 | 
	
		
			
				|  |  |         }
 | 
	
	
		
			
				|  | @ -1935,132 +1983,135 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 设置检查检验his入参
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param jsonData
 | 
	
		
			
				|  |  |      * @param doctorMappingDO
 | 
	
		
			
				|  |  |      * @param outpatientDO
 | 
	
		
			
				|  |  |      * @param inspectionDO
 | 
	
		
			
				|  |  |      * @param Icd10
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public void setInspectionParam(com.alibaba.fastjson.JSONArray jsonData,DoctorMappingDO doctorMappingDO,WlyyOutpatientDO outpatientDO,WlyyPrescriptionDO prescriptionDO,WlyyInspectionDO inspectionDO,String Icd10){
 | 
	
		
			
				|  |  |     public void setInspectionParam(com.alibaba.fastjson.JSONArray jsonData, DoctorMappingDO doctorMappingDO, WlyyOutpatientDO outpatientDO, WlyyPrescriptionDO prescriptionDO, WlyyInspectionDO inspectionDO, String Icd10) {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         com.alibaba.fastjson.JSONObject json = new com.alibaba.fastjson.JSONObject();
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(prescriptionDO.getRealOrder())){
 | 
	
		
			
				|  |  |             json.put("realOrder",prescriptionDO.getRealOrder());
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(prescriptionDO.getRealOrder())) {
 | 
	
		
			
				|  |  |             json.put("realOrder", prescriptionDO.getRealOrder());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         json.put("cardNo",outpatientDO.getCardNo());
 | 
	
		
			
				|  |  |         json.put("doctor",doctorMappingDO.getMappingCode());
 | 
	
		
			
				|  |  |         json.put("dept",outpatientDO.getDept());
 | 
	
		
			
				|  |  |         json.put("cardNo", outpatientDO.getCardNo());
 | 
	
		
			
				|  |  |         json.put("doctor", doctorMappingDO.getMappingCode());
 | 
	
		
			
				|  |  |         json.put("dept", outpatientDO.getDept());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         json.put("frequency",inspectionDO.getFrequency()); //组号
 | 
	
		
			
				|  |  |         json.put("quantity",inspectionDO.getQuantity()); //数量
 | 
	
		
			
				|  |  |         json.put("serialNo",outpatientDO.getRegisterNo()); //挂号流水号-必输
 | 
	
		
			
				|  |  |         json.put("groupNo","00"); //-库房号
 | 
	
		
			
				|  |  |         json.put("serial","00"); //药品序列号-必输
 | 
	
		
			
				|  |  |         json.put("frequency", inspectionDO.getFrequency()); //组号
 | 
	
		
			
				|  |  |         json.put("quantity", inspectionDO.getQuantity()); //数量
 | 
	
		
			
				|  |  |         json.put("serialNo", outpatientDO.getRegisterNo()); //挂号流水号-必输
 | 
	
		
			
				|  |  |         json.put("groupNo", "00"); //-库房号
 | 
	
		
			
				|  |  |         json.put("serial", "00"); //药品序列号-必输
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         json.put("winNo",outpatientDO.getWinNo());
 | 
	
		
			
				|  |  |         json.put("chargeFlag",2); //项目类别-必输  1-药品 2检验检查
 | 
	
		
			
				|  |  |         json.put("winNo", outpatientDO.getWinNo());
 | 
	
		
			
				|  |  |         json.put("chargeFlag", 2); //项目类别-必输  1-药品 2检验检查
 | 
	
		
			
				|  |  |         /**
 | 
	
		
			
				|  |  |           *  code;//项目编码',
 | 
	
		
			
				|  |  |           *  name;//(检查方法)',
 | 
	
		
			
				|  |  |           *  information;//病史与体征',
 | 
	
		
			
				|  |  |           *  checkEquip;//类别',
 | 
	
		
			
				|  |  |           *  checkPart;//部位',
 | 
	
		
			
				|  |  |           *  adresult;//辅助检查治疗',
 | 
	
		
			
				|  |  |           *  goal;//检查目的',
 | 
	
		
			
				|  |  |           *  opview;//手术所见-病理申请单必填',
 | 
	
		
			
				|  |  |           *  specimenName;//标本名称-病理申请单必填',
 | 
	
		
			
				|  |  |           *  specimenNum;//标本数量-病理申请单必填',
 | 
	
		
			
				|  |  |           *  ywjcResult;//以往检查结果-病理申请单选填',
 | 
	
		
			
				|  |  |           *  ywjcDate;//以往检查时间-病理申请单选填 格式:yyyy-mm-dd',
 | 
	
		
			
				|  |  |           *  blzd;//病理诊断-病理申请单选填',
 | 
	
		
			
				|  |  |           *  fixationfluid;//固定液
 | 
	
		
			
				|  |  |          *  code;//项目编码',
 | 
	
		
			
				|  |  |          *  name;//(检查方法)',
 | 
	
		
			
				|  |  |          *  information;//病史与体征',
 | 
	
		
			
				|  |  |          *  checkEquip;//类别',
 | 
	
		
			
				|  |  |          *  checkPart;//部位',
 | 
	
		
			
				|  |  |          *  adresult;//辅助检查治疗',
 | 
	
		
			
				|  |  |          *  goal;//检查目的',
 | 
	
		
			
				|  |  |          *  opview;//手术所见-病理申请单必填',
 | 
	
		
			
				|  |  |          *  specimenName;//标本名称-病理申请单必填',
 | 
	
		
			
				|  |  |          *  specimenNum;//标本数量-病理申请单必填',
 | 
	
		
			
				|  |  |          *  ywjcResult;//以往检查结果-病理申请单选填',
 | 
	
		
			
				|  |  |          *  ywjcDate;//以往检查时间-病理申请单选填 格式:yyyy-mm-dd',
 | 
	
		
			
				|  |  |          *  blzd;//病理诊断-病理申请单选填',
 | 
	
		
			
				|  |  |          *  fixationfluid;//固定液
 | 
	
		
			
				|  |  |          */
 | 
	
		
			
				|  |  |         json.put("parentCode",inspectionDO.getParentCode()); //父节点
 | 
	
		
			
				|  |  |         json.put("chargeCode",inspectionDO.getCode()); //项目编码
 | 
	
		
			
				|  |  |         json.put("name",inspectionDO.getName()); //挂号流水号-必输
 | 
	
		
			
				|  |  |         json.put("information",inspectionDO.getInformation());//库房号-必输
 | 
	
		
			
				|  |  |         json.put("checkEquip",inspectionDO.getCheckEquip()); //药品序列号-必输
 | 
	
		
			
				|  |  |         json.put("checkPart",inspectionDO.getCheckPart());
 | 
	
		
			
				|  |  |         json.put("adresult",inspectionDO.getAdresult());
 | 
	
		
			
				|  |  |         json.put("goal",inspectionDO.getGoal());
 | 
	
		
			
				|  |  |         json.put("opview",inspectionDO.getOpview());
 | 
	
		
			
				|  |  |         json.put("specimenName",inspectionDO.getSpecimenName());
 | 
	
		
			
				|  |  |         json.put("specimenNum",inspectionDO.getSpecimenNum());
 | 
	
		
			
				|  |  |         json.put("ywjcResult",inspectionDO.getYwjcResult());
 | 
	
		
			
				|  |  |         json.put("ywjcDate",inspectionDO.getYwjcDate());
 | 
	
		
			
				|  |  |         json.put("blzd",inspectionDO.getBlzd());
 | 
	
		
			
				|  |  |         json.put("fixationfluid",inspectionDO.getFixationfluid());
 | 
	
		
			
				|  |  |         json.put("parentCode", inspectionDO.getParentCode()); //父节点
 | 
	
		
			
				|  |  |         json.put("chargeCode", inspectionDO.getCode()); //项目编码
 | 
	
		
			
				|  |  |         json.put("name", inspectionDO.getName()); //挂号流水号-必输
 | 
	
		
			
				|  |  |         json.put("information", inspectionDO.getInformation());//库房号-必输
 | 
	
		
			
				|  |  |         json.put("checkEquip", inspectionDO.getCheckEquip()); //药品序列号-必输
 | 
	
		
			
				|  |  |         json.put("checkPart", inspectionDO.getCheckPart());
 | 
	
		
			
				|  |  |         json.put("adresult", inspectionDO.getAdresult());
 | 
	
		
			
				|  |  |         json.put("goal", inspectionDO.getGoal());
 | 
	
		
			
				|  |  |         json.put("opview", inspectionDO.getOpview());
 | 
	
		
			
				|  |  |         json.put("specimenName", inspectionDO.getSpecimenName());
 | 
	
		
			
				|  |  |         json.put("specimenNum", inspectionDO.getSpecimenNum());
 | 
	
		
			
				|  |  |         json.put("ywjcResult", inspectionDO.getYwjcResult());
 | 
	
		
			
				|  |  |         json.put("ywjcDate", inspectionDO.getYwjcDate());
 | 
	
		
			
				|  |  |         json.put("blzd", inspectionDO.getBlzd());
 | 
	
		
			
				|  |  |         json.put("fixationfluid", inspectionDO.getFixationfluid());
 | 
	
		
			
				|  |  |         //设置诊断
 | 
	
		
			
				|  |  |         setIcd10(json,Icd10);
 | 
	
		
			
				|  |  |         setIcd10(json, Icd10);
 | 
	
		
			
				|  |  |         jsonData.add(json);
 | 
	
		
			
				|  |  |         logger.info("json:" +json.toString());
 | 
	
		
			
				|  |  |         logger.info("json:" + json.toString());
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 设置药品his入参
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param jsonData
 | 
	
		
			
				|  |  |      * @param doctorMappingDO
 | 
	
		
			
				|  |  |      * @param outpatientDO
 | 
	
		
			
				|  |  |      * @param info
 | 
	
		
			
				|  |  |      * @param Icd10
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public void setInfoJsonParam(com.alibaba.fastjson.JSONArray jsonData,DoctorMappingDO doctorMappingDO,WlyyOutpatientDO outpatientDO,WlyyPrescriptionDO prescriptionDO,WlyyPrescriptionInfoDO info,String Icd10){
 | 
	
		
			
				|  |  |     public void setInfoJsonParam(com.alibaba.fastjson.JSONArray jsonData, DoctorMappingDO doctorMappingDO, WlyyOutpatientDO outpatientDO, WlyyPrescriptionDO prescriptionDO, WlyyPrescriptionInfoDO info, String Icd10) {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         com.alibaba.fastjson.JSONObject json = new com.alibaba.fastjson.JSONObject();
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(prescriptionDO.getRealOrder())){
 | 
	
		
			
				|  |  |             json.put("realOrder",prescriptionDO.getRealOrder());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         json.put("cardNo",outpatientDO.getCardNo());
 | 
	
		
			
				|  |  |         json.put("doctor",doctorMappingDO.getMappingCode());
 | 
	
		
			
				|  |  |         json.put("dept",outpatientDO.getDept());
 | 
	
		
			
				|  |  |         json.put("chargeCode",info.getDrugNo());
 | 
	
		
			
				|  |  |         json.put("winNo",outpatientDO.getWinNo());
 | 
	
		
			
				|  |  |         json.put("chargeFlag",1); //项目类别-必输  1-药品 2检验检查
 | 
	
		
			
				|  |  |         json.put("quantity",info.getQuantity()); //数量-必输
 | 
	
		
			
				|  |  |         json.put("serialNo",outpatientDO.getRegisterNo()); //挂号流水号-必输
 | 
	
		
			
				|  |  |         json.put("groupNo",info.getGroupNo());//库房号-必输
 | 
	
		
			
				|  |  |         json.put("serial",info.getSerial()); //药品序列号-必输
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         json.put("dosage",info.getDosage());
 | 
	
		
			
				|  |  |         json.put("unit",info.getUnit());
 | 
	
		
			
				|  |  |         json.put("usage",info.getUsageCode());
 | 
	
		
			
				|  |  |         json.put("supplyCode",info.getSupplyCode());
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(info.getDays())){
 | 
	
		
			
				|  |  |             json.put("days",info.getDays());
 | 
	
		
			
				|  |  |         }else{
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(prescriptionDO.getRealOrder())) {
 | 
	
		
			
				|  |  |             json.put("realOrder", prescriptionDO.getRealOrder());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         json.put("cardNo", outpatientDO.getCardNo());
 | 
	
		
			
				|  |  |         json.put("doctor", doctorMappingDO.getMappingCode());
 | 
	
		
			
				|  |  |         json.put("dept", outpatientDO.getDept());
 | 
	
		
			
				|  |  |         json.put("chargeCode", info.getDrugNo());
 | 
	
		
			
				|  |  |         json.put("winNo", outpatientDO.getWinNo());
 | 
	
		
			
				|  |  |         json.put("chargeFlag", 1); //项目类别-必输  1-药品 2检验检查
 | 
	
		
			
				|  |  |         json.put("quantity", info.getQuantity()); //数量-必输
 | 
	
		
			
				|  |  |         json.put("serialNo", outpatientDO.getRegisterNo()); //挂号流水号-必输
 | 
	
		
			
				|  |  |         json.put("groupNo", info.getGroupNo());//库房号-必输
 | 
	
		
			
				|  |  |         json.put("serial", info.getSerial()); //药品序列号-必输
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         json.put("dosage", info.getDosage());
 | 
	
		
			
				|  |  |         json.put("unit", info.getUnit());
 | 
	
		
			
				|  |  |         json.put("usage", info.getUsageCode());
 | 
	
		
			
				|  |  |         json.put("supplyCode", info.getSupplyCode());
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(info.getDays())) {
 | 
	
		
			
				|  |  |             json.put("days", info.getDays());
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             //如果是中草药,贴数为天数,没有默认1天
 | 
	
		
			
				|  |  |             json.put("days",StringUtils.isNotBlank(info.getPostCount())?info.getPostCount():"1");
 | 
	
		
			
				|  |  |             json.put("days", StringUtils.isNotBlank(info.getPostCount()) ? info.getPostCount() : "1");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         json.put("frequency",info.getFrequency());
 | 
	
		
			
				|  |  |         json.put("comm",info.getComm());
 | 
	
		
			
				|  |  |         json.put("frequency", info.getFrequency());
 | 
	
		
			
				|  |  |         json.put("comm", info.getComm());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //设置诊断
 | 
	
		
			
				|  |  |         setIcd10(json,Icd10);
 | 
	
		
			
				|  |  |         setIcd10(json, Icd10);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         jsonData.add(json);
 | 
	
		
			
				|  |  |         logger.info("json:" +json.toString());
 | 
	
		
			
				|  |  |         logger.info("json:" + json.toString());
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public void setIcd10(com.alibaba.fastjson.JSONObject json,String Icd10){
 | 
	
		
			
				|  |  |     public void setIcd10(com.alibaba.fastjson.JSONObject json, String Icd10) {
 | 
	
		
			
				|  |  |         String Icd10s[] = Icd10.split(",");
 | 
	
		
			
				|  |  |         for(int i=0;i<Icd10s.length;i++){
 | 
	
		
			
				|  |  |             if(i==0){
 | 
	
		
			
				|  |  |                 json.put("icdCode",Icd10s[i]);
 | 
	
		
			
				|  |  |             }else if(i==1){
 | 
	
		
			
				|  |  |                 json.put("diagTwo",Icd10s[i]);
 | 
	
		
			
				|  |  |             }else if(i==2){
 | 
	
		
			
				|  |  |                 json.put("diagThree",Icd10s[i]);
 | 
	
		
			
				|  |  |             }else if(i==3){
 | 
	
		
			
				|  |  |                 json.put("diagFour",Icd10s[i]);
 | 
	
		
			
				|  |  |             }else if(i==4){
 | 
	
		
			
				|  |  |                 json.put("diagFive",Icd10s[i]);
 | 
	
		
			
				|  |  |         for (int i = 0; i < Icd10s.length; i++) {
 | 
	
		
			
				|  |  |             if (i == 0) {
 | 
	
		
			
				|  |  |                 json.put("icdCode", Icd10s[i]);
 | 
	
		
			
				|  |  |             } else if (i == 1) {
 | 
	
		
			
				|  |  |                 json.put("diagTwo", Icd10s[i]);
 | 
	
		
			
				|  |  |             } else if (i == 2) {
 | 
	
		
			
				|  |  |                 json.put("diagThree", Icd10s[i]);
 | 
	
		
			
				|  |  |             } else if (i == 3) {
 | 
	
		
			
				|  |  |                 json.put("diagFour", Icd10s[i]);
 | 
	
		
			
				|  |  |             } else if (i == 4) {
 | 
	
		
			
				|  |  |                 json.put("diagFive", Icd10s[i]);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 订单查询
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param status
 | 
	
		
			
				|  |  |      * @param oneselfPickupFlg
 | 
	
		
			
				|  |  |      * @param nameKey
 | 
	
	
		
			
				|  | @ -2070,8 +2121,8 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |      * @param size
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public MixEnvelop findExpressageList(String status,String oneselfPickupFlg,String nameKey,String startTime,String endTime,Integer page,Integer size){
 | 
	
		
			
				|  |  |         String totalSql="SELECT " +
 | 
	
		
			
				|  |  |     public MixEnvelop findExpressageList(String status, String oneselfPickupFlg, String nameKey, String startTime, String endTime, Integer page, Integer size) {
 | 
	
		
			
				|  |  |         String totalSql = "SELECT " +
 | 
	
		
			
				|  |  |                 " COUNT(1) AS total " +
 | 
	
		
			
				|  |  |                 " FROM " +
 | 
	
		
			
				|  |  |                 " wlyy_outpatient o " +
 | 
	
	
		
			
				|  | @ -2079,20 +2130,20 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |                 " JOIN wlyy_prescription_expressage e ON e.outpatient_id = o.id" +
 | 
	
		
			
				|  |  |                 " WHERE" +
 | 
	
		
			
				|  |  |                 " 1=1";
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(status)){
 | 
	
		
			
				|  |  |             totalSql+=" AND p.status in("+status+")";
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(status)) {
 | 
	
		
			
				|  |  |             totalSql += " AND p.status in(" + status + ")";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(oneselfPickupFlg)){
 | 
	
		
			
				|  |  |             totalSql+=" AND e.oneself_pickup_flg ="+oneselfPickupFlg;
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(oneselfPickupFlg)) {
 | 
	
		
			
				|  |  |             totalSql += " AND e.oneself_pickup_flg =" + oneselfPickupFlg;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(nameKey)){
 | 
	
		
			
				|  |  |             totalSql+=" AND e.name like '%"+nameKey+"%'";
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(nameKey)) {
 | 
	
		
			
				|  |  |             totalSql += " AND e.name like '%" + nameKey + "%'";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(startTime)){
 | 
	
		
			
				|  |  |             totalSql+=" AND e.create_time >='"+startTime+" 00:00:00'";
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(startTime)) {
 | 
	
		
			
				|  |  |             totalSql += " AND e.create_time >='" + startTime + " 00:00:00'";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(endTime)){
 | 
	
		
			
				|  |  |             totalSql+=" AND e.create_time <='"+endTime+" 23:59:59'";
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(endTime)) {
 | 
	
		
			
				|  |  |             totalSql += " AND e.create_time <='" + endTime + " 23:59:59'";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         List<Map<String, Object>> rstotal = jdbcTemplate.queryForList(totalSql);
 | 
	
		
			
				|  |  | 
 | 
	
	
		
			
				|  | @ -2100,7 +2151,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |         if (rstotal != null && rstotal.size() > 0) {
 | 
	
		
			
				|  |  |             count = (Long) rstotal.get(0).get("total");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         String sql ="SELECT " +
 | 
	
		
			
				|  |  |         String sql = "SELECT " +
 | 
	
		
			
				|  |  |                 " e.create_time AS createTime, " +
 | 
	
		
			
				|  |  |                 " e.`name`, " +
 | 
	
		
			
				|  |  |                 " e.oneself_pickup_flg AS oneselfPickupFlg, " +
 | 
	
	
		
			
				|  | @ -2115,44 +2166,44 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |                 " JOIN wlyy_prescription_expressage e ON e.outpatient_id = o.id " +
 | 
	
		
			
				|  |  |                 " WHERE" +
 | 
	
		
			
				|  |  |                 " 1=1";
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(status)){
 | 
	
		
			
				|  |  |             sql+=" AND p.status in("+status+")";
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(status)) {
 | 
	
		
			
				|  |  |             sql += " AND p.status in(" + status + ")";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(oneselfPickupFlg)){
 | 
	
		
			
				|  |  |             sql+=" AND e.oneself_pickup_flg ="+oneselfPickupFlg;
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(oneselfPickupFlg)) {
 | 
	
		
			
				|  |  |             sql += " AND e.oneself_pickup_flg =" + oneselfPickupFlg;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(nameKey)){
 | 
	
		
			
				|  |  |             sql+=" AND e.name like '%"+nameKey+"%'";
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(nameKey)) {
 | 
	
		
			
				|  |  |             sql += " AND e.name like '%" + nameKey + "%'";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(startTime)){
 | 
	
		
			
				|  |  |             sql+=" AND e.create_time >='"+startTime+" 00:00:00'";
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(startTime)) {
 | 
	
		
			
				|  |  |             sql += " AND e.create_time >='" + startTime + " 00:00:00'";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(StringUtils.isNotBlank(endTime)){
 | 
	
		
			
				|  |  |             sql+=" AND e.create_time <='"+endTime+" 23:59:59'";
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(endTime)) {
 | 
	
		
			
				|  |  |             sql += " AND e.create_time <='" + endTime + " 23:59:59'";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         sql += " LIMIT " + (page - 1) * size + "," + size + "";
 | 
	
		
			
				|  |  |         List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
 | 
	
		
			
				|  |  |         List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         return MixEnvelop.getSuccessListWithPage(BaseHospitalRequestMapping.Prescription.api_success, list, page, size, count);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public Boolean setMailno(String mailno, String expressageId){
 | 
	
		
			
				|  |  |         WlyyPrescriptionExpressageDO expressageDO =  prescriptionExpressageDao.findOne(expressageId);
 | 
	
		
			
				|  |  |     public Boolean setMailno(String mailno, String expressageId) {
 | 
	
		
			
				|  |  |         WlyyPrescriptionExpressageDO expressageDO = prescriptionExpressageDao.findOne(expressageId);
 | 
	
		
			
				|  |  |         expressageDO.setMailno(mailno);
 | 
	
		
			
				|  |  |         prescriptionExpressageDao.save(expressageDO);
 | 
	
		
			
				|  |  |         return true;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public void pushListWrite(OutputStream os, List<Map<String,Object>> ls) throws Exception{
 | 
	
		
			
				|  |  |     public void pushListWrite(OutputStream os, List<Map<String, Object>> ls) throws Exception {
 | 
	
		
			
				|  |  |         WritableWorkbook wwb = jxl.Workbook.createWorkbook(os);
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             WritableSheet ws;
 | 
	
		
			
				|  |  |             ws = wwb.createSheet("sheet",1);
 | 
	
		
			
				|  |  |             ws = wwb.createSheet("sheet", 1);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             String[] header = {"订单日期","收货人","诊断结果","配送方式", "订单状态"};
 | 
	
		
			
				|  |  |             String[] header = {"订单日期", "收货人", "诊断结果", "配送方式", "订单状态"};
 | 
	
		
			
				|  |  |             int k = 0;
 | 
	
		
			
				|  |  |             for (String h : header) {
 | 
	
		
			
				|  |  |                 addCell(ws, 0, k, h);//表名,行,列,header
 | 
	
	
		
			
				|  | @ -2160,12 +2211,12 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             int i = 1;
 | 
	
		
			
				|  |  |             for (Map<String,Object> m : ls) {
 | 
	
		
			
				|  |  |                 addCell(ws, i, 0, DateUtil.dateToStr((Date)m.get("createTime"),"yyyy-MM-dd HH:mm:ss"),"");
 | 
	
		
			
				|  |  |                 addCell(ws, i, 1, (String)m.get("name"),"");
 | 
	
		
			
				|  |  |                 addCell(ws, i, 2, (String)m.get("icd10Name"),"");
 | 
	
		
			
				|  |  |                 addCell(ws, i, 3, getOneselfPickupFlgString((Integer)m.get("oneselfPickupFlg")),"");
 | 
	
		
			
				|  |  |                 addCell(ws, i, 4, getStatusName((Integer)m.get("status")),"");
 | 
	
		
			
				|  |  |             for (Map<String, Object> m : ls) {
 | 
	
		
			
				|  |  |                 addCell(ws, i, 0, DateUtil.dateToStr((Date) m.get("createTime"), "yyyy-MM-dd HH:mm:ss"), "");
 | 
	
		
			
				|  |  |                 addCell(ws, i, 1, (String) m.get("name"), "");
 | 
	
		
			
				|  |  |                 addCell(ws, i, 2, (String) m.get("icd10Name"), "");
 | 
	
		
			
				|  |  |                 addCell(ws, i, 3, getOneselfPickupFlgString((Integer) m.get("oneselfPickupFlg")), "");
 | 
	
		
			
				|  |  |                 addCell(ws, i, 4, getStatusName((Integer) m.get("status")), "");
 | 
	
		
			
				|  |  |                 i++;
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             wwb.write();
 | 
	
	
		
			
				|  | @ -2178,45 +2229,44 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public String getOneselfPickupFlgString(Integer oneselfPickupFlg){
 | 
	
		
			
				|  |  |         if(1 == oneselfPickupFlg){
 | 
	
		
			
				|  |  |     public String getOneselfPickupFlgString(Integer oneselfPickupFlg) {
 | 
	
		
			
				|  |  |         if (1 == oneselfPickupFlg) {
 | 
	
		
			
				|  |  |             return "自取";
 | 
	
		
			
				|  |  |         }else if(0 == oneselfPickupFlg){
 | 
	
		
			
				|  |  |         } else if (0 == oneselfPickupFlg) {
 | 
	
		
			
				|  |  |             return "快递";
 | 
	
		
			
				|  |  |         }else{
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             return "其他";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param status
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public String getStatusName(Integer status){
 | 
	
		
			
				|  |  |         if(31==status){
 | 
	
		
			
				|  |  |     public String getStatusName(Integer status) {
 | 
	
		
			
				|  |  |         if (31 == status) {
 | 
	
		
			
				|  |  |             return "待配送";
 | 
	
		
			
				|  |  |         }else if(32==status){
 | 
	
		
			
				|  |  |         } else if (32 == status) {
 | 
	
		
			
				|  |  |             return "配送中";
 | 
	
		
			
				|  |  |         }else if(100==status){
 | 
	
		
			
				|  |  |         } else if (100 == status) {
 | 
	
		
			
				|  |  |             return "已完成";
 | 
	
		
			
				|  |  |         }else{
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             return "其他";
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     //添加单元格内容
 | 
	
		
			
				|  |  |     public void addCell(WritableSheet ws, int row, int column,  String data) throws WriteException {
 | 
	
		
			
				|  |  |         Label label = new Label(column ,row, data);
 | 
	
		
			
				|  |  |     public void addCell(WritableSheet ws, int row, int column, String data) throws WriteException {
 | 
	
		
			
				|  |  |         Label label = new Label(column, row, data);
 | 
	
		
			
				|  |  |         ws.addCell(label);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     //添加单元格内容
 | 
	
		
			
				|  |  |     public void addCell(WritableSheet ws, int row, int column, String data, String memo) throws WriteException {
 | 
	
		
			
				|  |  |         Label label = new Label(column ,row, data);
 | 
	
		
			
				|  |  |         if(!org.springframework.util.StringUtils.isEmpty(memo)){
 | 
	
		
			
				|  |  |         Label label = new Label(column, row, data);
 | 
	
		
			
				|  |  |         if (!org.springframework.util.StringUtils.isEmpty(memo)) {
 | 
	
		
			
				|  |  |             WritableCellFeatures cellFeatures = new WritableCellFeatures();
 | 
	
		
			
				|  |  |             cellFeatures.setComment(memo);
 | 
	
		
			
				|  |  |             label.setCellFeatures(cellFeatures);
 | 
	
	
		
			
				|  | @ -2224,14 +2274,14 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |         ws.addCell(label);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public List<WlyyChargeDictVO> findByDeptTypeCode(String deptTypeCode){
 | 
	
		
			
				|  |  |     public List<WlyyChargeDictVO> findByDeptTypeCode(String deptTypeCode) {
 | 
	
		
			
				|  |  |         List<WlyyChargeDictDO> dictDOs = wlyyChargeDictDao.findByDeptTypeCode(deptTypeCode);
 | 
	
		
			
				|  |  |         List<WlyyChargeDictVO> dictVOs = new ArrayList<>();
 | 
	
		
			
				|  |  |         return convertToModels(dictDOs,dictVOs,WlyyChargeDictVO.class);
 | 
	
		
			
				|  |  |         return convertToModels(dictDOs, dictVOs, WlyyChargeDictVO.class);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public List<WlyyDoctorWorkTimeVO> findDoctorWorkTime(String doctor){
 | 
	
		
			
				|  |  |     public List<WlyyDoctorWorkTimeVO> findDoctorWorkTime(String doctor) {
 | 
	
		
			
				|  |  |         //获取医生排班规则
 | 
	
		
			
				|  |  |         List<WlyyHospitalSysDictDO> list = sysDictDao.findByDictName("Scheduling");
 | 
	
		
			
				|  |  | 
 | 
	
	
		
			
				|  | @ -2245,93 +2295,93 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |         ecTime.setTime(new Date());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //设置几天号源,及最后天号源的开放时间
 | 
	
		
			
				|  |  |         int days =Integer.parseInt(findHospitalSysDictValue(list,"OpenDays"));
 | 
	
		
			
				|  |  |         String closeTime = findHospitalSysDictValue(list,"CloseTime");
 | 
	
		
			
				|  |  |         int days = Integer.parseInt(findHospitalSysDictValue(list, "OpenDays"));
 | 
	
		
			
				|  |  |         String closeTime = findHospitalSysDictValue(list, "CloseTime");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //比较当前时间是否超过开放时间
 | 
	
		
			
				|  |  |         if(DateUtil.strToDate(DateUtil.getTimeShort(),DateUtil.HH_MM_SS).after(DateUtil.strToDate(closeTime,DateUtil.HH_MM))){
 | 
	
		
			
				|  |  |         if (DateUtil.strToDate(DateUtil.getTimeShort(), DateUtil.HH_MM_SS).after(DateUtil.strToDate(closeTime, DateUtil.HH_MM))) {
 | 
	
		
			
				|  |  |             //当前时间超过开放时间,可以预约最后一天全部号源
 | 
	
		
			
				|  |  |             ecTime.add(Calendar.DAY_OF_MONTH,days);
 | 
	
		
			
				|  |  |             ecTime.set(ecTime.get(Calendar.YEAR),ecTime.get(Calendar.MONTH),ecTime.get(Calendar.DATE),23,59,59);
 | 
	
		
			
				|  |  |         }else{
 | 
	
		
			
				|  |  |             ecTime.add(Calendar.DAY_OF_MONTH, days);
 | 
	
		
			
				|  |  |             ecTime.set(ecTime.get(Calendar.YEAR), ecTime.get(Calendar.MONTH), ecTime.get(Calendar.DATE), 23, 59, 59);
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             //当前时间没超过开放时间,可以预约最后一天前一天全部号源
 | 
	
		
			
				|  |  |             ecTime.add(Calendar.DAY_OF_MONTH,days>1?days-1:0);
 | 
	
		
			
				|  |  |             ecTime.set(ecTime.get(Calendar.YEAR),ecTime.get(Calendar.MONTH),ecTime.get(Calendar.DATE),23,59,59);
 | 
	
		
			
				|  |  |             ecTime.add(Calendar.DAY_OF_MONTH, days > 1 ? days - 1 : 0);
 | 
	
		
			
				|  |  |             ecTime.set(ecTime.get(Calendar.YEAR), ecTime.get(Calendar.MONTH), ecTime.get(Calendar.DATE), 23, 59, 59);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         List<WlyyDoctorWorkTimeDO> times =  doctorWorkTimeDao.findDoctorWorkTime(doctor,scTime.getTime(),ecTime.getTime());
 | 
	
		
			
				|  |  |         List<WlyyDoctorWorkTimeDO> times = doctorWorkTimeDao.findDoctorWorkTime(doctor, scTime.getTime(), ecTime.getTime());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         workTimeFilter(list,times);
 | 
	
		
			
				|  |  |         workTimeFilter(list, times);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         List<WlyyDoctorWorkTimeVO> timeVOs = new ArrayList<>();
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         convertToModels(times,timeVOs,WlyyDoctorWorkTimeVO.class);
 | 
	
		
			
				|  |  |         convertToModels(times, timeVOs, WlyyDoctorWorkTimeVO.class);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         if(timeVOs!=null&&timeVOs.size()>0){
 | 
	
		
			
				|  |  |             for(WlyyDoctorWorkTimeVO timeVO : timeVOs){
 | 
	
		
			
				|  |  |         if (timeVOs != null && timeVOs.size() > 0) {
 | 
	
		
			
				|  |  |             for (WlyyDoctorWorkTimeVO timeVO : timeVOs) {
 | 
	
		
			
				|  |  |                 timeVO.setCount(findWorkTimeCount(timeVO.getId()));
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return timeVOs;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public List<WlyyDoctorWorkTimeDO> workTimeFilter(List<WlyyHospitalSysDictDO> sys,List<WlyyDoctorWorkTimeDO> times){
 | 
	
		
			
				|  |  |     public List<WlyyDoctorWorkTimeDO> workTimeFilter(List<WlyyHospitalSysDictDO> sys, List<WlyyDoctorWorkTimeDO> times) {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         if(times!=null&×.size()>0){
 | 
	
		
			
				|  |  |         if (times != null && times.size() > 0) {
 | 
	
		
			
				|  |  |             //上午号源开放的最早天数
 | 
	
		
			
				|  |  |             int AMCloseDays =Integer.parseInt(findHospitalSysDictValue(sys,"AMCloseDays"));
 | 
	
		
			
				|  |  |             int AMCloseDays = Integer.parseInt(findHospitalSysDictValue(sys, "AMCloseDays"));
 | 
	
		
			
				|  |  |             //每一天上午的最早预约的过号时间
 | 
	
		
			
				|  |  |             String AMCloseTime = findHospitalSysDictValue(sys,"AMCloseTime");
 | 
	
		
			
				|  |  |             String AMCloseTime = findHospitalSysDictValue(sys, "AMCloseTime");
 | 
	
		
			
				|  |  |             //下午号源开放的最早天数
 | 
	
		
			
				|  |  |             int PMCloseDays =Integer.parseInt(findHospitalSysDictValue(sys,"PMCloseDays"));
 | 
	
		
			
				|  |  |             int PMCloseDays = Integer.parseInt(findHospitalSysDictValue(sys, "PMCloseDays"));
 | 
	
		
			
				|  |  |             //每一天下午的最早预约的过号时间
 | 
	
		
			
				|  |  |             String PMCloseTime = findHospitalSysDictValue(sys,"PMCloseTime");
 | 
	
		
			
				|  |  |             String PMCloseTime = findHospitalSysDictValue(sys, "PMCloseTime");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             Iterator it = times.iterator();
 | 
	
		
			
				|  |  |             while (it.hasNext()){
 | 
	
		
			
				|  |  |             while (it.hasNext()) {
 | 
	
		
			
				|  |  |                 //设置上午过号时间
 | 
	
		
			
				|  |  |                 Calendar scAMTime = Calendar.getInstance();
 | 
	
		
			
				|  |  |                 scAMTime.setTime(new Date());
 | 
	
		
			
				|  |  |                 scAMTime.add(Calendar.DAY_OF_MONTH,AMCloseDays);
 | 
	
		
			
				|  |  |                 scAMTime.add(Calendar.DAY_OF_MONTH, AMCloseDays);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 //设置下午午过号时间
 | 
	
		
			
				|  |  |                 Calendar scPMTime = Calendar.getInstance();
 | 
	
		
			
				|  |  |                 scPMTime.setTime(new Date());
 | 
	
		
			
				|  |  |                 scPMTime.add(Calendar.DAY_OF_MONTH,PMCloseDays);
 | 
	
		
			
				|  |  |                 scPMTime.add(Calendar.DAY_OF_MONTH, PMCloseDays);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 WlyyDoctorWorkTimeDO time = (WlyyDoctorWorkTimeDO)it.next();
 | 
	
		
			
				|  |  |                 WlyyDoctorWorkTimeDO time = (WlyyDoctorWorkTimeDO) it.next();
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 Boolean filter = true;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 //1.【上午的排班中】 且 【排班结束时间】如果在【开放时间】前,则移除
 | 
	
		
			
				|  |  |                 if(filter&&"1".equals(time.getTimeType())&&time.getEndTime().before(scAMTime.getTime())){
 | 
	
		
			
				|  |  |                 if (filter && "1".equals(time.getTimeType()) && time.getEndTime().before(scAMTime.getTime())) {
 | 
	
		
			
				|  |  |                     it.remove();
 | 
	
		
			
				|  |  |                     filter=false;
 | 
	
		
			
				|  |  |                     filter = false;
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 //2.【下午午的排班中】 且 【排班结束时间】如果在【开放时间】前,则移除该排班
 | 
	
		
			
				|  |  |                 if(filter&&"2".equals(time.getTimeType())&&time.getEndTime().before(scPMTime.getTime())){
 | 
	
		
			
				|  |  |                 if (filter && "2".equals(time.getTimeType()) && time.getEndTime().before(scPMTime.getTime())) {
 | 
	
		
			
				|  |  |                     it.remove();
 | 
	
		
			
				|  |  |                     filter=false;
 | 
	
		
			
				|  |  |                     filter = false;
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 //3.如果【当前时间】过了【上午放号时间】,则移除所有上午的排班
 | 
	
		
			
				|  |  |                 if(filter&&"1".equals(time.getTimeType())&&
 | 
	
		
			
				|  |  |                         DateUtil.strToDate(DateUtil.getTimeShort(),DateUtil.HH_MM_SS).after(DateUtil.strToDate(AMCloseTime,DateUtil.HH_MM))){
 | 
	
		
			
				|  |  |                     scAMTime.set(scAMTime.get(Calendar.YEAR),scAMTime.get(Calendar.MONTH),scAMTime.get(Calendar.DATE),12,00,00);
 | 
	
		
			
				|  |  |                 if (filter && "1".equals(time.getTimeType()) &&
 | 
	
		
			
				|  |  |                         DateUtil.strToDate(DateUtil.getTimeShort(), DateUtil.HH_MM_SS).after(DateUtil.strToDate(AMCloseTime, DateUtil.HH_MM))) {
 | 
	
		
			
				|  |  |                     scAMTime.set(scAMTime.get(Calendar.YEAR), scAMTime.get(Calendar.MONTH), scAMTime.get(Calendar.DATE), 12, 00, 00);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                     if(time.getEndTime().before(scAMTime.getTime())){
 | 
	
		
			
				|  |  |                     if (time.getEndTime().before(scAMTime.getTime())) {
 | 
	
		
			
				|  |  |                         it.remove();
 | 
	
		
			
				|  |  |                         filter=false;
 | 
	
		
			
				|  |  |                         filter = false;
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 //4.如果【当前时间】过了【下午午放号时间】,则移除所有下午的排班
 | 
	
		
			
				|  |  |                 if(filter&&"2".equals(time.getTimeType())&&
 | 
	
		
			
				|  |  |                         DateUtil.strToDate(DateUtil.getTimeShort(),DateUtil.HH_MM_SS).after(DateUtil.strToDate(PMCloseTime,DateUtil.HH_MM))){
 | 
	
		
			
				|  |  |                     scPMTime.set(scAMTime.get(Calendar.YEAR),scAMTime.get(Calendar.MONTH),scAMTime.get(Calendar.DATE),12,00,00);
 | 
	
		
			
				|  |  |                 if (filter && "2".equals(time.getTimeType()) &&
 | 
	
		
			
				|  |  |                         DateUtil.strToDate(DateUtil.getTimeShort(), DateUtil.HH_MM_SS).after(DateUtil.strToDate(PMCloseTime, DateUtil.HH_MM))) {
 | 
	
		
			
				|  |  |                     scPMTime.set(scAMTime.get(Calendar.YEAR), scAMTime.get(Calendar.MONTH), scAMTime.get(Calendar.DATE), 12, 00, 00);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                     if(time.getEndTime().before(scPMTime.getTime())){
 | 
	
		
			
				|  |  |                     if (time.getEndTime().before(scPMTime.getTime())) {
 | 
	
		
			
				|  |  |                         it.remove();
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
	
		
			
				|  | @ -2341,11 +2391,11 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public String findHospitalSysDictValue(List<WlyyHospitalSysDictDO> list,String dictCode){
 | 
	
		
			
				|  |  |     public String findHospitalSysDictValue(List<WlyyHospitalSysDictDO> list, String dictCode) {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         if(list!=null&&list.size()>0){
 | 
	
		
			
				|  |  |             for(WlyyHospitalSysDictDO sysDictDO : list){
 | 
	
		
			
				|  |  |                 if(dictCode.equals(sysDictDO.getDictCode())){
 | 
	
		
			
				|  |  |         if (list != null && list.size() > 0) {
 | 
	
		
			
				|  |  |             for (WlyyHospitalSysDictDO sysDictDO : list) {
 | 
	
		
			
				|  |  |                 if (dictCode.equals(sysDictDO.getDictCode())) {
 | 
	
		
			
				|  |  |                     return sysDictDO.getDictValue();
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
	
		
			
				|  | @ -2355,17 +2405,80 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 获取卡信息
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param cardNo
 | 
	
		
			
				|  |  |      * @param demoFlag
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public net.sf.json.JSONObject getCardInfo(String cardNo, boolean demoFlag) throws Exception {
 | 
	
		
			
				|  |  |         return entranceService.qutpatientBalance(cardNo,demoFlag);
 | 
	
		
			
				|  |  |         return entranceService.qutpatientBalance(cardNo, demoFlag);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 新排班号源详情
 | 
	
		
			
				|  |  |      * @param id
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public List<Map<String,Object>> findWorkTimeInfo(String id){
 | 
	
		
			
				|  |  |         WlyyDoctorWorkTimeDO timeDO = doctorWorkTimeDao.findOne(id);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         Long ss = timeDO.getEndTime().getTime()-timeDO.getStartTime().getTime();
 | 
	
		
			
				|  |  |         Long s = ss/timeDO.getSourceNumber();
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         Calendar sc = Calendar.getInstance();
 | 
	
		
			
				|  |  |         sc.setTime(timeDO.getStartTime());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         List<Map<String,Object>> rs = new ArrayList<>();
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //1.根据当前时间,去取已过时间的号源
 | 
	
		
			
				|  |  |         while (sc.getTime().before(timeDO.getEndTime())){
 | 
	
		
			
				|  |  |             if(new Date().before(sc.getTime())){
 | 
	
		
			
				|  |  |                 break;
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             //加上时间间隔
 | 
	
		
			
				|  |  |             Date temp =new Date();
 | 
	
		
			
				|  |  |             temp.setTime(sc.getTime().getTime()+s);
 | 
	
		
			
				|  |  |             sc.setTime(temp);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         List<WlyyPatientRegisterTimeDO> registerTimeDOs = patientRegisterTimeDao.findByDoctorAndWorkId(timeDO.getDoctor(),id);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //2.根据时间间隔拆分号源
 | 
	
		
			
				|  |  |         while (sc.getTime().before(timeDO.getEndTime())){
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             Map<String,Object> t = new HashedMap();
 | 
	
		
			
				|  |  |             t.put("startTime",DateUtil.dateToStr(sc.getTime(),"yyyy-MM-dd HH:mm:ss"));
 | 
	
		
			
				|  |  |             //加上时间间隔
 | 
	
		
			
				|  |  |             Date temp =new Date();
 | 
	
		
			
				|  |  |             temp.setTime(sc.getTime().getTime()+s);
 | 
	
		
			
				|  |  |             sc.setTime(temp);
 | 
	
		
			
				|  |  | //            sc.add(Calendar.MINUTE,timeDO.getTimeInterval());
 | 
	
		
			
				|  |  |             //如果结束时间大于排班时间则不再拆分号源
 | 
	
		
			
				|  |  |             if(sc.getTime().after(timeDO.getEndTime())){
 | 
	
		
			
				|  |  |                 break;
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             t.put("endTime",DateUtil.dateToStr(sc.getTime(),"yyyy-MM-dd HH:mm:ss"));
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             //如果号源被预约了,标记为true
 | 
	
		
			
				|  |  |             Boolean registered = false;
 | 
	
		
			
				|  |  |             if(registerTimeDOs!=null&®isterTimeDOs.size()>0){
 | 
	
		
			
				|  |  |                 for(WlyyPatientRegisterTimeDO registerTimeDO : registerTimeDOs){
 | 
	
		
			
				|  |  |                     if(t.get("startTime").equals(DateUtil.dateToStr(registerTimeDO.getStartTime(),"yyyy-MM-dd HH:mm:ss"))){
 | 
	
		
			
				|  |  |                         registered = true;
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             t.put("registered",registered);
 | 
	
		
			
				|  |  |             rs.add(t);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         return rs;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Deprecated
 | 
	
		
			
				|  |  |     public List<Map<String,Object>> findWorkTimeInfoOld(String id){
 | 
	
		
			
				|  |  |         WlyyDoctorWorkTimeDO timeDO = doctorWorkTimeDao.findOne(id);
 | 
	
		
			
				|  |  |         Calendar sc = Calendar.getInstance();
 | 
	
		
			
				|  |  |         sc.setTime(timeDO.getStartTime());
 | 
	
		
			
				|  |  | 
 | 
	
	
		
			
				|  | @ -3409,6 +3522,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
 | 
	
		
			
				|  |  |                     t.setEndTime(time.getEndTime());
 | 
	
		
			
				|  |  |                     t.setDate(time.getDate());
 | 
	
		
			
				|  |  |                     t.setTimeInterval(time.getTimeInterval());
 | 
	
		
			
				|  |  |                     t.setSourceNumber(time.getSourceNumber());
 | 
	
		
			
				|  |  |                     rs.add(t);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 logger.info(rs.size()+"");
 |