|  | @ -3,11 +3,24 @@ package com.yihu.wlyy.service.app.prescription;
 | 
												
													
														
															|  | import com.alibaba.fastjson.JSON;
 |  | import com.alibaba.fastjson.JSON;
 | 
												
													
														
															|  | import com.alibaba.fastjson.JSONArray;
 |  | import com.alibaba.fastjson.JSONArray;
 | 
												
													
														
															|  | import com.alibaba.fastjson.JSONObject;
 |  | import com.alibaba.fastjson.JSONObject;
 | 
												
													
														
															|  | 
 |  | import com.yihu.wlyy.entity.followup.Followup;
 | 
												
													
														
															|  | 
 |  | import com.yihu.wlyy.entity.followup.FollowupDrugs;
 | 
												
													
														
															|  | 
 |  | import com.yihu.wlyy.entity.patient.prescription.Prescription;
 | 
												
													
														
															|  | import com.yihu.wlyy.entity.patient.prescription.PrescriptionFollowupContent;
 |  | import com.yihu.wlyy.entity.patient.prescription.PrescriptionFollowupContent;
 | 
												
													
														
															|  | 
 |  | import com.yihu.wlyy.entity.patient.prescription.PrescriptionInfo;
 | 
												
													
														
															|  | 
 |  | import com.yihu.wlyy.repository.followup.FollowUpDao;
 | 
												
													
														
															|  | 
 |  | import com.yihu.wlyy.repository.followup.FollowupDrugsDao;
 | 
												
													
														
															|  | 
 |  | import com.yihu.wlyy.repository.prescription.PrescriptionDao;
 | 
												
													
														
															|  | import com.yihu.wlyy.repository.prescription.PrescriptionFollowupContentDao;
 |  | import com.yihu.wlyy.repository.prescription.PrescriptionFollowupContentDao;
 | 
												
													
														
															|  | 
 |  | import com.yihu.wlyy.repository.prescription.PrescriptionInfoDao;
 | 
												
													
														
															|  | import com.yihu.wlyy.service.BaseService;
 |  | import com.yihu.wlyy.service.BaseService;
 | 
												
													
														
															|  | 
 |  | import com.yihu.wlyy.service.app.followup.FollowUpService;
 | 
												
													
														
															|  | 
 |  | import com.yihu.wlyy.service.app.health.PatientHealthIndexService;
 | 
												
													
														
															|  | 
 |  | import com.yihu.wlyy.util.DateUtil;
 | 
												
													
														
															|  | 
 |  | import com.yihu.wlyy.util.ImUtill;
 | 
												
													
														
															|  | import org.apache.commons.lang.StringUtils;
 |  | import org.apache.commons.lang.StringUtils;
 | 
												
													
														
															|  | import org.springframework.beans.factory.annotation.Autowired;
 |  | import org.springframework.beans.factory.annotation.Autowired;
 | 
												
													
														
															|  | 
 |  | import org.springframework.jdbc.core.JdbcTemplate;
 | 
												
													
														
															|  | import org.springframework.stereotype.Component;
 |  | import org.springframework.stereotype.Component;
 | 
												
													
														
															|  | import org.springframework.stereotype.Service;
 |  | import org.springframework.stereotype.Service;
 | 
												
													
														
															|  | import org.springframework.transaction.annotation.Transactional;
 |  | import org.springframework.transaction.annotation.Transactional;
 | 
												
											
												
													
														
															|  | @ -26,6 +39,22 @@ public class PrescriptionFollowupContentService extends BaseService {
 | 
												
													
														
															|  | 	
 |  | 	
 | 
												
													
														
															|  | 	@Autowired
 |  | 	@Autowired
 | 
												
													
														
															|  | 	private PrescriptionFollowupContentDao prescriptionFollowupContentDao;
 |  | 	private PrescriptionFollowupContentDao prescriptionFollowupContentDao;
 | 
												
													
														
															|  | 
 |  | 	@Autowired
 | 
												
													
														
															|  | 
 |  | 	private PrescriptionInfoDao prescriptionInfoDao;
 | 
												
													
														
															|  | 
 |  | 	@Autowired
 | 
												
													
														
															|  | 
 |  | 	private FollowupDrugsDao followupDrugsDao;
 | 
												
													
														
															|  | 
 |  | 	@Autowired
 | 
												
													
														
															|  | 
 |  | 	private PrescriptionDao prescriptionDao;
 | 
												
													
														
															|  | 
 |  | 	@Autowired
 | 
												
													
														
															|  | 
 |  | 	private PatientHealthIndexService healthIndexService;
 | 
												
													
														
															|  | 
 |  | 	@Autowired
 | 
												
													
														
															|  | 
 |  | 	private FollowUpService followUpService;
 | 
												
													
														
															|  | 
 |  | 	@Autowired
 | 
												
													
														
															|  | 
 |  | 	private FollowUpDao followUpDao;
 | 
												
													
														
															|  | 
 |  | 	@Autowired
 | 
												
													
														
															|  | 
 |  | 	private ImUtill ImUtill;
 | 
												
													
														
															|  | 
 |  | 	@Autowired
 | 
												
													
														
															|  | 
 |  | 	JdbcTemplate jdbcTemplate;
 | 
												
													
														
															|  | 	
 |  | 	
 | 
												
													
														
															|  | 	/**
 |  | 	/**
 | 
												
													
														
															|  | 	 * 根据续方CODE,文件类型获取数据
 |  | 	 * 根据续方CODE,文件类型获取数据
 | 
												
											
												
													
														
															|  | @ -55,9 +84,10 @@ public class PrescriptionFollowupContentService extends BaseService {
 | 
												
													
														
															|  | 	 * 保存随访调查分类数据
 |  | 	 * 保存随访调查分类数据
 | 
												
													
														
															|  | 	 * @param prescriptioncode
 |  | 	 * @param prescriptioncode
 | 
												
													
														
															|  | 	 * @param followupProjectData
 |  | 	 * @param followupProjectData
 | 
												
													
														
															|  | 
 |  | 	 * @param sendIM
 | 
												
													
														
															|  | 	 * @throws Exception
 |  | 	 * @throws Exception
 | 
												
													
														
															|  | 	 */
 |  | 	 */
 | 
												
													
														
															|  | 	public void saveInfo(String prescriptioncode, String followupProjectData,String patientCode) throws Exception{
 |  | 
 | 
												
													
														
															|  | 
 |  | 	public void saveInfo(String prescriptioncode, String followupProjectData,String patientCode,boolean sendIM) throws Exception{
 | 
												
													
														
															|  | 		JSONArray objects = JSON.parseArray(followupProjectData);
 |  | 		JSONArray objects = JSON.parseArray(followupProjectData);
 | 
												
													
														
															|  | 		
 |  | 		
 | 
												
													
														
															|  | 		if(objects!= null & objects.size() >0){
 |  | 		if(objects!= null & objects.size() >0){
 | 
												
											
												
													
														
															|  | @ -67,7 +97,7 @@ public class PrescriptionFollowupContentService extends BaseService {
 | 
												
													
														
															|  | 				String followupProject = jsonObject.getString("followupProject");
 |  | 				String followupProject = jsonObject.getString("followupProject");
 | 
												
													
														
															|  | 				String projectValueStr = jsonObject.getString("projectData");
 |  | 				String projectValueStr = jsonObject.getString("projectData");
 | 
												
													
														
															|  | 				if(StringUtils.isNotBlank(projectValueStr)){
 |  | 				if(StringUtils.isNotBlank(projectValueStr)){
 | 
												
													
														
															|  | 					HashMap<String,String> projectValueMap = (HashMap)JSON.parse(projectValueStr);
 |  | 
 | 
												
													
														
															|  | 
 |  | 					Map<String,String> projectValueMap = (Map)JSON.parse(projectValueStr);
 | 
												
													
														
															|  | 					if(!projectValueMap.isEmpty()){
 |  | 					if(!projectValueMap.isEmpty()){
 | 
												
													
														
															|  | 						projectValueMap.forEach( (key,value)->{
 |  | 						projectValueMap.forEach( (key,value)->{
 | 
												
													
														
															|  | 							PrescriptionFollowupContent prescriptionFollowupContent = new PrescriptionFollowupContent();
 |  | 							PrescriptionFollowupContent prescriptionFollowupContent = new PrescriptionFollowupContent();
 | 
												
											
												
													
														
															|  | @ -84,6 +114,19 @@ public class PrescriptionFollowupContentService extends BaseService {
 | 
												
													
														
															|  | 				if(!savedatas.isEmpty()){
 |  | 				if(!savedatas.isEmpty()){
 | 
												
													
														
															|  | 					prescriptionFollowupContentDao.deleteByPrescriptioncodeAndFollowupProject(prescriptioncode,followupProject);
 |  | 					prescriptionFollowupContentDao.deleteByPrescriptioncodeAndFollowupProject(prescriptioncode,followupProject);
 | 
												
													
														
															|  | 					prescriptionFollowupContentDao.save(savedatas);
 |  | 					prescriptionFollowupContentDao.save(savedatas);
 | 
												
													
														
															|  | 
 |  | 					
 | 
												
													
														
															|  | 
 |  | 					if(sendIM){
 | 
												
													
														
															|  | 
 |  | 						org.json.JSONObject content = new org.json.JSONObject();
 | 
												
													
														
															|  | 
 |  | 						content.put("title", "【本消息为系统提醒】:");
 | 
												
													
														
															|  | 
 |  | 						if("1".equals(followupProject)){
 | 
												
													
														
															|  | 
 |  | 							content.put("text", "居民已填写《身份异常症状问卷》");
 | 
												
													
														
															|  | 
 |  | 						}else{
 | 
												
													
														
															|  | 
 |  | 							content.put("text", "居民已填写《体征及生活方式调查问卷》");
 | 
												
													
														
															|  | 
 |  | 						}
 | 
												
													
														
															|  | 
 |  | 						content.put("sysMsg","填写完成并提交后,医生将可以查看您的问卷内容");
 | 
												
													
														
															|  | 
 |  | 						Prescription p = prescriptionDao.findByCode(prescriptioncode);
 | 
												
													
														
															|  | 
 |  | 						ImUtill.sendTopicIM(p.getDoctor(), p.getDoctorName(), p.getConsult(), "17", content.toString(), null);
 | 
												
													
														
															|  | 
 |  | 					}
 | 
												
													
														
															|  | 				}
 |  | 				}
 | 
												
													
														
															|  | 			}
 |  | 			}
 | 
												
													
														
															|  | 			
 |  | 			
 | 
												
											
												
													
														
															|  | @ -136,7 +179,7 @@ public class PrescriptionFollowupContentService extends BaseService {
 | 
												
													
														
															|  | 			JSONObject jsonObject1 = new JSONObject();
 |  | 			JSONObject jsonObject1 = new JSONObject();
 | 
												
													
														
															|  | 			jsonObject1.put("type","1");
 |  | 			jsonObject1.put("type","1");
 | 
												
													
														
															|  | 			jsonObject1.put("name","身份异常症状问卷");
 |  | 			jsonObject1.put("name","身份异常症状问卷");
 | 
												
													
														
															|  | 			jsonObject1.put("statue","已填写");
 |  | 
 | 
												
													
														
															|  | 
 |  | 			jsonObject1.put("statue","1");//1已填写,2未填写
 | 
												
													
														
															|  | 			jsonObject1.put("createtime",prescriptionFollowupContent1.getCreateTime());
 |  | 			jsonObject1.put("createtime",prescriptionFollowupContent1.getCreateTime());
 | 
												
													
														
															|  | 			result.add(jsonObject1);
 |  | 			result.add(jsonObject1);
 | 
												
													
														
															|  | 		}
 |  | 		}
 | 
												
											
												
													
														
															|  | @ -145,11 +188,336 @@ public class PrescriptionFollowupContentService extends BaseService {
 | 
												
													
														
															|  | 			JSONObject jsonObject2 = new JSONObject();
 |  | 			JSONObject jsonObject2 = new JSONObject();
 | 
												
													
														
															|  | 			jsonObject2.put("type","2");
 |  | 			jsonObject2.put("type","2");
 | 
												
													
														
															|  | 			jsonObject2.put("name","体征及生活方式调查问卷");
 |  | 			jsonObject2.put("name","体征及生活方式调查问卷");
 | 
												
													
														
															|  | 			jsonObject2.put("statue","已填写");
 |  | 
 | 
												
													
														
															|  | 
 |  | 			jsonObject2.put("statue","1");//1已填写,2未填写
 | 
												
													
														
															|  | 			jsonObject2.put("createtime",prescriptionFollowupContent1.getCreateTime());
 |  | 			jsonObject2.put("createtime",prescriptionFollowupContent1.getCreateTime());
 | 
												
													
														
															|  | 			result.add(jsonObject2);
 |  | 			result.add(jsonObject2);
 | 
												
													
														
															|  | 		}
 |  | 		}
 | 
												
													
														
															|  | 		
 |  | 		
 | 
												
													
														
															|  | 		return result;
 |  | 		return result;
 | 
												
													
														
															|  | 	}
 |  | 	}
 | 
												
													
														
															|  | 
 |  | 	
 | 
												
													
														
															|  | 
 |  | 	/**
 | 
												
													
														
															|  | 
 |  | 	 * 续方药品导入随访记录
 | 
												
													
														
															|  | 
 |  | 	 * @param prescriptioncode
 | 
												
													
														
															|  | 
 |  | 	 * @param followup_id
 | 
												
													
														
															|  | 
 |  | 	 */
 | 
												
													
														
															|  | 
 |  | 	public void importPrescriptionDrugsToFollowup(String prescriptioncode, String followup_id) throws Exception {
 | 
												
													
														
															|  | 
 |  | 		
 | 
												
													
														
															|  | 
 |  | 		
 | 
												
													
														
															|  | 
 |  | 		
 | 
												
													
														
															|  | 
 |  | 		Long followupId = Long.valueOf(followup_id);
 | 
												
													
														
															|  | 
 |  | 		
 | 
												
													
														
															|  | 
 |  | 		Followup followup =followUpDao.findOne(followupId);
 | 
												
													
														
															|  | 
 |  | 		
 | 
												
													
														
															|  | 
 |  | 		if(followup == null){
 | 
												
													
														
															|  | 
 |  | 			throw new Exception("未找到随访记录!");
 | 
												
													
														
															|  | 
 |  | 		}
 | 
												
													
														
															|  | 
 |  | 		
 | 
												
													
														
															|  | 
 |  | 		//删除原有用药记录
 | 
												
													
														
															|  | 
 |  | 		followupDrugsDao.deleteByFollowupId(Long.valueOf(followupId));
 | 
												
													
														
															|  | 
 |  | 		
 | 
												
													
														
															|  | 
 |  | 		List<PrescriptionInfo> list = prescriptionInfoDao.findByPrescriptionCode(prescriptioncode);
 | 
												
													
														
															|  | 
 |  | 		
 | 
												
													
														
															|  | 
 |  | 		if(list!=null && list.size()>0)
 | 
												
													
														
															|  | 
 |  | 		{
 | 
												
													
														
															|  | 
 |  | 			List<FollowupDrugs> newList = new ArrayList<>();
 | 
												
													
														
															|  | 
 |  | 			for(PrescriptionInfo prescriptionInfo:list)
 | 
												
													
														
															|  | 
 |  | 			{
 | 
												
													
														
															|  | 
 |  | 				FollowupDrugs drug = new FollowupDrugs();
 | 
												
													
														
															|  | 
 |  | 				drug.setFollowupId(followupId);
 | 
												
													
														
															|  | 
 |  | 				
 | 
												
													
														
															|  | 
 |  | 				if(prescriptionInfo.getDrugName().contains("胰岛素") &&prescriptionInfo.getSubjectClass().contains("010")){
 | 
												
													
														
															|  | 
 |  | 					drug.setDrugsGroup("insulin");
 | 
												
													
														
															|  | 
 |  | 				}else{
 | 
												
													
														
															|  | 
 |  | 					drug.setDrugsGroup("normal");
 | 
												
													
														
															|  | 
 |  | 				}
 | 
												
													
														
															|  | 
 |  | 				drug.setDrugsCode(prescriptionInfo.getDrugCode());
 | 
												
													
														
															|  | 
 |  | 				drug.setDrugsName(prescriptionInfo.getDrugName());
 | 
												
													
														
															|  | 
 |  | 				drug.setDose(prescriptionInfo.getPhysicDose());
 | 
												
													
														
															|  | 
 |  | 				drug.setUnit(prescriptionInfo.getDrugNumUnit());
 | 
												
													
														
															|  | 
 |  | 				drug.setFrequency(prescriptionInfo.getDrugRate());
 | 
												
													
														
															|  | 
 |  | 				drug.setCreateTime(new Date());
 | 
												
													
														
															|  | 
 |  | 				newList.add(drug);
 | 
												
													
														
															|  | 
 |  | 			}
 | 
												
													
														
															|  | 
 |  | 			followupDrugsDao.save(newList);
 | 
												
													
														
															|  | 
 |  | 		}
 | 
												
													
														
															|  | 
 |  | 	}
 | 
												
													
														
															|  | 
 |  | 	
 | 
												
													
														
															|  | 
 |  | 	/**
 | 
												
													
														
															|  | 
 |  | 	 * 续方患者的血糖导入随访记录
 | 
												
													
														
															|  | 
 |  | 	 * @param prescriptioncode
 | 
												
													
														
															|  | 
 |  | 	 * @param followup_id
 | 
												
													
														
															|  | 
 |  | 	 */
 | 
												
													
														
															|  | 
 |  | 	public void importPatientBloodSugarToFollowup(String prescriptioncode, String followup_id,boolean sendIM) throws Exception {
 | 
												
													
														
															|  | 
 |  | 		Long followupId = Long.valueOf(followup_id);
 | 
												
													
														
															|  | 
 |  | 		
 | 
												
													
														
															|  | 
 |  | 		Followup followup =followUpDao.findOne(followupId);
 | 
												
													
														
															|  | 
 |  | 		
 | 
												
													
														
															|  | 
 |  | 		if(followup == null){
 | 
												
													
														
															|  | 
 |  | 			throw new Exception("未找到随访记录!");
 | 
												
													
														
															|  | 
 |  | 		}
 | 
												
													
														
															|  | 
 |  | 		
 | 
												
													
														
															|  | 
 |  | 		Prescription prescription = prescriptionDao.findByCode(prescriptioncode);
 | 
												
													
														
															|  | 
 |  | 		
 | 
												
													
														
															|  | 
 |  | 		String patientCode = prescription.getParentCode();
 | 
												
													
														
															|  | 
 |  | 		
 | 
												
													
														
															|  | 
 |  | 		String stardate = DateUtil.getNextMonth(new Date(),-30)+" 00:00:00";
 | 
												
													
														
															|  | 
 |  | 		String enddate = DateUtil.getStringDateShort()+" 23:59:59";
 | 
												
													
														
															|  | 
 |  | 		
 | 
												
													
														
															|  | 
 |  | 		List<Object> list = healthIndexService.findIndexByPatient2(patientCode, 1, stardate, enddate, 0, 2);
 | 
												
													
														
															|  | 
 |  | 		
 | 
												
													
														
															|  | 
 |  | 		
 | 
												
													
														
															|  | 
 |  | 		String followupProjectData = "";
 | 
												
													
														
															|  | 
 |  | 		
 | 
												
													
														
															|  | 
 |  | 		org.json.JSONObject contentDoctor = new org.json.JSONObject();
 | 
												
													
														
															|  | 
 |  | 		org.json.JSONObject contentPatient = new org.json.JSONObject();
 | 
												
													
														
															|  | 
 |  | 		String imBloodSugarValue = "";
 | 
												
													
														
															|  | 
 |  | 		String imBloodSugarDate = "";
 | 
												
													
														
															|  | 
 |  | 		
 | 
												
													
														
															|  | 
 |  | 		if(!list.isEmpty()){
 | 
												
													
														
															|  | 
 |  | 			
 | 
												
													
														
															|  | 
 |  | 			for (Object o: list) {
 | 
												
													
														
															|  | 
 |  | 				
 | 
												
													
														
															|  | 
 |  | 				JSONObject obj = (JSONObject)o;
 | 
												
													
														
															|  | 
 |  | 				
 | 
												
													
														
															|  | 
 |  | 				imBloodSugarDate = obj.getString("recordDate");
 | 
												
													
														
															|  | 
 |  | 				
 | 
												
													
														
															|  | 
 |  | 				//餐前
 | 
												
													
														
															|  | 
 |  | 				if(StringUtils.isNotBlank(obj.getString("value1"))){
 | 
												
													
														
															|  | 
 |  | 					followupProjectData = "{'BS_FPG':'"+obj.getString("value1")+"'}";
 | 
												
													
														
															|  | 
 |  | 					imBloodSugarValue = obj.getString("value1");
 | 
												
													
														
															|  | 
 |  | 					break;
 | 
												
													
														
															|  | 
 |  | 				}
 | 
												
													
														
															|  | 
 |  | 				
 | 
												
													
														
															|  | 
 |  | 				if(StringUtils.isNotBlank(obj.getString("value3"))){
 | 
												
													
														
															|  | 
 |  | 					followupProjectData = "{'BS_FPG':'"+obj.getString("value3")+"'}";
 | 
												
													
														
															|  | 
 |  | 					imBloodSugarValue = obj.getString("value3");
 | 
												
													
														
															|  | 
 |  | 					break;
 | 
												
													
														
															|  | 
 |  | 				}
 | 
												
													
														
															|  | 
 |  | 				
 | 
												
													
														
															|  | 
 |  | 				if(StringUtils.isNotBlank(obj.getString("value5"))){
 | 
												
													
														
															|  | 
 |  | 					followupProjectData = "{'BS_FPG':'"+obj.getString("value5")+"'}";
 | 
												
													
														
															|  | 
 |  | 					imBloodSugarValue = obj.getString("value5");
 | 
												
													
														
															|  | 
 |  | 					break;
 | 
												
													
														
															|  | 
 |  | 				}
 | 
												
													
														
															|  | 
 |  | 				//餐后
 | 
												
													
														
															|  | 
 |  | 				if(StringUtils.isNotBlank(obj.getString("value2"))){
 | 
												
													
														
															|  | 
 |  | 					followupProjectData = "{'NO_BS_FPG':'"+obj.getString("value2")+"'}";
 | 
												
													
														
															|  | 
 |  | 					imBloodSugarValue = obj.getString("value2");
 | 
												
													
														
															|  | 
 |  | 					break;
 | 
												
													
														
															|  | 
 |  | 				}
 | 
												
													
														
															|  | 
 |  | 				
 | 
												
													
														
															|  | 
 |  | 				
 | 
												
													
														
															|  | 
 |  | 				if(StringUtils.isNotBlank(obj.getString("value4"))){
 | 
												
													
														
															|  | 
 |  | 					followupProjectData = "{'NO_BS_FPG':'"+obj.getString("value4")+"'}";
 | 
												
													
														
															|  | 
 |  | 					imBloodSugarValue = obj.getString("value4");
 | 
												
													
														
															|  | 
 |  | 					break;
 | 
												
													
														
															|  | 
 |  | 				}
 | 
												
													
														
															|  | 
 |  | 				
 | 
												
													
														
															|  | 
 |  | 				if(StringUtils.isNotBlank(obj.getString("value6"))){
 | 
												
													
														
															|  | 
 |  | 					followupProjectData = "{'NO_BS_FPG':'"+obj.getString("value6")+"'}";
 | 
												
													
														
															|  | 
 |  | 					imBloodSugarValue = obj.getString("value6");
 | 
												
													
														
															|  | 
 |  | 					break;
 | 
												
													
														
															|  | 
 |  | 				}
 | 
												
													
														
															|  | 
 |  | 				
 | 
												
													
														
															|  | 
 |  | 				//随机血糖
 | 
												
													
														
															|  | 
 |  | 				if(StringUtils.isNotBlank(obj.getString("value7"))){
 | 
												
													
														
															|  | 
 |  | 					followupProjectData = "{'RANDOM_BLOOD_SUGAR':'"+obj.getString("value7")+"'}";
 | 
												
													
														
															|  | 
 |  | 					imBloodSugarValue = obj.getString("value7");
 | 
												
													
														
															|  | 
 |  | 					break;
 | 
												
													
														
															|  | 
 |  | 				}
 | 
												
													
														
															|  | 
 |  | 			}
 | 
												
													
														
															|  | 
 |  | 			
 | 
												
													
														
															|  | 
 |  | 			followUpService.esSaveFollowupProjectData(followup_id, "3", followupProjectData);
 | 
												
													
														
															|  | 
 |  | 			
 | 
												
													
														
															|  | 
 |  | 			//是否需要发送IM消息
 | 
												
													
														
															|  | 
 |  | 			if(sendIM){
 | 
												
													
														
															|  | 
 |  | 				//医生发送的消息
 | 
												
													
														
															|  | 
 |  | 				contentDoctor.put("text", "请提供您最近一次的血糖检测数值及检测时间");
 | 
												
													
														
															|  | 
 |  | 				contentDoctor.put("needupload",false);
 | 
												
													
														
															|  | 
 |  | 				int total = 0;
 | 
												
													
														
															|  | 
 |  | 				String sql = "select sum(category_code) amount deviceType FROM wlyy_patient_device WHERE user="+prescription.getPatient();
 | 
												
													
														
															|  | 
 |  | 				List<Map<String,Object>> result =  jdbcTemplate.queryForList(sql);
 | 
												
													
														
															|  | 
 |  | 				if (result != null && result.size() > 0) {
 | 
												
													
														
															|  | 
 |  | 					total = (result.get(0).get("amount") != null ? Integer.parseInt(result.get(0).get("amount").toString()) : 0);
 | 
												
													
														
															|  | 
 |  | 				}
 | 
												
													
														
															|  | 
 |  | 				if(total != 1 || total != 3){
 | 
												
													
														
															|  | 
 |  | 					contentDoctor.put("deviceMsg","您未绑定血糖智能设备,请手动上传体征数据,绑定设备后系统将会自动将您的体征数据上报给医生");
 | 
												
													
														
															|  | 
 |  | 				}
 | 
												
													
														
															|  | 
 |  | 				
 | 
												
													
														
															|  | 
 |  | 				//医生发送Im消息
 | 
												
													
														
															|  | 
 |  | 				ImUtill.sendTopicIM(prescription.getDoctor(), prescription.getDoctorName(), prescription.getConsult(), "16", contentDoctor.toString(), null);
 | 
												
													
														
															|  | 
 |  | 				
 | 
												
													
														
															|  | 
 |  | 				//患者发送的消息
 | 
												
													
														
															|  | 
 |  | 				contentPatient.put("title", "【本消息为系统提醒】:");
 | 
												
													
														
															|  | 
 |  | 				contentPatient.put("tzMsg", "体征记录:血糖"+imBloodSugarValue);
 | 
												
													
														
															|  | 
 |  | 				contentPatient.put("tzTime", "检测时间:"+imBloodSugarDate);
 | 
												
													
														
															|  | 
 |  | 				contentPatient.put("tzAlert","温馨提示:本条体征为居民上传的健康体征数据,您可以自动填入本次随访记录");
 | 
												
													
														
															|  | 
 |  | 				
 | 
												
													
														
															|  | 
 |  | 				//患者发送Im消息
 | 
												
													
														
															|  | 
 |  | 				ImUtill.sendTopicIM(prescription.getPatient(), prescription.getPatientName(), prescription.getConsult(), "16", contentPatient.toString(), null);
 | 
												
													
														
															|  | 
 |  | 			}
 | 
												
													
														
															|  | 
 |  | 		}else{
 | 
												
													
														
															|  | 
 |  | 			//是否需要发送IM消息
 | 
												
													
														
															|  | 
 |  | 			if(sendIM){
 | 
												
													
														
															|  | 
 |  | 				//医生发送的消息
 | 
												
													
														
															|  | 
 |  | 				contentDoctor.put("text", "居民近30天未上传血糖体征数据,已通知居民上传数据,请耐心等待");
 | 
												
													
														
															|  | 
 |  | 				contentDoctor.put("needupload",true);
 | 
												
													
														
															|  | 
 |  | 			}else{
 | 
												
													
														
															|  | 
 |  | 				throw new Exception("未找到30天内的血糖记录!");
 | 
												
													
														
															|  | 
 |  | 			}
 | 
												
													
														
															|  | 
 |  | 		}
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  | 	}
 | 
												
													
														
															|  | 
 |  | 	
 | 
												
													
														
															|  | 
 |  | 	/**
 | 
												
													
														
															|  | 
 |  | 	 * 续方患者的血压导入随访记录
 | 
												
													
														
															|  | 
 |  | 	 * @param prescriptioncode
 | 
												
													
														
															|  | 
 |  | 	 * @param followup_id
 | 
												
													
														
															|  | 
 |  | 	 * @param sendIM 是否发送IM消息
 | 
												
													
														
															|  | 
 |  | 	 */
 | 
												
													
														
															|  | 
 |  | 	public void importPatientBloodPressureToFollowup(String prescriptioncode, String followup_id,boolean sendIM) throws Exception {
 | 
												
													
														
															|  | 
 |  | 		
 | 
												
													
														
															|  | 
 |  | 		Long followupId = Long.valueOf(followup_id);
 | 
												
													
														
															|  | 
 |  | 		
 | 
												
													
														
															|  | 
 |  | 		Followup followup =followUpDao.findOne(followupId);
 | 
												
													
														
															|  | 
 |  | 		
 | 
												
													
														
															|  | 
 |  | 		if(followup == null){
 | 
												
													
														
															|  | 
 |  | 			throw new Exception("未找到随访记录!");
 | 
												
													
														
															|  | 
 |  | 		}
 | 
												
													
														
															|  | 
 |  | 		
 | 
												
													
														
															|  | 
 |  | 		Prescription prescription = prescriptionDao.findByCode(prescriptioncode);
 | 
												
													
														
															|  | 
 |  | 		
 | 
												
													
														
															|  | 
 |  | 		String patientCode = prescription.getParentCode();
 | 
												
													
														
															|  | 
 |  | 		
 | 
												
													
														
															|  | 
 |  | 		String stardate = DateUtil.getNextMonth(new Date(),-30)+" 00:00:00";
 | 
												
													
														
															|  | 
 |  | 		String enddate = DateUtil.getStringDateShort()+" 23:59:59";
 | 
												
													
														
															|  | 
 |  | 		org.json.JSONArray jsonArray = healthIndexService.findIndexByPatient(patientCode, 2, stardate, enddate, 0, 2);
 | 
												
													
														
															|  | 
 |  | 		
 | 
												
													
														
															|  | 
 |  | 		String followupProjectData = "";
 | 
												
													
														
															|  | 
 |  | 		
 | 
												
													
														
															|  | 
 |  | 		org.json.JSONObject contentDoctor = new org.json.JSONObject();
 | 
												
													
														
															|  | 
 |  | 		org.json.JSONObject contentPatient = new org.json.JSONObject();
 | 
												
													
														
															|  | 
 |  | 		
 | 
												
													
														
															|  | 
 |  | 		if(jsonArray.length() > 0){
 | 
												
													
														
															|  | 
 |  | 			
 | 
												
													
														
															|  | 
 |  | 			org.json.JSONObject jsonObject = jsonArray.getJSONObject(0);
 | 
												
													
														
															|  | 
 |  | 			
 | 
												
													
														
															|  | 
 |  | 			followupProjectData = "{'BP_D':'"+jsonObject.getString("value1")+"'BP_U':'"+jsonObject.getString("value2")+"'}";
 | 
												
													
														
															|  | 
 |  | 			followUpService.esSaveFollowupProjectData(followup_id, "2", followupProjectData);
 | 
												
													
														
															|  | 
 |  | 			
 | 
												
													
														
															|  | 
 |  | 			//是否需要发送IM消息
 | 
												
													
														
															|  | 
 |  | 			if(sendIM){
 | 
												
													
														
															|  | 
 |  | 				//医生发送的消息
 | 
												
													
														
															|  | 
 |  | 				contentDoctor.put("text", "请提供您最近一次的血压检测数值及检测时间");
 | 
												
													
														
															|  | 
 |  | 				contentDoctor.put("needUpload",false);
 | 
												
													
														
															|  | 
 |  | 				
 | 
												
													
														
															|  | 
 |  | 				int total = 0;
 | 
												
													
														
															|  | 
 |  | 				String sql = "select sum(category_code) amount deviceType FROM wlyy_patient_device WHERE user="+prescription.getPatient();
 | 
												
													
														
															|  | 
 |  | 				List<Map<String,Object>> result =  jdbcTemplate.queryForList(sql);
 | 
												
													
														
															|  | 
 |  | 				if (result != null && result.size() > 0) {
 | 
												
													
														
															|  | 
 |  | 					total = (result.get(0).get("amount") != null ? Integer.parseInt(result.get(0).get("amount").toString()) : 0);
 | 
												
													
														
															|  | 
 |  | 				}
 | 
												
													
														
															|  | 
 |  | 				if(total != 2 || total != 3){
 | 
												
													
														
															|  | 
 |  | 					contentDoctor.put("deviceMsg","您未绑定血压智能设备,请手动上传体征数据,绑定设备后系统将会自动将您的体征数据上报给医生");
 | 
												
													
														
															|  | 
 |  | 				}
 | 
												
													
														
															|  | 
 |  | 				
 | 
												
													
														
															|  | 
 |  | 				//医生发送Im消息
 | 
												
													
														
															|  | 
 |  | 				ImUtill.sendTopicIM(prescription.getDoctor(), prescription.getDoctorName(), prescription.getConsult(), "16", contentDoctor.toString(), null);
 | 
												
													
														
															|  | 
 |  | 				
 | 
												
													
														
															|  | 
 |  | 				//患者发送的消息
 | 
												
													
														
															|  | 
 |  | 				contentPatient.put("title", "【本消息为系统提醒】:");
 | 
												
													
														
															|  | 
 |  | 				contentPatient.put("tzMsg", "体征记录:血压"+jsonObject.getString("value1")+"/"+jsonObject.getString("value2")+" mmHg");
 | 
												
													
														
															|  | 
 |  | 				contentPatient.put("tzTime", "检测时间:"+jsonObject.getString("date"));
 | 
												
													
														
															|  | 
 |  | 				contentPatient.put("tzAlert","温馨提示:本条体征为居民上传的健康体征数据,您可以自动填入本次随访记录");
 | 
												
													
														
															|  | 
 |  | 				
 | 
												
													
														
															|  | 
 |  | 				//患者发送Im消息
 | 
												
													
														
															|  | 
 |  | 				ImUtill.sendTopicIM(prescription.getPatient(), prescription.getPatientName(), prescription.getConsult(), "16", contentPatient.toString(), null);
 | 
												
													
														
															|  | 
 |  | 			}
 | 
												
													
														
															|  | 
 |  | 		}else{
 | 
												
													
														
															|  | 
 |  | 			//是否需要发送IM消息
 | 
												
													
														
															|  | 
 |  | 			if(sendIM){
 | 
												
													
														
															|  | 
 |  | 				//医生发送的消息
 | 
												
													
														
															|  | 
 |  | 				contentDoctor.put("text", "居民近30天未上传血压体征数据,已通知居民上传数据,请耐心等待");
 | 
												
													
														
															|  | 
 |  | 				contentDoctor.put("needupload",true);
 | 
												
													
														
															|  | 
 |  | 			}else{
 | 
												
													
														
															|  | 
 |  | 				throw new Exception("未找到30天内的血压记录!");
 | 
												
													
														
															|  | 
 |  | 			}
 | 
												
													
														
															|  | 
 |  | 		}
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  | 	
 | 
												
													
														
															|  | 
 |  | 	}
 | 
												
													
														
															|  | 
 |  | 	
 | 
												
													
														
															|  | 
 |  | 	/**
 | 
												
													
														
															|  | 
 |  | 	 * 续方问卷导入随访记录
 | 
												
													
														
															|  | 
 |  | 	 * @param prescriptioncode
 | 
												
													
														
															|  | 
 |  | 	 * @param followup_id
 | 
												
													
														
															|  | 
 |  | 	 * @param type
 | 
												
													
														
															|  | 
 |  | 	 */
 | 
												
													
														
															|  | 
 |  | 	public void importfollowupcontent(String prescriptioncode, String followup_id, String type) throws Exception {
 | 
												
													
														
															|  | 
 |  | 		
 | 
												
													
														
															|  | 
 |  | 		Long followupId = Long.valueOf(followup_id);
 | 
												
													
														
															|  | 
 |  | 		
 | 
												
													
														
															|  | 
 |  | 		Followup followup =followUpDao.findOne(followupId);
 | 
												
													
														
															|  | 
 |  | 		
 | 
												
													
														
															|  | 
 |  | 		if(followup == null){
 | 
												
													
														
															|  | 
 |  | 			throw new Exception("未找到随访记录!");
 | 
												
													
														
															|  | 
 |  | 		}
 | 
												
													
														
															|  | 
 |  | 		
 | 
												
													
														
															|  | 
 |  | 		Prescription prescription = prescriptionDao.findByCode(prescriptioncode);
 | 
												
													
														
															|  | 
 |  | 		
 | 
												
													
														
															|  | 
 |  | 		String patientCode = prescription.getParentCode();
 | 
												
													
														
															|  | 
 |  | 		
 | 
												
													
														
															|  | 
 |  | 		
 | 
												
													
														
															|  | 
 |  | 		if("1".equals(type)){
 | 
												
													
														
															|  | 
 |  | 		//1身份异常症状问卷
 | 
												
													
														
															|  | 
 |  | 			List<PrescriptionFollowupContent>  list = prescriptionFollowupContentDao.findByPrescriptionCodeAndFollowupProject(prescriptioncode,type);
 | 
												
													
														
															|  | 
 |  | 			
 | 
												
													
														
															|  | 
 |  | 			Map<String, String> datamap = new HashMap<>();
 | 
												
													
														
															|  | 
 |  | 			
 | 
												
													
														
															|  | 
 |  | 			if(!list.isEmpty()){
 | 
												
													
														
															|  | 
 |  | 				for (PrescriptionFollowupContent prescriptionFollowupContent: list) {
 | 
												
													
														
															|  | 
 |  | 					datamap.put(prescriptionFollowupContent.getFollowupKey(),prescriptionFollowupContent.getFollowupValue());
 | 
												
													
														
															|  | 
 |  | 				}
 | 
												
													
														
															|  | 
 |  | 			}
 | 
												
													
														
															|  | 
 |  | 			
 | 
												
													
														
															|  | 
 |  | 			followUpService.esSaveFollowupProjectData(followup_id, type, JSON.toJSONString(datamap));
 | 
												
													
														
															|  | 
 |  | 		}else if("2".equals(type)){
 | 
												
													
														
															|  | 
 |  | 			//2体征
 | 
												
													
														
															|  | 
 |  | 			Map<String, String> datamap2 = new HashMap<>();
 | 
												
													
														
															|  | 
 |  | 			List<PrescriptionFollowupContent>  list2 = prescriptionFollowupContentDao.findByPrescriptionCodeAndFollowupProject(prescriptioncode,"2");
 | 
												
													
														
															|  | 
 |  | 			
 | 
												
													
														
															|  | 
 |  | 			if(!list2.isEmpty()){
 | 
												
													
														
															|  | 
 |  | 				for (PrescriptionFollowupContent prescriptionFollowupContent: list2) {
 | 
												
													
														
															|  | 
 |  | 					datamap2.put(prescriptionFollowupContent.getFollowupKey(),prescriptionFollowupContent.getFollowupValue());
 | 
												
													
														
															|  | 
 |  | 				}
 | 
												
													
														
															|  | 
 |  | 			}
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  | 			//近30天血压
 | 
												
													
														
															|  | 
 |  | 			String stardate = DateUtil.getNextMonth(new Date(),-30)+" 00:00:00";
 | 
												
													
														
															|  | 
 |  | 			String enddate = DateUtil.getStringDateShort()+" 23:59:59";
 | 
												
													
														
															|  | 
 |  | 			org.json.JSONArray jsonArray = healthIndexService.findIndexByPatient(patientCode, 2, stardate, enddate, 0, 2);
 | 
												
													
														
															|  | 
 |  | 			if(jsonArray.length() > 0){
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  | 				org.json.JSONObject jsonObject = jsonArray.getJSONObject(0);
 | 
												
													
														
															|  | 
 |  | 				datamap2.put("BP_D",jsonObject.getString("value1"));
 | 
												
													
														
															|  | 
 |  | 				datamap2.put("BP_U",jsonObject.getString("value2"));
 | 
												
													
														
															|  | 
 |  | 			}
 | 
												
													
														
															|  | 
 |  | 			followUpService.esSaveFollowupProjectData(followup_id, "2", JSON.toJSONString(datamap2));
 | 
												
													
														
															|  | 
 |  | 			
 | 
												
													
														
															|  | 
 |  | 			
 | 
												
													
														
															|  | 
 |  | 			Map<String, String> datamap3 = new HashMap<>();
 | 
												
													
														
															|  | 
 |  | 			List<PrescriptionFollowupContent>  list3 = prescriptionFollowupContentDao.findByPrescriptionCodeAndFollowupProject(prescriptioncode,"4");
 | 
												
													
														
															|  | 
 |  | 			
 | 
												
													
														
															|  | 
 |  | 			if(!list3.isEmpty()){
 | 
												
													
														
															|  | 
 |  | 				for (PrescriptionFollowupContent prescriptionFollowupContent: list2) {
 | 
												
													
														
															|  | 
 |  | 					datamap3.put(prescriptionFollowupContent.getFollowupKey(),prescriptionFollowupContent.getFollowupValue());
 | 
												
													
														
															|  | 
 |  | 				}
 | 
												
													
														
															|  | 
 |  | 			}
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  | 			followUpService.esSaveFollowupProjectData(followup_id, "4", JSON.toJSONString(datamap3));
 | 
												
													
														
															|  | 
 |  | 		
 | 
												
													
														
															|  | 
 |  | 		}else{}
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  | 	}
 | 
												
													
														
															|  | }
 |  | }
 |