| 
					
				 | 
			
			
				@ -9,17 +9,20 @@ import com.yihu.wlyy.entity.patient.SignFamily; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.entity.patient.prenatal.PrenatalInspectorPlan; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.entity.patient.prenatal.PrenatalInspectorPlanLibrary; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.entity.patient.prenatal.PrenatalInspectorPreCard; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.entity.patient.prenatal.PrenatalInspectorRecord; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.health.repository.DevicePatientHealthIndexDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.repository.doctor.DoctorDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.repository.patient.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.service.BaseService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.service.app.health.PatientHealthIndexService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.service.app.sign.FamilyContractService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.service.common.SMSService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.service.third.jw.JwMaternalChildService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.service.third.jw.ZyDictService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.task.PushMsgTask; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.util.DateUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.wechat.util.WeiXinAccessTokenUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.wechat.util.WeiXinOpenIdUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.apache.commons.lang3.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.slf4j.Logger; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.slf4j.LoggerFactory; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -27,6 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.stereotype.Component; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.transaction.annotation.Transactional; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.text.SimpleDateFormat; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				/** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -64,24 +68,31 @@ public class PrenatalInspectorPreCardService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private PatientHealthIndexService healthIndexService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private DevicePatientHealthIndexDao healthIndexDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private PrenatalInspectorRecordDao recordDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private WeiXinOpenIdUtils weiXinOpenIdUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private SMSService smsService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    public 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 待产检计划 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param code 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONArray planList(String code){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONArray planList(String code) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONArray jsonArray = new JSONArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<PrenatalInspectorPlan> planList = prenatalInspectorPlanDao.findByCode(code); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for (PrenatalInspectorPlan plan:planList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for (PrenatalInspectorPlan plan : planList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONObject json = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            json.put("checkItem",plan.getCheckItem()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            json.put("name",plan.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            json.put("thisFoucs",plan.getThisFocus()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            json.put("thisNote",plan.getThisNote()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            json.put("inspectionTime",DateUtil.dateToStrShort(plan.getInspectionTime())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            json.put("checkItem", plan.getCheckItem()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            json.put("name", plan.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            json.put("thisFoucs", plan.getThisFocus()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            json.put("thisNote", plan.getThisNote()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            json.put("inspectionTime", DateUtil.dateToStrShort(plan.getInspectionTime())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jsonArray.add(json); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -91,28 +102,29 @@ public class PrenatalInspectorPreCardService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 获取产检列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param patientCode 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONArray getEhrMaternalFirstExamRecord(String patientCode){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONArray getEhrMaternalFirstExamRecord(String patientCode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONArray re = new JSONArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        SignFamily signFamily = signFamilyDao.findByPatient(patientCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String hospital = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(signFamily!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (signFamily != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            hospital = signFamily.getHospital(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Patient patient = patientDao.findByCode(patientCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            boolean checkFlag = true;//是否查询预建卡接口。有建卡记录且建卡记录有结束妊娠才查询预建卡 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String response = jwMaternalChildService.getEhrMaternalFirstExamRecord(patient.getIdcard(),hospital); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String response = jwMaternalChildService.getEhrMaternalFirstExamRecord(patient.getIdcard(), hospital); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONObject json = JSONObject.parseObject(response); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONArray data = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(json.getInteger("status")==200){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (json.getInteger("status") == 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                data = json.getJSONObject("data").getJSONArray("DATA"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Map<String,String> map = new HashMap<>();//存储产检号,用于去除预建卡信息中重复记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(data!=null&&data.size()>0){//有建卡信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                for (int i=0;i<data.size();i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Map<String, String> map = new HashMap<>();//存储产检号,用于去除预建卡信息中重复记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (data != null && data.size() > 0) {//有建卡信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                for (int i = 0; i < data.size(); i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    JSONObject planJson = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    JSONObject pregnancy = data.getJSONObject(i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String PREGNANCY_NO = pregnancy.getString("PREGNANCY_NO");//智业产检号 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -124,103 +136,112 @@ public class PrenatalInspectorPreCardService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String DELIVERY_WAY = pregnancy.getString("DELIVERY_WAY");//分娩方式 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String DELIVERY_TIME = pregnancy.getString("DELIVERY_TIME");//分娩方式时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String EXAM_TIME = pregnancy.getString("EXAM_TIME");//检查日期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    planJson.put("pregnancyNo",PREGNANCY_NO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    planJson.put("pregnancyStatus",PREGNANCY_STATUS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    planJson.put("endManner",END_MANNER); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    planJson.put("endTime",END_TIME); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    planJson.put("mensesLast",MENSES_LAST); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    planJson.put("expectedTime",EXPECTED_TIME); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    planJson.put("pregnancyNo", PREGNANCY_NO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    planJson.put("pregnancyStatus", PREGNANCY_STATUS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    planJson.put("endManner", END_MANNER); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    planJson.put("endTime", END_TIME); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    planJson.put("mensesLast", MENSES_LAST); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    planJson.put("expectedTime", EXPECTED_TIME); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    Date date = new Date(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    map.put("PREGNANCY_NO","PREGNANCY_NO"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if(StringUtils.isBlank(END_TIME)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        checkFlag = checkFlag?false:checkFlag; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    map.put("PREGNANCY_NO", "PREGNANCY_NO"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (StringUtils.isBlank(END_TIME)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        checkFlag = checkFlag ? false : checkFlag; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        //未结束妊娠,生成待产检计划 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        List<PrenatalInspectorPlan> plans = prenatalInspectorPlanDao.findByPatient(patientCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        boolean flag = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if(plans==null||plans.size()==0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if (plans == null || plans.size() == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            flag = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            String inspectionCode = plans.get(0).getInspectionCode(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            if(StringUtils.isBlank(inspectionCode)){//有待产检计划,但是产检号为空,说明是预建卡生成的产检记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            if (StringUtils.isBlank(inspectionCode)) {//有待产检计划,但是产检号为空,说明是预建卡生成的产检记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                flag = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                //更新居民待产检计划,需要重新生成 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                prenatalInspectorPlanDao.updateStatus(patientCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if(flag){//判断是否已经生成产检记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if (flag) {//判断是否已经生成产检记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            Date dueDay = DateUtil.strToDate(EXPECTED_TIME); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            Long days = DateUtil.getDays(dueDay,date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            Long days = DateUtil.getDays(dueDay, date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            List<PrenatalInspectorPlanLibrary> libraries = prenatalInspectorPlanLibraryDao.findByDays(days); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            plans = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            PrenatalInspectorPlan plan = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            for (PrenatalInspectorPlanLibrary library:libraries){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                plan = new PrenatalInspectorPlan(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                plan.setInspectionPhase(library.getInspectionPhase()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                plan.setStatus("0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                plan.setPatient(patientCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                plan.setCzrq(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                plan.setDel("1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                plan.setInspectionCode(PREGNANCY_NO);//产检号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                plan.setCheckItem(library.getCheckItem()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                plan.setInspectionTime(DateUtil.getPrenatalInspectorDate(dueDay,-library.getEndDay().intValue())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                plan.setName(library.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                plan.setThisFocus(library.getThisFocus()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                plan.setThisNote(library.getThisNote()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                plans.add(plan); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            for (PrenatalInspectorPlanLibrary library : libraries) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                //                                    只取最近15天数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                Date inspectorDate = DateUtil.getPrenatalInspectorDate(dueDay, -library.getEndDay().intValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                if (DateUtil.getDays(date, inspectorDate) <= 15 && DateUtil.getDays(date, inspectorDate) >= 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    plan = new PrenatalInspectorPlan(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    plan.setInspectionPhase(library.getInspectionPhase()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    plan.setStatus("0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    plan.setPatient(patientCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    plan.setCzrq(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    plan.setDel("1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    plan.setInspectionCode(PREGNANCY_NO);//产检号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    plan.setCheckItem(library.getCheckItem()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    plan.setInspectionTime(DateUtil.getPrenatalInspectorDate(dueDay, -library.getEndDay().intValue())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    plan.setName(library.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    plan.setThisFocus(library.getThisFocus()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    plan.setThisNote(library.getThisNote()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    plans.add(plan); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            if (plans.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            if (plans.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                prenatalInspectorPlanDao.save(plans); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        //计算距离下次产检时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        Long nextExamDay = 0l; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        for (PrenatalInspectorPlan plan:plans) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            Long temp = DateUtil.getDays(plan.getInspectionTime(),date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            if(nextExamDay==0||nextExamDay>temp){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        for (PrenatalInspectorPlan plan : plans) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            Long temp = DateUtil.getDays(plan.getInspectionTime(), date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            if (nextExamDay == 0 || nextExamDay > temp) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                nextExamDay = temp; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        planJson.put("plans",plans);//待产检列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        planJson.put("nextExamDay",nextExamDay);//距离下次产检天数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        planJson.put("plans", plans);//待产检列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if (plans != null && plans.size()>0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            PrenatalInspectorPlan prenatalInspectorPlan = plans.get(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            JSONObject status = getPrenatalStatus(prenatalInspectorPlan.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            planJson.put("inspectStatus", status);//最近一条状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        planJson.put("nextExamDay", nextExamDay);//距离下次产检天数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        //产床预约信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        String precontract_org_name = "";//产床医院 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            String bedRecode = jwMaternalChildService.getEhrMaternalBedPrecontractRecord(patient.getIdcard(),hospital); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            String bedRecode = jwMaternalChildService.getEhrMaternalBedPrecontractRecord(patient.getIdcard(), hospital); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            JSONObject bedJson = JSONObject.parseObject(bedRecode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            JSONArray bedData = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            if(bedJson.getInteger("status")==200){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            if (bedJson.getInteger("status") == 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                bedData = bedJson.getJSONObject("data").getJSONArray("DATA"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            if(bedData!=null&&bedData.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                JSONObject exam = bedData.getJSONObject(bedData.size()-1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            if (bedData != null && bedData.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                JSONObject exam = bedData.getJSONObject(bedData.size() - 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                precontract_org_name = exam.getString("PRECONTRACT_ORG_NAME"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        }catch (Exception e){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        planJson.put("precontractOrgName",precontract_org_name);//产床医院 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        planJson.put("precontractOrgName", precontract_org_name);//产床医院 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    re.add(planJson); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //请求预建卡接口 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(checkFlag){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String resp = jwMaternalChildService.getEhrMaternalPreFirstExamRecord(patient.getIdcard(),hospital); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (checkFlag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String resp = jwMaternalChildService.getEhrMaternalPreFirstExamRecord(patient.getIdcard(), hospital); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                JSONObject preJson = JSONObject.parseObject(resp); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                JSONArray preData = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(preJson.getInteger("status")==200){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (preJson.getInteger("status") == 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    preData = preJson.getJSONObject("data").getJSONArray("DATA"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if(preData!=null&&preData.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (preData != null && preData.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        JSONArray rep = new JSONArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        for (int i=0;i<preData.size();i++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        for (int i = 0; i < preData.size(); i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            JSONObject planJson = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            JSONObject pregnancy = preData.getJSONObject(i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            String PREGNANCY_NO = pregnancy.getString("PREGNANCY_NO");//智业产检号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            if(map.containsKey(PREGNANCY_NO)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            if (map.containsKey(PREGNANCY_NO)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                continue;//去重 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -228,58 +249,67 @@ public class PrenatalInspectorPreCardService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            String END_TIME = pregnancy.getString("END_TIME");//结束妊娠 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            String MENSES_LAST = pregnancy.getString("MENSES_LAST");//末次月经 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            Date dueday = DateUtil.getDueDate(DateUtil.strToDateLong(MENSES_LAST));//预产期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            planJson.put("pregnancyNo",PREGNANCY_NO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            planJson.put("pregnancyStatus","0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            planJson.put("endManner",END_MANNER); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            planJson.put("endTime",END_TIME); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            planJson.put("mensesLast",MENSES_LAST); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            planJson.put("expectedTime",DateUtil.dateToStrLong(dueday)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            planJson.put("pregnancyNo", PREGNANCY_NO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            planJson.put("pregnancyStatus", "0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            planJson.put("endManner", END_MANNER); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            planJson.put("endTime", END_TIME); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            planJson.put("mensesLast", MENSES_LAST); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            planJson.put("expectedTime", DateUtil.dateToStrLong(dueday)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            Date date = new Date(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            List<PrenatalInspectorPlan> plans = prenatalInspectorPlanDao.findByPatient(patientCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            if(plans==null||plans.size()==0){//判断是否已经生成产检记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            if (plans == null || plans.size() == 0) {//判断是否已经生成产检记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                //预建卡还没产检,有产检就会生成产检记录,建卡接口就会有数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                Long days = DateUtil.getDays(dueday,date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                Long days = DateUtil.getDays(dueday, date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                List<PrenatalInspectorPlanLibrary> libraries = prenatalInspectorPlanLibraryDao.findByDays(days); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                plans = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                PrenatalInspectorPlan plan = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                for (PrenatalInspectorPlanLibrary library:libraries){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    plan = new PrenatalInspectorPlan(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    plan.setInspectionPhase(library.getInspectionPhase()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    plan.setStatus("0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    plan.setPatient(patientCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    plan.setCzrq(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    plan.setDel("1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    plan.setCheckItem(library.getCheckItem()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    plan.setInspectionTime(DateUtil.getPrenatalInspectorDate(dueday,-library.getEndDay().intValue())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    plan.setName(library.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    plan.setThisFocus(library.getThisFocus()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    plan.setThisNote(library.getThisNote()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    plans.add(plan); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                for (PrenatalInspectorPlanLibrary library : libraries) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                                    只取最近15天数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    Date inspectorDate = DateUtil.getPrenatalInspectorDate(dueday, -library.getEndDay().intValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    if (DateUtil.getDays(date, inspectorDate) <= 15 && DateUtil.getDays(date, inspectorDate) >= 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                        plan = new PrenatalInspectorPlan(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                        plan.setInspectionPhase(library.getInspectionPhase()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                        plan.setStatus("0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                        plan.setPatient(patientCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                        plan.setCzrq(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                        plan.setDel("1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                        plan.setCheckItem(library.getCheckItem()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                        plan.setInspectionTime(inspectorDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                        plan.setName(library.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                        plan.setThisFocus(library.getThisFocus()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                        plan.setThisNote(library.getThisNote()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                        plans.add(plan); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                if (plans.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                if (plans.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    prenatalInspectorPlanDao.save(plans); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            //计算距离下次产检时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            Long nextExamDay = 0l; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            for (PrenatalInspectorPlan plan:plans) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                Long temp = DateUtil.getDays(plan.getInspectionTime(),date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                if(nextExamDay==0||nextExamDay>temp){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            for (PrenatalInspectorPlan plan : plans) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                Long temp = DateUtil.getDays(plan.getInspectionTime(), date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                if (nextExamDay == 0 || nextExamDay > temp) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    nextExamDay = temp; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            planJson.put("plans",plans);//待产检列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            planJson.put("nextExamDay",nextExamDay);//距离下次产检天数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            planJson.put("precontractOrgName",null);//产床医院 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            planJson.put("plans", plans);//待产检列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            if (plans != null && plans.size()>0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                PrenatalInspectorPlan prenatalInspectorPlan = plans.get(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                JSONObject status = getPrenatalStatus(prenatalInspectorPlan.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                planJson.put("inspectStatus", status);//最近一条状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            planJson.put("nextExamDay", nextExamDay);//距离下次产检天数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            planJson.put("precontractOrgName", null);//产床医院 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            rep.add(planJson); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        //重新排序 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if(rep.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            for (int i=0;i<re.size();i++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if (rep.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            for (int i = 0; i < re.size(); i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                rep.add(re.getJSONObject(i)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            return rep; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -288,7 +318,7 @@ public class PrenatalInspectorPreCardService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }catch (Exception e){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -297,28 +327,29 @@ public class PrenatalInspectorPreCardService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 初检 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param patientCode 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONObject firstExam(String patientCode,String pregnancyNo){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONObject firstExam(String patientCode, String pregnancyNo) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject re = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            SignFamily signFamily = signFamilyDao.findByPatient(patientCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String hospital = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(signFamily!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (signFamily != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                hospital = signFamily.getHospital(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Patient patient = patientDao.findByCode(patientCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String response = jwMaternalChildService.getEhrMaternalFirstExamRecord(patient.getIdcard(),hospital); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String response = jwMaternalChildService.getEhrMaternalFirstExamRecord(patient.getIdcard(), hospital); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONObject json = JSONObject.parseObject(response); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONArray data = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(json.getInteger("status")==200){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (json.getInteger("status") == 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                data = json.getJSONObject("data").getJSONArray("DATA"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(data!=null&&data.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                for (int i=0;i<data.size();i++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if(pregnancyNo.equals(data.getJSONObject(i).getString("PREGNANCY_NO"))){//判断是否同一个产检 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (data != null && data.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                for (int i = 0; i < data.size(); i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (pregnancyNo.equals(data.getJSONObject(i).getString("PREGNANCY_NO"))) {//判断是否同一个产检 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        re = data.getJSONObject(i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        String SICK_PROVINCE = re.getString("SICK_PROVINCE");//省 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        String SICK_CITY = re.getString("SICK_CITY");//市 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -332,42 +363,42 @@ public class PrenatalInspectorPreCardService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        String SICK_HOUSEHOLD_COUNTRY = re.getString("SICK_HOUSEHOLD_COUNTRY");//户籍街道 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        String SICK_HOUSEHOLD_VILLAGE = re.getString("SICK_HOUSEHOLD_VILLAGE");//户籍居委会 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if(StringUtils.isNotBlank(SICK_PROVINCE)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            re.put("SICK_PROVINCE",zyDictService.findZoneName(SICK_PROVINCE)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if (StringUtils.isNotBlank(SICK_PROVINCE)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            re.put("SICK_PROVINCE", zyDictService.findZoneName(SICK_PROVINCE)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if(StringUtils.isNotBlank(SICK_CITY)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            re.put("SICK_CITY",zyDictService.findZoneName(SICK_CITY)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if (StringUtils.isNotBlank(SICK_CITY)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            re.put("SICK_CITY", zyDictService.findZoneName(SICK_CITY)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if(StringUtils.isNotBlank(SICK_COUNTY)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            re.put("SICK_COUNTY",zyDictService.findZoneName(SICK_COUNTY)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if (StringUtils.isNotBlank(SICK_COUNTY)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            re.put("SICK_COUNTY", zyDictService.findZoneName(SICK_COUNTY)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if(StringUtils.isNotBlank(SICK_COUNTRY)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            re.put("SICK_COUNTRY",zyDictService.findZoneName(SICK_COUNTRY)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if (StringUtils.isNotBlank(SICK_COUNTRY)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            re.put("SICK_COUNTRY", zyDictService.findZoneName(SICK_COUNTRY)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if(StringUtils.isNotBlank(SICK_VILLAGE)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            re.put("SICK_VILLAGE",zyDictService.findZoneName(SICK_VILLAGE)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if (StringUtils.isNotBlank(SICK_VILLAGE)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            re.put("SICK_VILLAGE", zyDictService.findZoneName(SICK_VILLAGE)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if(StringUtils.isNotBlank(SICK_HOUSEHOLD_PROVINCE)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            re.put("SICK_HOUSEHOLD_PROVINCE",zyDictService.findZoneName(SICK_HOUSEHOLD_PROVINCE)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if (StringUtils.isNotBlank(SICK_HOUSEHOLD_PROVINCE)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            re.put("SICK_HOUSEHOLD_PROVINCE", zyDictService.findZoneName(SICK_HOUSEHOLD_PROVINCE)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if(StringUtils.isNotBlank(SICK_HOUSEHOLD_CITY)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            re.put("SICK_HOUSEHOLD_CITY",zyDictService.findZoneName(SICK_HOUSEHOLD_CITY)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if (StringUtils.isNotBlank(SICK_HOUSEHOLD_CITY)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            re.put("SICK_HOUSEHOLD_CITY", zyDictService.findZoneName(SICK_HOUSEHOLD_CITY)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if(StringUtils.isNotBlank(SICK_HOUSEHOLD_COUNTY)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            re.put("SICK_HOUSEHOLD_COUNTY",zyDictService.findZoneName(SICK_HOUSEHOLD_COUNTY)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if (StringUtils.isNotBlank(SICK_HOUSEHOLD_COUNTY)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            re.put("SICK_HOUSEHOLD_COUNTY", zyDictService.findZoneName(SICK_HOUSEHOLD_COUNTY)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if(StringUtils.isNotBlank(SICK_HOUSEHOLD_COUNTRY)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            re.put("SICK_HOUSEHOLD_COUNTRY",zyDictService.findZoneName(SICK_HOUSEHOLD_COUNTRY)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if (StringUtils.isNotBlank(SICK_HOUSEHOLD_COUNTRY)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            re.put("SICK_HOUSEHOLD_COUNTRY", zyDictService.findZoneName(SICK_HOUSEHOLD_COUNTRY)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if(StringUtils.isNotBlank(SICK_HOUSEHOLD_VILLAGE)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            re.put("SICK_HOUSEHOLD_VILLAGE",zyDictService.findZoneName(SICK_HOUSEHOLD_VILLAGE)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if (StringUtils.isNotBlank(SICK_HOUSEHOLD_VILLAGE)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            re.put("SICK_HOUSEHOLD_VILLAGE", zyDictService.findZoneName(SICK_HOUSEHOLD_VILLAGE)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        return re; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }catch (Exception e){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return re; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -375,30 +406,31 @@ public class PrenatalInspectorPreCardService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 复检记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param patientCode 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONArray reExamRecode(String patientCode,String pregnancyNo){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONArray reExamRecode(String patientCode, String pregnancyNo) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONArray re = new JSONArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            SignFamily signFamily = signFamilyDao.findByPatient(patientCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String hospital = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(signFamily!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (signFamily != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                hospital = signFamily.getHospital(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Patient patient = patientDao.findByCode(patientCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String response = jwMaternalChildService.getEhrMaternalReExamRecord(patient.getIdcard(),hospital,pregnancyNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String response = jwMaternalChildService.getEhrMaternalReExamRecord(patient.getIdcard(), hospital, pregnancyNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONObject json = JSONObject.parseObject(response); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONArray data = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(json.getInteger("status")==200){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (json.getInteger("status") == 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                data = json.getJSONObject("data").getJSONArray("DATA"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(data!=null&&data.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (data != null && data.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return re; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }catch (Exception e){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return re; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -406,26 +438,27 @@ public class PrenatalInspectorPreCardService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 获取最后一次产检时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param idcard 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param hospital 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public String getLastExamTime(String idcard,String hospital,String pregnancyNo){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public String getLastExamTime(String idcard, String hospital, String pregnancyNo) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String re = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String response = jwMaternalChildService.getEhrMaternalReExamRecord(idcard,hospital,pregnancyNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String response = jwMaternalChildService.getEhrMaternalReExamRecord(idcard, hospital, pregnancyNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONObject json = JSONObject.parseObject(response); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONArray data = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(json.getInteger("status")==200){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (json.getInteger("status") == 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                data = json.getJSONObject("data").getJSONArray("DATA"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(data!=null&&data.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                JSONObject exam = data.getJSONObject(data.size()-1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (data != null && data.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                JSONObject exam = data.getJSONObject(data.size() - 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                String PREGNANCY_WEEK = exam.getString("PREGNANCY_WEEK");//检查孕周 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String examTime = exam.getString("EXAM_TIME");//产检日期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                re = examTime; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }catch (Exception e){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return re; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -433,26 +466,27 @@ public class PrenatalInspectorPreCardService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 产床预约信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param idcard 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param hospital 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public String getEhrMaternalBedPrecontractRecord(String idcard,String hospital){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public String getEhrMaternalBedPrecontractRecord(String idcard, String hospital) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String re = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String response = jwMaternalChildService.getEhrMaternalBedPrecontractRecord(idcard,hospital); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String response = jwMaternalChildService.getEhrMaternalBedPrecontractRecord(idcard, hospital); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONObject json = JSONObject.parseObject(response); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONArray data = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(json.getInteger("status")==200){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (json.getInteger("status") == 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                data = json.getJSONObject("data").getJSONArray("DATA"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(data!=null&&data.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                JSONObject exam = data.getJSONObject(data.size()-1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (data != null && data.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                JSONObject exam = data.getJSONObject(data.size() - 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String PREGNANCY_WEEK = exam.getString("PREGNANCY_WEEK");//检查孕周 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String examTime = exam.getString("EXAM_TIME");//产检日期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                re = examTime; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }catch (Exception e){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return re; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -460,34 +494,35 @@ public class PrenatalInspectorPreCardService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 预建卡列表-孕检计划 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param patient 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONArray preCardList(String patient){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONArray preCardList(String patient) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONArray jsonArray = new JSONArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<PrenatalInspectorPreCard> preCards = prenatalInspectorPreCardDao.findByPatient(patient); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for (PrenatalInspectorPreCard preCard:preCards){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for (PrenatalInspectorPreCard preCard : preCards) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONObject json = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            json.put("code",preCard.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            json.put("dueDate",DateUtil.dateToStrShort(preCard.getDueDate()));//预产期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            json.put("code", preCard.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            json.put("dueDate", DateUtil.dateToStrShort(preCard.getDueDate()));//预产期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Date date = new Date(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Long dueDateDay = DateUtil.getDays(preCard.getDueDate(),date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(dueDateDay>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                json.put("dueDateWeek",getWeek(dueDateDay.intValue()));//距离预产期周数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                json.put("dueDateDay",getDay(dueDateDay.intValue()));//距离预产期周数的余数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Long pregnancyDay = DateUtil.getDays(date,preCard.getLastMenstrualDate()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Long dueDateDay = DateUtil.getDays(preCard.getDueDate(), date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (dueDateDay > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                json.put("dueDateWeek", getWeek(dueDateDay.intValue()));//距离预产期周数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                json.put("dueDateDay", getDay(dueDateDay.intValue()));//距离预产期周数的余数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Long pregnancyDay = DateUtil.getDays(date, preCard.getLastMenstrualDate()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                int week = getWeek(pregnancyDay.intValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                int day = getDay(pregnancyDay.intValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String preDay = day==0?(week+"周"):(week+"周"+day+"天");//怀孕时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                json.put("status",preDay); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                json.put("dueDateWeek",0);//距离预产期周数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                json.put("dueDateDay",0);//距离预产期周数的余数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                json.put("status",preCard.getStatus()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String preDay = day == 0 ? (week + "周") : (week + "周" + day + "天");//怀孕时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                json.put("status", preDay); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                json.put("dueDateWeek", 0);//距离预产期周数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                json.put("dueDateDay", 0);//距离预产期周数的余数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                json.put("status", preCard.getStatus()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            json.put("hospitalName",preCard.getHospitalName());//预约床位医院 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            json.put("orderBedTime",preCard.getOrderBedTime());//预约床位时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            json.put("hospitalName", preCard.getHospitalName());//预约床位医院 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            json.put("orderBedTime", preCard.getOrderBedTime());//预约床位时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jsonArray.add(json); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -497,47 +532,50 @@ public class PrenatalInspectorPreCardService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 把天数换算成周数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param day 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private int getWeek(Integer day){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return day/7; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private int getWeek(Integer day) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return day / 7; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 把天数换算成周数的余数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param day 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private int getDay(Integer day){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return day%7; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private int getDay(Integer day) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return day % 7; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 上传预建卡 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param code 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public String uploadPreExam(String code){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public String uploadPreExam(String code) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String re = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //上传预建卡 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String response = jwMaternalChildService.SaveEhrMaternalPreFirstExamRecord(code); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONObject preJson = JSONObject.parseObject(response); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(preJson.getInteger("status")!=200){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (preJson.getInteger("status") != 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                re = preJson.getString("msg"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                JSONObject json = preJson.getJSONObject("data"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if("0".equals(json.getString("code"))){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if ("0".equals(json.getString("code"))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    re = json.getString("MESSAGE"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(re.contains("身份证为空,请检查")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (re.contains("身份证为空,请检查")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                re = "身份证为空,请检查"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }else if(re.contains("操作员为空,请检查")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else if (re.contains("操作员为空,请检查")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                re = "操作员为空,请检查"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }catch (Exception e){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return re; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -557,12 +595,12 @@ public class PrenatalInspectorPreCardService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //判断是否有预建卡 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String resp = jwMaternalChildService.getEhrMaternalPreFirstExamRecord(preCard.getIdcard(),signFamily.getHospital()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String resp = jwMaternalChildService.getEhrMaternalPreFirstExamRecord(preCard.getIdcard(), signFamily.getHospital()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONObject preJson = JSONObject.parseObject(resp); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONArray preData = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(preJson.getInteger("status")==200){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (preJson.getInteger("status") == 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                preData = preJson.getJSONObject("data").getJSONArray("DATA"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(preData!=null&&preData.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (preData != null && preData.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    JSONObject temp = preData.getJSONObject(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String END_MANNER = temp.getString("END_MANNER");//妊娠终止方式 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if(StringUtils.isBlank(END_MANNER)){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -571,7 +609,7 @@ public class PrenatalInspectorPreCardService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }catch (Exception e){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            json.put("code","-3"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return json; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -583,8 +621,8 @@ public class PrenatalInspectorPreCardService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        preCard.setDoctorName(doctor.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //保存智业的医生信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Map<String,Object> map = zyDictService.findJwDoctorByDoctor(doctor.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(map!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Map<String, Object> map = zyDictService.findJwDoctorByDoctor(doctor.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (map != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            preCard.setJwDoctor(map.get("jw_doctor").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -612,11 +650,11 @@ public class PrenatalInspectorPreCardService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        p.setMobile(preCard.getMobile()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //2、生成待产检计划(待产检计划由获取健康信息接口生成,关联产检计划) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Long days = DateUtil.getDays(dueDate,date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Long days = DateUtil.getDays(dueDate, date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<PrenatalInspectorPlanLibrary> libraries = prenatalInspectorPlanLibraryDao.findByDays(days); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<PrenatalInspectorPlan> plans = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        PrenatalInspectorPlan plan = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for (PrenatalInspectorPlanLibrary library:libraries){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for (PrenatalInspectorPlanLibrary library : libraries) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            plan = new PrenatalInspectorPlan(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            plan.setInspectionPhase(library.getInspectionPhase()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            plan.setStatus("0"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -625,7 +663,7 @@ public class PrenatalInspectorPreCardService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            plan.setDel("1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            plan.setCheckItem(library.getCheckItem()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            plan.setInspectionCode(preCard.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            plan.setInspectionTime(DateUtil.getPrenatalInspectorDate(dueDate,-library.getEndDay().intValue())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            plan.setInspectionTime(DateUtil.getPrenatalInspectorDate(dueDate, -library.getEndDay().intValue())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            plan.setName(library.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            plan.setThisFocus(library.getThisFocus()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            plan.setThisNote(library.getThisNote()); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -639,7 +677,7 @@ public class PrenatalInspectorPreCardService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            plans.add(plan); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (plans.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (plans.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            prenatalInspectorPlanDao.save(plans); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        json.put("code",preCard.getCode()); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -649,28 +687,29 @@ public class PrenatalInspectorPreCardService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 保存体征数据 有保存体征数据才更新 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param preCard 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param patientCode 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public void saveHealthIndex(PrenatalInspectorPreCard preCard,String patientCode){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(StringUtils.isNotBlank(preCard.getHeight())&&StringUtils.isNotBlank(preCard.getWeight())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public void saveHealthIndex(PrenatalInspectorPreCard preCard, String patientCode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNotBlank(preCard.getHeight()) && StringUtils.isNotBlank(preCard.getWeight())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //先判断体征数据是否变更 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            DevicePatientHealthIndex index = healthIndexDao.findLastData(patientCode, 3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String height = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String weight = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(index!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (index != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                height = index.getValue2(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                weight = index.getValue1(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(!preCard.getHeight().equals(height)||!preCard.getWeight().equals(weight)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (!preCard.getHeight().equals(height) || !preCard.getWeight().equals(weight)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //更新体征数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                JSONObject json = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                json.put("time",DateUtil.dateToStrLong(preCard.getCzrq())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                json.put("height",preCard.getHeight()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                json.put("weight",preCard.getWeight()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                json.put("time", DateUtil.dateToStrLong(preCard.getCzrq())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                json.put("height", preCard.getHeight()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                json.put("weight", preCard.getWeight()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    healthIndexService.addPatientHealthIndex(json.toString(), "3", patientCode, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                }catch (Exception e){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    logger.error("预建卡时 保存体征数据失败。。。"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -678,4 +717,188 @@ public class PrenatalInspectorPreCardService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 根据待产检ID查询最近一条待产检计划状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param prenatalId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONObject getPrenatalStatus(Long prenatalId) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject json = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            PrenatalInspectorPlan plan = prenatalInspectorPlanDao.findOne(prenatalId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Date planTime = plan.getInspectionTime(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Boolean flag = getSendStatus(prenatalId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Long days = DateUtil.getDays(new Date(), planTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (days > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                当前时间在应产检之后 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                List<PrenatalInspectorPlan> plans = prenatalInspectorPlanDao.getScopeById(prenatalId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (plans == null || plans.size() == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String str = "当前时间在应产检7天后"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (days > 7) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        System.out.println("超期未检"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        json.put("renatalStatus", "3"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        json.put("sendStatus", flag == true ? "1" : "0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        PrenatalInspectorRecord record = recordDao.findByRelationAndType(prenatalId.toString(), 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if (record == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            System.out.println("未提醒"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            json.put("renatalStatus", "1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            if (days < -7) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                json.put("reason", "未到提醒时间(" + format.format(DateUtil.getPreDays(plan.getInspectionTime(), -7)) + " 08:00)"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            PrenatalInspectorRecord docRecord = recordDao.findByRelationAndType(prenatalId.toString(), 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            System.out.println("已提醒"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            json.put("renatalStatus", "2"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            json.put("sendStatus", flag == true ? "1" : "0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            if (docRecord == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                json.put("sendTime", format.format(record.getSendTime())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                json.put("sendTime", format.format(docRecord.getSendTime())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    System.out.println("已产检"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    json.put("renatalStatus", "4"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                PrenatalInspectorRecord record = recordDao.findByRelationAndType(prenatalId.toString(), 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (record == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    System.out.println("未提醒"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    json.put("renatalStatus", "1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (days < -7) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        json.put("reason", "未到提醒时间(" + format.format(DateUtil.getPreDays(plan.getInspectionTime(), -7)) + " 08:00)"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    PrenatalInspectorRecord docRecord = recordDao.findByRelationAndType(prenatalId.toString(), 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    System.out.println("已提醒"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    json.put("renatalStatus", "2"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    json.put("sendStatus", flag == true ? "1" : "0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (docRecord == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        json.put("sendTime", format.format(record.getSendTime())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        json.put("sendTime", format.format(docRecord.getSendTime())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        json.put("prenatalId", prenatalId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return json; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 提醒居民(每24小时可提醒一次) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param prenatalId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param code       居民code 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param doc        医生code 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public Boolean sendPrenatal(Long prenatalId, String code, String doc) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Boolean flag = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String relation = prenatalId.toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Patient patient = patientDao.findByCode(code); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String name = patient.getName(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String openId = patient.getOpenid(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String mobile = patient.getMobile(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String first = name + ",您好!您和您的宝宝需要进行产检啦~请及时预约产检,如已预约,请忽略"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String url = "wdyy/html/appointment-register.html?openid=" + openId + "&toUser=" + code + "&toName=" + name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            PrenatalInspectorPlan plan = prenatalInspectorPlanDao.findOne(prenatalId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            org.json.JSONObject json = new org.json.JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //产检提醒 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            json.put("remark", "产检内容以医生实际检查为准。点击进行预约"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            json.put("first", first); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            json.put("url", url); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            json.put("keyword1", "产检提醒"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String keyword2 = DateUtil.getStringDateShort() + "\n产检内容:" + plan.getCheckItem(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            json.put("keyword2", keyword2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (StringUtils.isNotEmpty(openId) && !("undefined".equals(openId))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                pushMsgTask.putWxMsg(accessTokenUtils.getAccessToken(), 18, openId, name, json); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                flag = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //发送代理人 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.json.JSONArray jsonArray = weiXinOpenIdUtils.getAgentOpenId(code, openId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (jsonArray != null && jsonArray.length() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    for (int i = 0; i < jsonArray.length(); i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        org.json.JSONObject j = jsonArray.getJSONObject(i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        Patient member = (Patient) j.get("member"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        org.json.JSONObject data = json; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        data.remove("first"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        data.remove("url"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        data.put("url", url + "&represented=" + member.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        data.put("first", weiXinOpenIdUtils.getTitleMes(patient, j.getInt("relation"), name) + first); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if (StringUtils.isNotEmpty(member.getOpenid()) && !("undefined".equals(member.getOpenid()))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            pushMsgTask.putWxMsg(accessTokenUtils.getAccessToken(), 18, member.getOpenid(), name, data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            flag = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (!flag && StringUtils.isNotEmpty(mobile)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                发送短信消息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                org.json.JSONObject resultJson = smsService.sendMsg(mobile, ":张三,您好!您的家庭医生李四提醒你,您和您的宝宝需要进行产检啦~" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        " 您可微信搜索公众号:厦门i健康,关注公众号预约产检时间/查看孕检计划及历史检查记录,更可及时获取产检提醒哟~"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (resultJson != null && resultJson.getInt("result") == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    flag = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (flag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                PrenatalInspectorRecord record = recordDao.findByRelationAndType(relation, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (record == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    record = new PrenatalInspectorRecord(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    record.setTimes(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    record.setTimes(record.getTimes() + 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                record.setRelation(relation); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                record.setSender(doc); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                record.setReceiver(code); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                record.setType(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                record.setName(name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                record.setOpenid(openId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                record.setContent(plan.getCheckItem()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                record.setSendTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                recordDao.save(record); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return flag; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 查询该产检记录是否可提醒(是否过24小时) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param prenatalId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return boolean 是否可提醒 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @throws Exception true 可再次提醒 flase 不可提醒 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public Boolean getSendStatus(Long prenatalId) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Boolean flag = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String relation = prenatalId.toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            PrenatalInspectorRecord record = recordDao.findByRelationAndType(relation, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (record != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                float hours = DateUtil.getHours(new Date(), record.getSendTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (hours > 24) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    flag = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                flag = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return flag; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 |