Przeglądaj źródła

Merge branch 'dev' of yeshijie/patient-co-management into dev

yeshijie 7 lat temu
rodzic
commit
e1d65ae215

+ 88 - 69
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/prenatalInspector/PrenatalInspectorPreCardService.java

@ -106,6 +106,75 @@ public class PrenatalInspectorPreCardService extends BaseService {
        }
        Patient patient = patientDao.findByCode(patientCode);
        try{
            //请求预建卡接口
            String resp = jwMaternalChildService.getEhrMaternalPreFirstExamRecord(patient.getIdcard(),hospital);
            JSONObject preJson = JSONObject.parseObject(resp);
            JSONArray preData = null;
            if(preJson.getInteger("status")==200){
                preData = preJson.getJSONObject("data").getJSONArray("DATA");
                if(preData!=null&&preData.size()>0){
                    for (int i=0;i<preData.size();i++){
                        JSONObject planJson = new JSONObject();
                        JSONObject pregnancy = preData.getJSONObject(i);
                        String PREGNANCY_NO = pregnancy.getString("PREGNANCY_NO");//智业产检号
                        String END_MANNER = pregnancy.getString("END_MANNER");//妊娠终止方式
                        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("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){//判断是否已经生成产检记录
                            //预建卡还没产检,有产检就会生成产检记录,建卡接口就会有数据
                            Long days = DateUtil.getDays(dueday,date);
//                                days = days>365?0:days;//老早前的测试数据处理
                            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.setInspectionCode(PREGNANCY_NO);//产检号
                                plan.setInspectionTime(DateUtil.getPrenatalInspectorDate(dueday,-library.getEndDay().intValue()));
//                                    plan.setInspectionEndTime(DateUtil.getPrenatalInspectorDate(lastMenstrualDate,library.getEndDay().intValue()));
//                                    plan.setInspectionStartTime(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){
                                prenatalInspectorPlanDao.save(plans);
                            }
                        }
                        //计算距离下次产检时间
                        Long nextExamDay = 0l;
                        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);//产床医院
                        re.add(planJson);
                    }
                }
            }
            String response = jwMaternalChildService.getEhrMaternalFirstExamRecord(patient.getIdcard(),hospital);
            JSONObject json = JSONObject.parseObject(response);
            JSONArray data = null;
@ -203,76 +272,8 @@ public class PrenatalInspectorPreCardService extends BaseService {
                    }
                    re.add(planJson);
                }
            }else{
                //没有建卡信息,请求预建卡接口
                response = jwMaternalChildService.getEhrMaternalPreFirstExamRecord(patient.getIdcard(),hospital);
                JSONObject preJson = JSONObject.parseObject(response);
                JSONArray preData = null;
                if(preJson.getInteger("status")==200){
                    preData = preJson.getJSONObject("data").getJSONArray("DATA");
                    if(preData!=null&&preData.size()>0){
                        for (int i=0;i<preData.size();i++){
                            JSONObject planJson = new JSONObject();
                            JSONObject pregnancy = preData.getJSONObject(i);
                            String PREGNANCY_NO = pregnancy.getString("PREGNANCY_NO");//智业产检号
                            String END_MANNER = pregnancy.getString("END_MANNER");//妊娠终止方式
                            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("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){//判断是否已经生成产检记录
                                //预建卡还没产检,有产检就会生成产检记录,建卡接口就会有数据
                                Long days = DateUtil.getDays(dueday,date);
//                                days = days>365?0:days;//老早前的测试数据处理
                                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.setInspectionCode(PREGNANCY_NO);//产检号
                                    plan.setInspectionTime(DateUtil.getPrenatalInspectorDate(dueday,-library.getEndDay().intValue()));
//                                    plan.setInspectionEndTime(DateUtil.getPrenatalInspectorDate(lastMenstrualDate,library.getEndDay().intValue()));
//                                    plan.setInspectionStartTime(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){
                                    prenatalInspectorPlanDao.save(plans);
                                }
                            }
                            //计算距离下次产检时间
                            Long nextExamDay = 0l;
                            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);//产床医院
                            re.add(planJson);
                        }
                    }
                }
            }
        }catch (Exception e){
            e.printStackTrace();
        }
@ -538,6 +539,24 @@ public class PrenatalInspectorPreCardService extends BaseService {
        if(signFamily==null){
            return "-1";
        }
        //判断是否有预建卡
        try {
            String resp = jwMaternalChildService.getEhrMaternalPreFirstExamRecord(preCard.getIdcard(),signFamily.getHospital());
            JSONObject preJson = JSONObject.parseObject(resp);
            JSONArray preData = null;
            if(preJson.getInteger("status")==200){
                preData = preJson.getJSONObject("data").getJSONArray("DATA");
                if(preData!=null&&preData.size()>0){
                    return "-2";
                }
            }
        }catch (Exception e){
            e.printStackTrace();
            return "-3";
        }
        //获取团队长
        Doctor doctor = doctorDao.findByAdminTeamId(signFamily.getAdminTeamId());
        preCard.setDoctor(doctor.getCode());

+ 4 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/patient/prenatalInspector/PrenatalInspectorContoller.java

@ -40,11 +40,14 @@ public class PrenatalInspectorContoller extends BaseController{
            String code = preCardService.addPrenatalInspectorPreCard(preCard,getRepUID());
            if("-1".equals(code)){
                return error(-1,"居民未签约,无法添加预建卡信息");
            }else if("-2".equals(code)){
                return error(-1,"获取预建卡信息失败");
            }else if("-3".equals(code)){
                return error(-1,"已有预建卡信息,请不要重复添加");
            }
            preCardService.saveHealthIndex(preCard,getRepUID());//保存体征数据
            String re = preCardService.uploadPreExam(code);//上传智业
            if(StringUtils.isNotBlank(re)){
                System.out.println("re======"+re);
                return error(-1,re);
            }
            return success("预建卡保存成功!");