Ver código fonte

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

yeshijie 7 anos atrás
pai
commit
041b8a63ca

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

@ -27,10 +27,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
 * Created by yeshijie on 2017/6/6.
@ -106,81 +103,14 @@ 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);
                    }
                }
            }
            boolean checkFlag = true;//是否查询预建卡接口。有建卡记录且建卡记录有结束妊娠才查询预建卡
            String response = jwMaternalChildService.getEhrMaternalFirstExamRecord(patient.getIdcard(),hospital);
            JSONObject json = JSONObject.parseObject(response);
            JSONArray data = null;
            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++) {
                    JSONObject planJson = new JSONObject();
@ -199,8 +129,9 @@ public class PrenatalInspectorPreCardService extends BaseService {
                    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;
                        //未结束妊娠,生成待产检计划
                        List<PrenatalInspectorPlan> plans = prenatalInspectorPlanDao.findByPatient(patientCode);
                        boolean flag = false;
@ -274,6 +205,86 @@ public class PrenatalInspectorPreCardService extends BaseService {
                }
            }
            //请求预建卡接口
            if(checkFlag){
                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){
                        JSONArray rep = new JSONArray();
                        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)){
                                continue;//去重
                            }
                            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);
                                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);
                                }
                                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);//产床医院
                            rep.add(planJson);
                        }
                        //重新排序
                        if(rep.size()>0&&re.size()>0){
                            for (int i=0;i<re.size();i++){
                                rep.add(re.getJSONObject(i));
                            }
                            return rep;
                        }
                    }
                }
            }
        }catch (Exception e){
            e.printStackTrace();
        }
@ -548,7 +559,11 @@ public class PrenatalInspectorPreCardService extends BaseService {
            if(preJson.getInteger("status")==200){
                preData = preJson.getJSONObject("data").getJSONArray("DATA");
                if(preData!=null&&preData.size()>0){
                    return "-2";
                    JSONObject temp = preData.getJSONObject(0);
                    String END_MANNER = temp.getString("END_MANNER");//妊娠终止方式
                    if(StringUtils.isBlank(END_MANNER)){
                        return "-2";
                    }
                }
            }
        }catch (Exception e){
@ -556,7 +571,6 @@ public class PrenatalInspectorPreCardService extends BaseService {
            return "-3";
        }
        //获取团队长
        Doctor doctor = doctorDao.findByAdminTeamId(signFamily.getAdminTeamId());
        preCard.setDoctor(doctor.getCode());

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

@ -40,9 +40,9 @@ 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,"获取预建卡信息失败");
            }else if("-2".equals(code)){
                return error(-1,"已有预建卡信息,请不要重复添加");
            }
            preCardService.saveHealthIndex(preCard,getRepUID());//保存体征数据