diff --git a/platform-common/src/main/java/com/lyms/platform/common/constants/UnitConstants.java b/platform-common/src/main/java/com/lyms/platform/common/constants/UnitConstants.java index 3bafe63..71b2d13 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/constants/UnitConstants.java +++ b/platform-common/src/main/java/com/lyms/platform/common/constants/UnitConstants.java @@ -32,6 +32,8 @@ public class UnitConstants { public static final String WENDU = " ℃"; public static final String WSSD = " IU/日"; public static final String DAY = " 天"; + public static final String BMI = " Kg/m²"; + } diff --git a/platform-common/src/main/java/com/lyms/platform/common/utils/StringUtils.java b/platform-common/src/main/java/com/lyms/platform/common/utils/StringUtils.java index 0336be2..f1dd7a7 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/utils/StringUtils.java +++ b/platform-common/src/main/java/com/lyms/platform/common/utils/StringUtils.java @@ -297,11 +297,11 @@ public final class StringUtils { } - public static String unitHandle(String value, String unit) { - if (org.apache.commons.lang.StringUtils.isNotEmpty(value)) { - return value + unit; + public static String unitHandle(Object value, String unit) { + if (value==null || "/".equals(value)){ + return null; } - return ""; + return value.toString() + unit; } public static List covertToList(String s, Class clazz) { diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/AntExChuModel.java b/platform-dal/src/main/java/com/lyms/platform/pojo/AntExChuModel.java index 4788f4f..8b386f2 100644 --- a/platform-dal/src/main/java/com/lyms/platform/pojo/AntExChuModel.java +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/AntExChuModel.java @@ -27,50 +27,9 @@ public class AntExChuModel extends BaseModel { //该字段是针对聊城东昌区妇幼保健医院保存当天孕妇的lis检查项 private String lisCheckItems; - - public Integer getFirst() { - return first; - } - - public void setFirst(Integer first) { - this.first = first; - } - - public String getLisCheckItems() { - return lisCheckItems; - } - - public void setLisCheckItems(String lisCheckItems) { - this.lisCheckItems = lisCheckItems; - } - - public String getGenRemark() { - return genRemark; - } - - public void setGenRemark(String genRemark) { - this.genRemark = genRemark; - } - - public String getGynRemark() { - return gynRemark; - } - - public void setGynRemark(String gynRemark) { - this.gynRemark = gynRemark; - } - /** 是否打印过 1=已打印 有这个字段就算打印 */ private Integer isPrient; - public Integer getIsPrient() { - return isPrient; - } - - public void setIsPrient(Integer isPrient) { - this.isPrient = isPrient; - } - /** 处理意见 */ private Map> treatmentOpinion2; private List treatmentOpinion2Types; @@ -79,37 +38,6 @@ public class AntExChuModel extends BaseModel { /** 胎动备注 */ private String quickenRemark; - public String getQuicken() { - return quicken; - } - - public void setQuicken(String quicken) { - this.quicken = quicken; - } - - public String getQuickenRemark() { - return quickenRemark; - } - - public void setQuickenRemark(String quickenRemark) { - this.quickenRemark = quickenRemark; - } - - public List getTreatmentOpinion2Types() { - return treatmentOpinion2Types; - } - - public Map> getTreatmentOpinion2() { - return treatmentOpinion2; - } - - public void setTreatmentOpinion2(Map> treatmentOpinion2) { - this.treatmentOpinion2 = treatmentOpinion2; - } - - public void setTreatmentOpinion2Types(List treatmentOpinion2Types) { - this.treatmentOpinion2Types = treatmentOpinion2Types; - } //条码 private String barCode; private String id; @@ -132,6 +60,7 @@ public class AntExChuModel extends BaseModel { //末次月经 private Date lastMenses; private String cDueWeek; + //丙肝 private String bg; // 既往史 private String pastHistory ; @@ -189,6 +118,7 @@ public class AntExChuModel extends BaseModel { private String tireNumber1; //梅毒血清实验结果 private String syjg; + private List placentas; //心脏 private String heart; @@ -312,7 +242,180 @@ public class AntExChuModel extends BaseModel { //载脂蛋白B(ApoB) public String apolipb; //心电图 - public String electr; + public String electr;/*//心率 + private double heartRate; + //胎方位 + private String fetalPosition; + //胎先露 + private String fetalPresentation; + // 衔接 + private String join;*/ + //高危因素 + private String highrisk ; + //高危评分 + private String highriskSocre; + // 其他高危 + private String otherHighRisk; + //高危补充说明 + private String highriskDesc; + // 诊断 + private String diagnosis; + //处理意见 + private String treatOpinion; + //指导意见 + private String dirOpinion; + //产检 医生 + private String prodDoctor; + //产检日期 + private Date checkTime; + //下次产检时间 + private Date nextCheckTime; + private Integer yn; + //血红蛋白值 + private String xhdb ; + //白细胞计数值 + private String bxbjs ; + //血小板 + private String platelet; + // 血常规其他 + private String chgOther ; + // 尿蛋白 + private String ndb; + //尿糖 + private String nt; + //尿同体 + private String urineKetone ; + // 尿潜血 + private String bld ; + //尿常规其他 + private String ncgOther; + //ABO + private String abo ; + // rh + private String rh ; + // 血糖1 + private String bloodSugar; + // 血糖2 + private String bloodSugar2; + // 血糖3 + private String bloodSugar3; + // 血糖4 + private String bloodSugar4; + //B超 + private String bChao ; + //胎数 + private String tireNumber ; + //血清谷丙转氨酶 + private String xqgbzam ; + //血清谷草转氨酶 + private String xqgczam ; + //白蛋白 + private String albumin ; + //总胆红素 + private String totalBilirubin; + // 结合胆红素 + private String jhBilirubin ; + //乙肝表面抗原 + private String ygbmky; + //乙肝表面抗体 + private String ygbmkt; + //乙肝e抗原 + private String ygeky; + //乙肝e抗体 + private String ygekt; + // 乙肝核心抗体 + private String yghxkt; + // 血清肌 + private String xqjq; + // 血尿素氮 + private String xnsd; + // 梅毒血清实验 +// private String mdxqsy; + // hit抗体检测 + private String hivkt; + // 阴道分泌物 + private String ydfmw; + // 阴道清洁度 + private String ydqjd; + + private Date modified; + //操作人 + private Integer operator; + + + public Integer getFirst() { + return first; + } + + public void setFirst(Integer first) { + this.first = first; + } + + public String getLisCheckItems() { + return lisCheckItems; + } + + public void setLisCheckItems(String lisCheckItems) { + this.lisCheckItems = lisCheckItems; + } + + public String getGenRemark() { + return genRemark; + } + + public void setGenRemark(String genRemark) { + this.genRemark = genRemark; + } + + public String getGynRemark() { + return gynRemark; + } + + public void setGynRemark(String gynRemark) { + this.gynRemark = gynRemark; + } + + + public Integer getIsPrient() { + return isPrient; + } + + public void setIsPrient(Integer isPrient) { + this.isPrient = isPrient; + } + + + public String getQuicken() { + return quicken; + } + + public void setQuicken(String quicken) { + this.quicken = quicken; + } + + public String getQuickenRemark() { + return quickenRemark; + } + + public void setQuickenRemark(String quickenRemark) { + this.quickenRemark = quickenRemark; + } + + public List getTreatmentOpinion2Types() { + return treatmentOpinion2Types; + } + + public Map> getTreatmentOpinion2() { + return treatmentOpinion2; + } + + public void setTreatmentOpinion2(Map> treatmentOpinion2) { + this.treatmentOpinion2 = treatmentOpinion2; + } + + public void setTreatmentOpinion2Types(List treatmentOpinion2Types) { + this.treatmentOpinion2Types = treatmentOpinion2Types; + } public String getTtita() { return ttita; @@ -838,80 +941,6 @@ public class AntExChuModel extends BaseModel { this.hHealthInfo = hHealthInfo; } - /*//心率 - private double heartRate; - //胎方位 - private String fetalPosition; - //胎先露 - private String fetalPresentation; - // 衔接 - private String join;*/ - //高危因素 - private String highrisk ; - //高危评分 - private String highriskSocre; - // 其他高危 - private String otherHighRisk; - //高危补充说明 - private String highriskDesc; - // 诊断 - private String diagnosis; - //处理意见 - private String treatOpinion; - //指导意见 - private String dirOpinion; - //产检 医生 - private String prodDoctor; - //产检日期 - private Date checkTime; - //下次产检时间 - private Date nextCheckTime; - private Integer yn; - //血红蛋白值 - private String xhdb ; - //白细胞计数值 - private String bxbjs ; - //血小板 - private String platelet; - // 血常规其他 - private String chgOther ; - // 尿蛋白 - private String ndb; - //尿糖 - private String nt; - //尿同体 - private String urineKetone ; - // 尿潜血 - private String bld ; - //尿常规其他 - private String ncgOther; - //ABO - private String abo ; - // rh - private String rh ; - // 血糖1 - private String bloodSugar; - // 血糖2 - private String bloodSugar2; - // 血糖3 - private String bloodSugar3; - // 血糖4 - private String bloodSugar4; - //B超 - private String bChao ; - //胎数 - private String tireNumber ; - //血清谷丙转氨酶 - private String xqgbzam ; - //血清谷草转氨酶 - private String xqgczam ; - //白蛋白 - private String albumin ; - //总胆红素 - private String totalBilirubin; - // 结合胆红素 - private String jhBilirubin ; - public Date getModified() { return modified; } @@ -920,33 +949,6 @@ public class AntExChuModel extends BaseModel { this.modified = modified; } - //乙肝表面抗原 - private String ygbmky; - //乙肝表面抗体 - private String ygbmkt; - //乙肝e抗原 - private String ygeky; - //乙肝e抗体 - private String ygekt; - // 乙肝核心抗体 - private String yghxkt; - // 血清肌 - private String xqjq; - // 血尿素氮 - private String xnsd; - // 梅毒血清实验 -// private String mdxqsy; - // hit抗体检测 - private String hivkt; - // 阴道分泌物 - private String ydfmw; - // 阴道清洁度 - private String ydqjd; - - private Date modified; - //操作人 - private Integer operator; - public Integer getOperator() { return operator; } 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 7f1532c..9977d99 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,17 +1,17 @@ package com.lyms.platform.job.index.restore.data; +import com.lyms.platform.biz.service.BasicConfigService; import com.lyms.platform.common.constants.UnitConstants; import com.lyms.platform.common.enums.*; -import com.lyms.platform.common.utils.DateUtil; -import com.lyms.platform.common.utils.JsonUtil; -import com.lyms.platform.common.utils.ReflectionUtils; -import com.lyms.platform.common.utils.StringUtils; +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.pojo.*; import com.lyms.platform.pojo.Patients; import com.lymsh.mommybaby.maindata.model.*; +import net.sf.json.JSONObject; import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.collections.MapUtils; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.support.EncodedResource; import org.springframework.core.io.support.PropertiesLoaderUtils; @@ -52,7 +52,6 @@ public class ConvertHelper { content.put("fyyw", "服用药物"); content.put("jcydyhwz", "接触有毒有害物质"); content.put("jcfsx", "接触放射线"); - content.put("jcydyhwz", "接触有毒有害物质"); content.put("fzym", "风疹疫苗"); content.put("ygym", "乙肝疫苗"); content.put("mzym", "麻疹疫苗"); @@ -77,7 +76,6 @@ public class ConvertHelper { content.put("xm", "胸闷"); content.put("fz", "浮肿"); content.put("ydcx", "阴道出血"); - content.put("ft", "腹痛"); content.put("tt", "头痛"); content.put("ft", "腹痛"); @@ -206,7 +204,7 @@ public class ConvertHelper { bregma = "未闭合"; String one = map.get("wbhcc1") == null ? "" : map.get("wbhcc1").toString(); String two = map.get("wbhcc2") == null ? "" : map.get("wbhcc2").toString(); - bregma = bregma+":"+one + "cm - " + two + "cm"; + bregma = bregma + ":" + one + "cm - " + two + "cm"; } } babyPaedia.setBregma(bregma); @@ -282,7 +280,7 @@ public class ConvertHelper { babyCheckCommonly.setGrowthEvaluate(sb.toString()); } } - babyCheckCommonly.setHead(com.lyms.platform.common.utils.StringUtils.unitHandle(babyCheckModel.getHead(), UnitConstants.CM)); + babyCheckCommonly.setHead(StringUtils.unitHandle(babyCheckModel.getHead(), UnitConstants.CM)); babyCheckCommonly.setHeight(com.lyms.platform.common.utils.StringUtils.unitHandle(babyCheckModel.getHeight(), UnitConstants.CM)); babyCheckCommonly.setHeightWeight(babyCheckModel.getHeightWeight()); String bregma = ""; @@ -292,10 +290,10 @@ public class ConvertHelper { if ("yes".equals(yesOrNo)) { bregma = "闭合"; } else if ("no".equals(yesOrNo)) { - bregma = "未闭合"; + bregma = "未闭合"; String one = map.get("wbhcc1") == null ? "" : map.get("wbhcc1").toString(); String two = map.get("wbhcc2") == null ? "" : map.get("wbhcc2").toString(); - bregma = bregma+":"+one + "cm - " + two + "cm"; + bregma = bregma + ":" + one + "cm - " + two + "cm"; } } babyCheckCommonly.setBregma(bregma); @@ -589,12 +587,12 @@ public class ConvertHelper { } /** - * 转换检查报告 + * 初诊:转换检查报告 * * @param antExChuModel * @return */ - public static Reports convertAntExChu(AntExChuModel antExChuModel, Date lastMenses, Map map, String doctorUserName) { + public static Reports convertAntEx(AntExChuModel antExChuModel, Date lastMenses, BasicConfigService basicConfigService,Map map, String doctorUserName) { Reports reports = new Reports(); //孕期类型 reports.setType(1); @@ -611,40 +609,380 @@ public class ConvertHelper { reports.setNextCheckTime(antExChuModel.getNextCheckTime()); reports.setWeeks(DateUtil.getWeek(lastMenses, antExChuModel.getCheckTime())); reports.setResult(convertAntExChuResult(antExChuModel, map, doctorUserName)); + reports.setMomResult(convertNewAntExChuResult(antExChuModel, basicConfigService,map, doctorUserName)); return reports; } /** - * 转换检查报告 + * 复诊:转换检查报告 * - * @param antExChuModel + * @param antExFuModel * @return */ - public static Reports convertAntExChu(AntenatalExaminationModel antExChuModel, Date lastMenses, - Map rhMap, String doctorUserName) { + public static Reports convertAntExFu(AntenatalExaminationModel antExFuModel, Date lastMenses, + Map rhMap, String doctorUserName) { Reports reports = new Reports(); //孕期类型 reports.setType(1); - reports.setPhysicalTime(antExChuModel.getCheckDate()); - reports.setForeignId(antExChuModel.getId()); + reports.setPhysicalTime(antExFuModel.getCheckDate()); + reports.setForeignId(antExFuModel.getId()); reports.setDesignation("复诊"); - reports.setCreated(antExChuModel.getCreated()); - reports.setModified(antExChuModel.getModified()); - reports.setYn(antExChuModel.getYn()); + reports.setCreated(antExFuModel.getCreated()); + reports.setModified(antExFuModel.getModified()); + reports.setYn(antExFuModel.getYn()); reports.setPublishId(0); //产检报告 reports.setCheckType(3); reports.setPublishName(AUTO_WORKER); - reports.setNextCheckTime(antExChuModel.getNextCheckTime()); + reports.setNextCheckTime(antExFuModel.getNextCheckTime()); - reports.setWeeks(DateUtil.getWeek(lastMenses, antExChuModel.getCheckDate())); - reports.setResult(convertAntExResult(antExChuModel, rhMap, doctorUserName)); + reports.setWeeks(DateUtil.getWeek(lastMenses, antExFuModel.getCheckDate())); + reports.setResult(convertAntExResult(antExFuModel, rhMap, doctorUserName)); return reports; } + /** - * 把初诊转换成json + * 新版初诊:转换成json + * + * @param antExChuModel + * @return + */ + private static String convertNewAntExChuResult(AntExChuModel antExChuModel, BasicConfigService basicConfigService, Map bgMap, String doctorUserName) { + + + String antChuStr = JsonUtil.obj2JsonString(antExChuModel); + JSONObject antChuJson = JsonUtil.getObj(antChuStr); + + //孕期当前体重 + antChuJson.put("weight", StringUtils.unitHandle(antExChuModel.getWeight(), UnitConstants.KG)); + //孕前体重 + antChuJson.put("yqWeight", StringUtils.unitHandle(antExChuModel.getYqWeight(), UnitConstants.KG)); + //宫高 + antChuJson.put("gonggao", StringUtils.unitHandle(antExChuModel.getGonggao(), UnitConstants.CM)); + //腹围 + antChuJson.put("fuwei", StringUtils.unitHandle(antExChuModel.getFuwei(), UnitConstants.CM)); + //身高 + antChuJson.put("height", StringUtils.unitHandle(antExChuModel.getHeight(), UnitConstants.CM)); + //既往史 + String pastHistory = ""; + if (org.apache.commons.lang.StringUtils.isNotEmpty(antExChuModel.getPastHistory())) { + Map map1 = JsonUtil.jkstr2Obj(antExChuModel.getPastHistory(), Map.class); + pastHistory = FunvCommonUtil.replace(map1, new StringBuilder(), basicConfigService); + } + antChuJson.put("pastHistory", pastHistory); + //家族史 + String familyHistory = ""; + if (org.apache.commons.lang.StringUtils.isNotEmpty(antExChuModel.getFamilyHistory())) { + Map map1 = JsonUtil.jkstr2Obj(antExChuModel.getFamilyHistory(), Map.class); + familyHistory = FunvCommonUtil.replace(map1, new StringBuilder(), basicConfigService); + } + antChuJson.put("familyHistory", familyHistory); + //个人史 + String personalHistory = ""; + if (org.apache.commons.lang.StringUtils.isNotEmpty(antExChuModel.getPersonalHistory())) { + Map map1 = JsonUtil.jkstr2Obj(antExChuModel.getPersonalHistory(), Map.class); + personalHistory = FunvCommonUtil.replace(map1, new StringBuilder(), basicConfigService); + } + antChuJson.put("personalHistory", personalHistory); + //疫苗接种史 + String ymjzHistory = ""; + if (org.apache.commons.lang.StringUtils.isNotEmpty(antExChuModel.getYmjzHistory())) { + Map map1 = JsonUtil.jkstr2Obj(antExChuModel.getYmjzHistory(), Map.class); + ymjzHistory = FunvCommonUtil.replace(map1, new StringBuilder(), basicConfigService); + } + antChuJson.put("ymjzHistory", ymjzHistory); + //药物过敏史 + String ywgmHistory = ""; + if (org.apache.commons.lang.StringUtils.isNotEmpty(antExChuModel.getYwgmHistory())) { + Map map1 = JsonUtil.jkstr2Obj(antExChuModel.getYwgmHistory(), Map.class); + ywgmHistory = FunvCommonUtil.replace(map1, new StringBuilder(), basicConfigService); + } + antChuJson.put("ywgmHistory", ywgmHistory); + //妇科手术史 + String fksxHistory = ""; + if (org.apache.commons.lang.StringUtils.isNotEmpty(antExChuModel.getFksxHistory())) { + Map map1 = JsonUtil.jkstr2Obj(antExChuModel.getFksxHistory(), Map.class); + fksxHistory = FunvCommonUtil.replace(map1, new StringBuilder(), basicConfigService); + } + antChuJson.put("fksxHistory", fksxHistory); + //叶酸服用 + String ysfyHistory = ""; + if (org.apache.commons.lang.StringUtils.isNotEmpty(antExChuModel.getYsfyHistory())) { + Map map1 = JsonUtil.jkstr2Obj(antExChuModel.getYsfyHistory(), Map.class); + ysfyHistory = FunvCommonUtil.replace(map1, new StringBuilder(), basicConfigService); + } + antChuJson.put("ysfyHistory", ysfyHistory); + //本次妊娠情况 + String cestationInfo = ""; + if (org.apache.commons.lang.StringUtils.isNotEmpty(antExChuModel.getCestationInfo())) { + Map map1 = JsonUtil.jkstr2Obj(antExChuModel.getCestationInfo(), Map.class); + cestationInfo = FunvCommonUtil.replace(map1, new StringBuilder(), basicConfigService); + } + antChuJson.put("cestationInfo", cestationInfo); + //孕产史 + //孕次 + antChuJson.put("pregnancyTimes", StringUtils.unitHandle(antExChuModel.getPregnancyTimes(), UnitConstants.CI)); + //产次 + antChuJson.put("prodTime", StringUtils.unitHandle(antExChuModel.getProdTime(), UnitConstants.CI)); + //顺产 + antChuJson.put("delivery", StringUtils.unitHandle(antExChuModel.getDelivery(), UnitConstants.CI)); + //破宫产 + antChuJson.put("planedProd", StringUtils.unitHandle(antExChuModel.getPlanedProd(), UnitConstants.CI)); + //引产 + antChuJson.put("yinchan", StringUtils.unitHandle(antExChuModel.getYinchan(), UnitConstants.CI)); + //死胎 + antChuJson.put("stillbirth", StringUtils.unitHandle(antExChuModel.getStillbirth(), UnitConstants.CI)); + //死产 + antChuJson.put("stillChan", StringUtils.unitHandle(antExChuModel.getStillChan(), UnitConstants.CI)); + //新生儿死亡 + antChuJson.put("neoDeath", StringUtils.unitHandle(antExChuModel.getNeoDeath(), UnitConstants.CI)); + //出生缺陷 + antChuJson.put("birthDefect", StringUtils.unitHandle(antExChuModel.getBirthDefect(), UnitConstants.CI)); + //身高 + antChuJson.put("height", StringUtils.unitHandle(antExChuModel.getHeight(), UnitConstants.CM)); + //体重 + antChuJson.put("weight", StringUtils.unitHandle(antExChuModel.getWeight(), UnitConstants.KG)); + //体重指数 + antChuJson.put("baricIndex", antExChuModel.getBaricIndex()); + //孕前体重 + antChuJson.put("yqWeight", StringUtils.unitHandle(antExChuModel.getYqWeight(), UnitConstants.KG)); + // 血压 + String ssy = ""; + String szy = ""; + Map chBpMap = JsonUtil.getMap(antExChuModel.getBp()); + if (MapUtils.isNotEmpty(chBpMap)) { + ssy = chBpMap.get("ssy"); + szy = chBpMap.get("szy"); + } + //血压 + antChuJson.put("bp", StringUtils.unitHandle(ssy + "/" + szy, UnitConstants.MMHG)); + + //流产 + StringBuffer abortion = new StringBuffer(); + if (antExChuModel.getAbortion() != null) { + boolean isAppend = false; + abortion.append(StringUtils.unitHandle(antExChuModel.getAbortion(), UnitConstants.CI) == null ? "" : StringUtils.unitHandle(antExChuModel.getAbortion(), UnitConstants.CI)); + if (antExChuModel.getAbortionZR() != null || antExChuModel.getAbortionRG() != null || antExChuModel.getYaowu() != null) { + isAppend = true; + abortion.append("("); + } + if (antExChuModel.getAbortionZR() != null) { + abortion.append("自然:" + antExChuModel.getAbortionZR() + UnitConstants.CI); + } + + if (antExChuModel.getAbortionRG() != null) { + abortion.append(" 人工:" + antExChuModel.getAbortionRG() + UnitConstants.CI + ""); + } + + if (antExChuModel.getYaowu() != null) { + abortion.append(" 药物:" + antExChuModel.getYaowu() + UnitConstants.CI + ""); + } + if (isAppend) { + abortion.append(")"); + } + } + //流产 + antChuJson.put("abortion", abortion); + try { + //国家高危+自定义高危 + List highrisks = JsonUtil.toList(antExChuModel.getHighrisk(), List.class); + if (CollectionUtils.isNotEmpty(highrisks)) { + StringBuilder sb = new StringBuilder(); + for (Object str : highrisks) { + if (null != str && StringUtils.isNotEmpty(str.toString())) { + String val = bgMap.get(str.toString()); + if (org.apache.commons.lang.StringUtils.isNotEmpty(val)) { + sb.append(val).append("、"); + } + } + } + List otherHighRisks = new ArrayList<>(); + String ot = antExChuModel.getOtherHighRisk(); + if (StringUtils.isNotEmpty(ot) && ot.startsWith("[") && antExChuModel.getOtherHighRisk().endsWith("]")) { + List list3 = JsonUtil.toList(ot, Map.class); + otherHighRisks.addAll(list3); + } else if (org.apache.commons.lang.StringUtils.isNotEmpty(ot)) { + Map otherMap = JsonUtil.jkstr2Obj(ot, Map.class); + otherHighRisks.add(otherMap); + } + if (CollectionUtils.isNotEmpty(otherHighRisks)) { + for (Map ma : otherHighRisks) { + Object rh = ma.get("fxysu"); + if (null != rh && StringUtils.isNotEmpty(rh.toString())) { + sb.append(rh); + } + } + } + //高危因素 + antChuJson.put("riskFactor", sb.toString()); + } + } catch (Exception e) { + e.printStackTrace(); + } + + try { + //胎盘 + if (CollectionUtils.isNotEmpty(antExChuModel.getPlacentas())) { + String heartRateVal = "", fetalPositionVal = "", fetalPresentationVal = "", joinVal = ""; + for (int j = 0; j < antExChuModel.getPlacentas().size(); j++) { + LinkedHashMap map = (LinkedHashMap) antExChuModel.getPlacentas().get(j); + if (null != map) { + //胎先露、胎方位、胎心率和衔接 + String heartRate = String.valueOf(map.get("heartRate")); + String fetalPosition = String.valueOf(map.get("fetalPosition")); + String fetalPresentation = String.valueOf(map.get("fetalPresentation")); + String join = String.valueOf(map.get("join")); + if (!"null".equals(heartRate) && StringUtils.isNotEmpty(heartRate)) { + heartRateVal += heartRate + "次/分" + ","; + } + if (!"null".equals(fetalPosition) && StringUtils.isNotEmpty(fetalPosition)) { + fetalPositionVal += FetalPositionEnums.getTitle(fetalPosition) + ","; + } + if (!"null".equals(fetalPresentation) && StringUtils.isNotEmpty(fetalPresentation)) { + fetalPresentationVal += FetalEnums.getTitle(fetalPresentation) + ","; + } + if (!"null".equals(join) && StringUtils.isNotEmpty(join)) { + joinVal += JoinEnums.getTitle(join) + ","; + } + } + } + if (heartRateVal.endsWith(",")) { + heartRateVal = heartRateVal.substring(0, heartRateVal.length() - 1); + } + if (fetalPositionVal.endsWith(",")) { + fetalPositionVal = fetalPositionVal.substring(0, fetalPositionVal.length() - 1); + } + if (fetalPresentationVal.endsWith(",")) { + fetalPresentationVal = fetalPresentationVal.substring(0, fetalPresentationVal.length() - 1); + } + //胎心率 + if (StringUtils.isNotEmpty(heartRateVal)) { + antChuJson.put("heartRateVal", heartRateVal); + } + //胎方位 + if (StringUtils.isNotEmpty(fetalPositionVal)) { + antChuJson.put("fetalPositionVal", fetalPositionVal); + } + //胎先露 + if (StringUtils.isNotEmpty(fetalPresentationVal)) { + antChuJson.put("fetalPresentationVal", fetalPresentationVal); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + + + /* 辅助检查:血常规 */ + antChuJson.put("xhdb", StringUtils.unitHandle(antExChuModel.getXhdb(), UnitConstants.GL)); + antChuJson.put("bxbjs", StringUtils.unitHandle(antExChuModel.getBxbjs(), UnitConstants.TEN_LKG)); + antChuJson.put("platelet", StringUtils.unitHandle(antExChuModel.getPlatelet(), UnitConstants.TEN_LKG)); + antChuJson.put("chgOther", antExChuModel.getChgOther()); + /* 辅助检查:尿常规 */ + antChuJson.put("ndb", antExChuModel.getNdb()); + antChuJson.put("nt", antExChuModel.getNt()); + antChuJson.put("urineKetone", antExChuModel.getUrineKetone()); + antChuJson.put("bld", antExChuModel.getBld()); + antChuJson.put("ncgOther", antExChuModel.getNcgOther()); + //血糖 + antChuJson.put("bloodSugar", StringUtils.unitHandle(antExChuModel.getBloodSugar(), UnitConstants.MMOLL)); + /**肝功能**/ + antChuJson.put("xqgbzam", StringUtils.unitHandle(antExChuModel.getXqgbzam(), UnitConstants.UL)); + antChuJson.put("xqgczam", StringUtils.unitHandle(antExChuModel.getXqgczam(), UnitConstants.UL)); + antChuJson.put("albumin", StringUtils.unitHandle(antExChuModel.getAlbumin(), UnitConstants.GL)); + antChuJson.put("totalBilirubin", StringUtils.unitHandle(antExChuModel.getTotalBilirubin(), UnitConstants.UMOLL)); + antChuJson.put("jhBilirubin", StringUtils.unitHandle(antExChuModel.getJhBilirubin(), UnitConstants.UMOLL)); + antChuJson.put("bg", FunvCommonUtil.checkYiGan(antExChuModel.getBg())); + /**乙肝五项**/ + antChuJson.put("ygbmky", FunvCommonUtil.checkYiGan(antExChuModel.getYgbmky())); + antChuJson.put("ygbmkt", FunvCommonUtil.checkYiGan(antExChuModel.getYgbmkt())); + antChuJson.put("ygeky", FunvCommonUtil.checkYiGan(antExChuModel.getYgeky())); + antChuJson.put("ygekt", FunvCommonUtil.checkYiGan(antExChuModel.getYgekt())); + antChuJson.put("yghxkt", FunvCommonUtil.checkYiGan(antExChuModel.getYghxkt())); + /**肾功能**/ + antChuJson.put("xqjq", StringUtils.unitHandle(antExChuModel.getXqjq(), UnitConstants.UMOLL)); + antChuJson.put("xnsd", StringUtils.unitHandle(antExChuModel.getXnsd(), UnitConstants.MMOLL)); + /**梅毒血清实验 HIV**/ + antChuJson.put("syjg", FunvCommonUtil.checkYiGan(antExChuModel.getSyjg())); + antChuJson.put("hivkt", FunvCommonUtil.checkYiGan(antExChuModel.getHivkt())); + antChuJson.put("bChao", antExChuModel.getbChao()); + + + + //孕前体重指数 yqWeight + if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(antExChuModel.getYqWeight()) && com.lyms.platform.common.utils.StringUtils.isNotEmpty(antExChuModel.getHeight())) { + try { + //体重指数计算规则:孕前体重/身高(单位米)的平方 + java.text.DecimalFormat df = new java.text.DecimalFormat("#.#"); + double tzzs = Double.parseDouble(antExChuModel.getYqWeight()) / Math.pow(Double.parseDouble(antExChuModel.getHeight()) / 100, 2); + antChuJson.put("tzzs", StringUtils.unitHandle(df.format(tzzs), UnitConstants.BMI)); + } catch (Exception e) { + ExceptionUtils.catchException(e, "体重指数计算错误"); + } + } + + + /* 诊断指导 */ + String diagnosis = ""; + if (org.apache.commons.lang.StringUtils.isNotEmpty(antExChuModel.getDiagnosis())) { + List temp = JsonUtil.toList(antExChuModel.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(); + } + } + } + //诊断 + antChuJson.put("diagnosis", diagnosis); + //处理意见 + antChuJson.put("treatOpinion", antExChuModel.getTreatOpinion()); + //指导意见 + antChuJson.put("dirOpinion", antExChuModel.getDirOpinion()); + //医生 + antChuJson.put("prodDoctorStr",doctorUserName); + + return antChuJson.toString(); + } + + /** + * 将数据转换为中文 + * @param antChuJson + * @return + */ + private static String convertAntExChuChine(JSONObject antChuJson){ + Iterator sIterator = antChuJson.keys(); + List list = new ArrayList(); + while(sIterator.hasNext()){ + // 获得key + String key = sIterator.next(); + // 获取值 + String value = antChuJson.getString(key); + //获取中文 + String chineStr = properties.getProperty(key); + + if(StringUtils.isNotEmpty(chineStr)){ + Map dataMap1 = new HashMap<>(); + dataMap1.put("k", chineStr); + dataMap1.put("v", value); + list.add(dataMap1); + } + } + return JsonUtil.array2JsonString(list); + } + + + /** + * 初诊:转换成json * * @param antExChuModel * @return @@ -741,122 +1079,119 @@ public class ConvertHelper { } list.add(dataMap); continue; - } else - //高危 - if ("高危因素".equals(key)) { - List map = null; - try { - map = JsonUtil.toList(antExChuModel.getHighrisk(), List.class); - } catch (Exception e) { - } + } else if ("高危因素".equals(key)) {//高危 + List map = null; + try { + map = JsonUtil.toList(antExChuModel.getHighrisk(), List.class); + } catch (Exception e) { + } - if (CollectionUtils.isNotEmpty(map)) { - StringBuilder sb = new StringBuilder(); - for (Object str : map) { - if (null != str && org.apache.commons.lang.StringUtils.isNotEmpty(str.toString())) { - String val = bgMap.get(str.toString()); - if (org.apache.commons.lang.StringUtils.isNotEmpty(val)) { - sb.append(val).append("、"); - } + if (CollectionUtils.isNotEmpty(map)) { + StringBuilder sb = new StringBuilder(); + for (Object str : map) { + if (null != str && org.apache.commons.lang.StringUtils.isNotEmpty(str.toString())) { + String val = bgMap.get(str.toString()); + if (org.apache.commons.lang.StringUtils.isNotEmpty(val)) { + sb.append(val).append("、"); } } + } - List otherHighRisks = new ArrayList<>(); - List list3 = null; - String ot = antExChuModel.getOtherHighRisk(); - if (org.apache.commons.lang.StringUtils.isNotEmpty(ot) && ot.startsWith("[") && antExChuModel.getOtherHighRisk().endsWith("]")) { - list3 = JsonUtil.toList(ot, Map.class); - otherHighRisks.addAll(list3); - } else if (org.apache.commons.lang.StringUtils.isNotEmpty(ot)) { - Map otherMap = JsonUtil.jkstr2Obj(ot, Map.class); - otherHighRisks.add(otherMap); - } + List otherHighRisks = new ArrayList<>(); + List list3 = null; + String ot = antExChuModel.getOtherHighRisk(); + if (StringUtils.isNotEmpty(ot) && ot.startsWith("[") && antExChuModel.getOtherHighRisk().endsWith("]")) { + list3 = JsonUtil.toList(ot, Map.class); + otherHighRisks.addAll(list3); + } else if (org.apache.commons.lang.StringUtils.isNotEmpty(ot)) { + Map otherMap = JsonUtil.jkstr2Obj(ot, Map.class); + otherHighRisks.add(otherMap); + } - if (CollectionUtils.isNotEmpty(otherHighRisks)) { - for (Map ma : otherHighRisks) { - Object rh = ma.get("fxysu"); - if (null != rh && StringUtils.isNotEmpty(rh.toString())) { - sb.append(rh); - } + if (CollectionUtils.isNotEmpty(otherHighRisks)) { + for (Map ma : otherHighRisks) { + Object rh = ma.get("fxysu"); + if (null != rh && StringUtils.isNotEmpty(rh.toString())) { + sb.append(rh); } } - //低压 - java.util.Map dataMap1 = new HashMap<>(); - dataMap1.put("k", key); - dataMap1.put("v", sb.toString()); - list.add(dataMap1); } - continue; - } else if ("胎盘".equals(key)) { - if (CollectionUtils.isNotEmpty(antExChuModel.getPlacentas())) { - String heartRateVal = "", fetalPositionVal = "", fetalPresentationVal = "", joinVal = ""; - for (int j = 0; j < antExChuModel.getPlacentas().size(); j++) { - LinkedHashMap map = (LinkedHashMap) antExChuModel.getPlacentas().get(j); - if (null != map) { - //胎先露、胎方位、胎心率和衔接 - String heartRate = String.valueOf(map.get("heartRate")); - String fetalPosition = String.valueOf(map.get("fetalPosition")); - String fetalPresentation = String.valueOf(map.get("fetalPresentation")); - String join = String.valueOf(map.get("join")); - if (!"null".equals(heartRate) && StringUtils.isNotEmpty(heartRate)) { - heartRateVal += heartRate + "次/分" + ","; - } - if (!"null".equals(fetalPosition) && StringUtils.isNotEmpty(fetalPosition)) { - fetalPositionVal += FetalPositionEnums.getTitle(fetalPosition) + ","; - } - if (!"null".equals(fetalPresentation) && StringUtils.isNotEmpty(fetalPresentation)) { - fetalPresentationVal += FetalEnums.getTitle(fetalPresentation) + ","; - } - if (!"null".equals(join) && StringUtils.isNotEmpty(join)) { - joinVal += JoinEnums.getTitle(join) + ","; - } + java.util.Map dataMap1 = new HashMap<>(); + dataMap1.put("k", key); + dataMap1.put("v", sb.toString()); + list.add(dataMap1); + } + continue; + } else if ("胎盘".equals(key)) { + if (CollectionUtils.isNotEmpty(antExChuModel.getPlacentas())) { + String heartRateVal = "", fetalPositionVal = "", fetalPresentationVal = "", joinVal = ""; + for (int j = 0; j < antExChuModel.getPlacentas().size(); j++) { + LinkedHashMap map = (LinkedHashMap) antExChuModel.getPlacentas().get(j); + if (null != map) { + //胎先露、胎方位、胎心率和衔接 + String heartRate = String.valueOf(map.get("heartRate")); + String fetalPosition = String.valueOf(map.get("fetalPosition")); + String fetalPresentation = String.valueOf(map.get("fetalPresentation")); + String join = String.valueOf(map.get("join")); + if (!"null".equals(heartRate) && StringUtils.isNotEmpty(heartRate)) { + heartRateVal += heartRate + "次/分" + ","; + } + if (!"null".equals(fetalPosition) && StringUtils.isNotEmpty(fetalPosition)) { + fetalPositionVal += FetalPositionEnums.getTitle(fetalPosition) + ","; + } + if (!"null".equals(fetalPresentation) && StringUtils.isNotEmpty(fetalPresentation)) { + fetalPresentationVal += FetalEnums.getTitle(fetalPresentation) + ","; + } + if (!"null".equals(join) && StringUtils.isNotEmpty(join)) { + joinVal += JoinEnums.getTitle(join) + ","; } } - if (heartRateVal.endsWith(",")) { - heartRateVal = heartRateVal.substring(0, heartRateVal.length() - 1); - } - if (fetalPositionVal.endsWith(",")) { - fetalPositionVal = fetalPositionVal.substring(0, fetalPositionVal.length() - 1); - } - if (fetalPresentationVal.endsWith(",")) { - fetalPresentationVal = fetalPresentationVal.substring(0, fetalPresentationVal.length() - 1); - } - if (joinVal.endsWith(",")) { - joinVal = joinVal.substring(0, joinVal.length() - 1); - } + } + if (heartRateVal.endsWith(",")) { + heartRateVal = heartRateVal.substring(0, heartRateVal.length() - 1); + } + if (fetalPositionVal.endsWith(",")) { + fetalPositionVal = fetalPositionVal.substring(0, fetalPositionVal.length() - 1); + } + if (fetalPresentationVal.endsWith(",")) { + fetalPresentationVal = fetalPresentationVal.substring(0, fetalPresentationVal.length() - 1); + } + if (joinVal.endsWith(",")) { + joinVal = joinVal.substring(0, joinVal.length() - 1); + } - //胎心率 - if (StringUtils.isNotEmpty(heartRateVal)) { - java.util.Map dataMap1 = new HashMap<>(); - dataMap1.put("k", "胎心率"); - dataMap1.put("v", heartRateVal); - list.add(dataMap1); - } - //胎心率 - if (StringUtils.isNotEmpty(fetalPositionVal)) { - java.util.Map dataMap2 = new HashMap<>(); - dataMap2.put("k", "胎方位"); - dataMap2.put("v", fetalPositionVal); - list.add(dataMap2); - } + //胎心率 + if (StringUtils.isNotEmpty(heartRateVal)) { + java.util.Map dataMap1 = new HashMap<>(); + dataMap1.put("k", "胎心率"); + dataMap1.put("v", heartRateVal); + list.add(dataMap1); + } + //胎心率 + if (StringUtils.isNotEmpty(fetalPositionVal)) { + java.util.Map dataMap2 = new HashMap<>(); + dataMap2.put("k", "胎方位"); + dataMap2.put("v", fetalPositionVal); + list.add(dataMap2); + } - //胎先露 - if (StringUtils.isNotEmpty(fetalPresentationVal)) { - java.util.Map dataMap3 = new HashMap<>(); - dataMap3.put("k", "胎先露"); - dataMap3.put("v", fetalPresentationVal); - list.add(dataMap3); - } - if (StringUtils.isNotEmpty(joinVal)) { - java.util.Map dataMap4 = new HashMap<>(); - dataMap4.put("k", "衔接"); - dataMap4.put("v", joinVal); - list.add(dataMap4); - } + //胎先露 + if (StringUtils.isNotEmpty(fetalPresentationVal)) { + java.util.Map dataMap3 = new HashMap<>(); + dataMap3.put("k", "胎先露"); + dataMap3.put("v", fetalPresentationVal); + list.add(dataMap3); + } + if (StringUtils.isNotEmpty(joinVal)) { + java.util.Map dataMap4 = new HashMap<>(); + dataMap4.put("k", "衔接"); + dataMap4.put("v", joinVal); + list.add(dataMap4); } - continue; } + continue; + } dataMap.put("k", key); if ("产检医生".equals(key)) { obj = doctorUserName; @@ -882,6 +1217,14 @@ public class ConvertHelper { return JsonUtil.array2JsonString(list); } + /** + * 复诊:转换json + * + * @param antExChuModel + * @param hrMap + * @param doctorUserName + * @return + */ private static String convertAntExResult(AntenatalExaminationModel antExChuModel, Map hrMap, String doctorUserName) { List list = new ArrayList(); @@ -899,7 +1242,6 @@ public class ConvertHelper { } catch (Exception e) { } if (null != map) { - String ssy = null; String szy = null; Object obj1 = map.get("ssy"); @@ -1117,7 +1459,7 @@ public class ConvertHelper { antExChuModel.setYsfyHistory("{\"yesOrNo\":\"yes\",\"yzq3\":true}"); antExChuModel.setBp("{\"ssy\":70,\"szy\":120}"); antExChuModel.setFuwei("11"); - System.out.println(convertAntExChu(antExChuModel, null, null, "").getResult()); + // System.out.println(convertAntEx(antExChuModel, null, null, "").getResult()); AntenatalExaminationModel antenatalExaminationModel = new AntenatalExaminationModel(); @@ -1130,7 +1472,7 @@ public class ConvertHelper { list.add(placenta); antenatalExaminationModel.setTireData(list); - System.out.print(convertAntExChu(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 43df2a9..fd41a35 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 @@ -55,6 +55,8 @@ public class SyncDataWork { * 孕妇建档 */ private YunBookbuildingService yunBookbuildingService; + @Autowired + private BasicConfigService basicConfigService; /** * 工作线程池 */ @@ -86,8 +88,6 @@ public class SyncDataWork { @Autowired private RegionsService mamiregionsService; @Autowired - private BasicConfigService basicConfigService; - @Autowired private DoctorUsersService doctorUsersService; @Autowired private ReportsService reportsService; @@ -613,7 +613,7 @@ public class SyncDataWork { } } - Reports reports = ConvertHelper.convertAntExChu(antExChuModel1, patients.getLastMenses(), + Reports reports = ConvertHelper.convertAntEx(antExChuModel1, patients.getLastMenses(),basicConfigService, bgHighRisk, doctorUserName); logger.info("query handleDoctorMemeber" + patients.getId() + ". antex chu:" + antExChuModel1.getId()); handleDoctorMemeber(reports, antExChuModel1.getProdDoctor(), mamiPatient, patients, stopWatch3); @@ -716,7 +716,7 @@ public class SyncDataWork { //处理复诊高危 handRiskFu(ant, mamiPatient.getId()); - Reports reports = ConvertHelper.convertAntExChu(ant, patients.getLastMenses(), + Reports reports = ConvertHelper.convertAntExFu(ant, patients.getLastMenses(), bgHighRisk, doctorUserName); logger.info("handleDoctorMemeber antex" + patients.getId() + ". antex id:" + ant.getId()); diff --git a/platform-job-index/src/main/resources/conf.properties b/platform-job-index/src/main/resources/conf.properties index 185818b..1b2f433 100644 --- a/platform-job-index/src/main/resources/conf.properties +++ b/platform-job-index/src/main/resources/conf.properties @@ -57,4 +57,4 @@ report.db.jdbcurl=jdbc:oracle:thin:@192.168.1.32:1521:orcl report.db.username=LYMS_ODS report.db.password=Welcome1 -file.path=c://data/lastsynctime.txt \ No newline at end of file +file.path=C:/datadata/lastsynctime.txt \ No newline at end of file diff --git a/platform-job-index/src/main/resources/lable.properties b/platform-job-index/src/main/resources/lable.properties index f95f36e..cc6443d 100644 --- a/platform-job-index/src/main/resources/lable.properties +++ b/platform-job-index/src/main/resources/lable.properties @@ -50,4 +50,35 @@ treatmentOpinion=处理意见 guide=指导 checkDoctor=产检医生 highrisk=高危因素 -riskFactor=高危因素 \ No newline at end of file +riskFactor=高危因素 +heartRateVal=胎心 +fetalPositionVal=胎位 +fetalPresentationVal=先露 +xhdb=血红蛋白 +bxbjs=白细胞 +platelet=血小板 +chgOther=血常规其他 +ndb=尿蛋白 +nt=尿糖 +urineKetone=尿同体 +bld=尿潜血 +ncgOther=尿常规其他 +xqgbzam=血清谷丙转氨酶 +xqgczam=血清谷草转氨酶 +albumin=白蛋白 +totalBilirubin=总胆红素 +jhBilirubin=结合胆红素 +bg=丙肝 +ygbmky=乙肝表面抗原 +ygbmkt=乙肝表面抗体 +ygeky=乙肝e抗原 +ygekt=乙肝e抗体 +yghxkt=乙肝核心抗体 +xqjq=血清肌 +xnsd=血尿素氮 +syjg=梅毒实验结果 +hivkt=HIV抗体检测 +tzzs=孕前BMI +treatOpinion=处理 +prodDoctorStr=医生 + diff --git a/platform-job-index/src/main/webapp/WEB-INF/lib/mainData.jar b/platform-job-index/src/main/webapp/WEB-INF/lib/mainData.jar index 3f7259a66b01be00172023c04eac70d594549987..0b1073d0dfe4583f03789969cc84c3585c24cc89 100644 GIT binary patch delta 25865 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 diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/RiskReportFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/RiskReportFacade.java index e8f3703..7944fb2 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/RiskReportFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/RiskReportFacade.java @@ -88,6 +88,16 @@ public class RiskReportFacade { String hospitalId = autoMatchFacade.getHospitalId(userId); PatientsQuery patientsQuery = new PatientsQuery(); patientsQuery.setYn(YnEnums.YES.getId()); + //最后一次检查时间 + if (StringUtils.isNotEmpty(riskPatientsQueryRequest.getLastCTime())) { + String nextDateStr = riskPatientsQueryRequest.getLastCTime(); + String[] dates = nextDateStr.split(" - "); + + patientsQuery.setLastCTimeStart(DateUtil.parseYMD(dates[0])); + if (dates.length == 2) { + patientsQuery.setLastCTimeEnd(DateUtil.parseYMD(dates[1])); + } + } List buildType = new ArrayList(); buildType.add(0);