diff --git a/platform-common/src/main/java/com/lyms/platform/common/enums/JoinEnums.java b/platform-common/src/main/java/com/lyms/platform/common/enums/JoinEnums.java index eaf54e5..64d181f 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/enums/JoinEnums.java +++ b/platform-common/src/main/java/com/lyms/platform/common/enums/JoinEnums.java @@ -10,6 +10,8 @@ import org.apache.commons.lang.StringUtils; public enum JoinEnums { O("已衔接", "1"), O1("未衔接", "2"), + O5("固定", "5"), + O6("半固定", "6"), O4("浮", "4")/*, O2("衔接", "3")*/; diff --git a/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java b/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java index d0b5c03..163c4a9 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java +++ b/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java @@ -53,6 +53,18 @@ public class DateUtil { return days; } + //返回孕周(需要计算) + public static String getPregnancyWeek(Date start, Date end) { + + int day = DateUtil.daysBetween(start, end); + + if (day == -1) { + return ""; + } + + return StringUtils.dueWeek(day); + } + /** * 获取传入日期 相加xx月后的第xx天 * @param date diff --git a/platform-job-index/src/main/java/com/lyms/platform/job/index/restore/data/ConvertHelper.java b/platform-job-index/src/main/java/com/lyms/platform/job/index/restore/data/ConvertHelper.java index 0330ffe..dccd69e 100644 --- a/platform-job-index/src/main/java/com/lyms/platform/job/index/restore/data/ConvertHelper.java +++ b/platform-job-index/src/main/java/com/lyms/platform/job/index/restore/data/ConvertHelper.java @@ -1,14 +1,18 @@ package com.lyms.platform.job.index.restore.data; import com.lyms.platform.biz.service.BasicConfigService; +import com.lyms.platform.biz.service.PatientsService; import com.lyms.platform.common.constants.UnitConstants; import com.lyms.platform.common.enums.*; import com.lyms.platform.common.utils.*; import com.lyms.platform.job.index.model.Placenta; import com.lyms.platform.permission.model.Organization; +import com.lyms.platform.permission.model.Users; +import com.lyms.platform.permission.service.UsersService; import com.lyms.platform.pojo.*; import com.lyms.platform.pojo.Patients; import com.lymsh.mommybaby.maindata.model.*; +import com.lymsh.mommybaby.maindata.service.HospitalsService; import net.sf.json.JSONObject; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.MapUtils; @@ -620,8 +624,7 @@ public class ConvertHelper { * @param antExFuModel * @return */ - public static Reports convertAntExFu(AntenatalExaminationModel antExFuModel, Date lastMenses, - Map rhMap, String doctorUserName) { + public static Reports convertAntExFu(AntenatalExaminationModel antExFuModel, BasicConfigService basicConfigService,PatientsService patientsService,Date lastMenses,Map rhMap, HospitalsService hospitalsService,UsersService usersService, String doctorUserName) { Reports reports = new Reports(); //孕期类型 reports.setType(1); @@ -639,6 +642,7 @@ public class ConvertHelper { reports.setWeeks(DateUtil.getWeek(lastMenses, antExFuModel.getCheckDate())); reports.setResult(convertAntExResult(antExFuModel, rhMap, doctorUserName)); + reports.setMomResult(convertNewAntExResult(antExFuModel, basicConfigService,patientsService,hospitalsService,usersService, doctorUserName)); return reports; } @@ -793,6 +797,10 @@ public class ConvertHelper { antChuJson.put("heart", antExChuModel.getHeart()); //肺部 antChuJson.put("lungs", antExChuModel.getLungs()); + //血型 + antChuJson.put("abo", FunvCommonUtil.getBaseicConfigByid(antExChuModel.getAbo(), basicConfigService)); + //rh血型 + antChuJson.put("rh", FunvCommonUtil.checkYiGan(antExChuModel.getRh())); //产次 antChuJson.put("prodTime", StringUtils.unitHandle(antExChuModel.getProdTime(), UnitConstants.CI)); //顺产 @@ -1291,6 +1299,129 @@ public class ConvertHelper { } /** + * 新版复诊:转换json + * + * @param doctorUserName + * @return + */ + private static String convertNewAntExResult(AntenatalExaminationModel antExFuModel, BasicConfigService basicConfigService, com.lyms.platform.biz.service.PatientsService patientsService,HospitalsService hospitalsService,UsersService usersService, + String doctorUserName) { + JSONObject antFuJson = new JSONObject(); + Patients patients = patientsService.findOnePatientById(antExFuModel.getParentId()); + if (patients == null || patients.getYn() == YnEnums.NO.getId()) { + return ""; + } + + //检查时间 + antFuJson.put("checkTime", DateUtil.getyyyy_MM_dd(antExFuModel.getCheckDate())); + //末次月经 + antFuJson.put("lastMenses", DateUtil.getyyyy_MM_dd(antExFuModel.getLastMenses())); + //产检孕周 + antFuJson.put("currentDueDate", DateUtil.getPregnancyWeek(patients.getLastMenses(), antExFuModel.getCheckDate())); + // 血压 + String ssy = ""; + String szy = ""; + Map chBpMap = JsonUtil.getMap(antExFuModel.getBp()); + if (MapUtils.isNotEmpty(chBpMap)) { + ssy = chBpMap.get("ssy"); + szy = chBpMap.get("szy"); + } + antFuJson.put("bp", StringUtils.unitHandle(ssy + "/" + szy, UnitConstants.MMHG)); + //体重 + antFuJson.put("weight", StringUtils.unitHandle(antExFuModel.getWeight(), UnitConstants.KG)); + String gongGao = ""; + if (org.apache.commons.lang.StringUtils.isNotEmpty(antExFuModel.getGongGaoSelect()) ) + { + if (org.apache.commons.lang.StringUtils.isNotEmpty(antExFuModel.getGongGaoType())) { + gongGao = GongJingEnums.getGongGaoNameById(antExFuModel.getGongGaoSelect()) + "," + GongJingEnums.getHengZhiNameById(antExFuModel.getGongGaoType()); + } else { + gongGao = GongJingEnums.getGongGaoNameById(antExFuModel.getGongGaoSelect()); + } + } + else if (org.apache.commons.lang.StringUtils.isNotEmpty(antExFuModel.getGongGao())) + { + gongGao = StringUtils.unitHandle(antExFuModel.getGongGao(), UnitConstants.CM); + } + //宫高 + antFuJson.put("gongGao", gongGao); + //腹围 + antFuJson.put("abdomCircum", StringUtils.unitHandle(antExFuModel.getAbdominalCircumference(), UnitConstants.CM)); + + //胎儿情况 + List tireList = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(antExFuModel.getTireData())) { + for (Object temp : antExFuModel.getTireData()) { + Map tire = (Map) temp; + if (tire != null) { + String heartRate = tire.get("heartRate") == null ? "" : String.valueOf(tire.get("heartRate")); + String fetalPresentation = tire.get("fetalPresentation") + ""; + + Map tireMap = new HashMap<>(); + //胎心率 + if (org.apache.commons.lang.StringUtils.isNotEmpty(heartRate)) { + tireMap.put("heartRate", StringUtils.unitHandle(heartRate, UnitConstants.CIFEN)); + } else { + tireMap.put("" +"heartRate", ""); + } + String fetalPosition = tire.get("fetalPosition") + ""; + //胎位 + tireMap.put("fetalPosition", FetalPositionEnums.getTitle(fetalPosition)); + //先露 + tireMap.put("fetalPresentation", FetalEnums.getTitle(fetalPresentation)); + tireList.add(tireMap); + } + } + } + //胎儿情况集合 + antFuJson.put("tireData", tireList); + //尿蛋白 + antFuJson.put("urineProtein", antExFuModel.getUrineProtein()); + //血红蛋白 + antFuJson.put("hemoglobin", StringUtils.unitHandle(antExFuModel.getHemoglobin(), UnitConstants.GL)); + /* 诊断指导 */ + String diagnosis = ""; + if (org.apache.commons.lang.StringUtils.isNotEmpty(antExFuModel.getDiagnosis())) { + List temp = JsonUtil.toList(antExFuModel.getDiagnosis(), String.class); + if (CollectionUtils.isNotEmpty(temp)) { + StringBuilder sb = new StringBuilder(); + for (String sId : temp) { + sb.append(FunvCommonUtil.getBaseicConfigByid(sId, basicConfigService)).append(","); + } + if (sb.toString().endsWith(",")) { + diagnosis = sb.substring(0, sb.length() - 1); + } else { + diagnosis = sb.toString(); + } + } + } + antFuJson.put("diagnosis", diagnosis); + String hospital = ""; + if (StringUtils.isNotEmpty(antExFuModel.getHospitalId())) { + HospitalsQuery hospitalsQuery = new HospitalsQuery(); + hospitalsQuery.setForeignId(antExFuModel.getHospitalId()); + List hospList = hospitalsService.queryHospitals(hospitalsQuery); + + if (CollectionUtils.isNotEmpty(hospList)) { + hospital = hospList.get(0).getTitle(); + } + } + antFuJson.put("hospital", hospital); + + String checkDoctor = ""; + + if (org.apache.commons.lang.StringUtils.isNotEmpty(antExFuModel.getCheckDoctor())) { + Users users = usersService.getUsers(Integer.parseInt(antExFuModel.getCheckDoctor())); + if (users != null && users.getYn() == YnEnums.YES.getId()) { + checkDoctor = users.getName(); + } + } + antFuJson.put("checkDoctor", checkDoctor); + // 处理意见 + antFuJson.put("treatmentOpinion", antExFuModel.getTreatmentOpinion()); + return antFuJson.toString(); + } + + /** * 复诊:转换json * * @param antExChuModel @@ -1545,7 +1676,7 @@ public class ConvertHelper { list.add(placenta); antenatalExaminationModel.setTireData(list); - System.out.print(convertAntExFu(antenatalExaminationModel, null, null, "").getResult()); + // System.out.print(convertAntExFu(antenatalExaminationModel, null, null, "").getResult()); } private static String replace(Map map, StringBuilder sb) { diff --git a/platform-job-index/src/main/java/com/lyms/platform/job/index/restore/data/SyncDataWork.java b/platform-job-index/src/main/java/com/lyms/platform/job/index/restore/data/SyncDataWork.java index fd41a35..0a651b4 100644 --- a/platform-job-index/src/main/java/com/lyms/platform/job/index/restore/data/SyncDataWork.java +++ b/platform-job-index/src/main/java/com/lyms/platform/job/index/restore/data/SyncDataWork.java @@ -75,6 +75,9 @@ public class SyncDataWork { */ @Autowired private PatientsService patientsService; + + @Autowired + private com.lyms.platform.biz.service.PatientsService patientService; @Autowired private HospitalsService hospitalsService; /** @@ -716,8 +719,8 @@ public class SyncDataWork { //处理复诊高危 handRiskFu(ant, mamiPatient.getId()); - Reports reports = ConvertHelper.convertAntExFu(ant, patients.getLastMenses(), - bgHighRisk, doctorUserName); + Reports reports = ConvertHelper.convertAntExFu(ant, basicConfigService,patientService,patients.getLastMenses(), + bgHighRisk,hospitalsService,usersService, doctorUserName); logger.info("handleDoctorMemeber antex" + patients.getId() + ". antex id:" + ant.getId()); handleDoctorMemeber(reports, ant.getCheckDoctor(), mamiPatient, patients, stopWatch3);