From 39bdd884adef5a436d94f2bd3a2918715d26becb Mon Sep 17 00:00:00 2001 From: shiyang <316555390@qq.com> Date: Sat, 19 Feb 2022 17:49:31 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=93=E6=9E=9C=E5=BB=BA=E8=AE=AE-=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E9=A1=B9=E5=8F=8A=E5=BC=82=E5=B8=B8=E6=8E=A8=E8=8D=90?= =?UTF-8?q?-=E5=BE=85=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lyms/platform/pojo/PreEugenicsBaseModel.java | 22 +++ .../web/controller/PreEugenicsBaseController.java | 14 ++ .../operate/web/service/IPreEugenicsService.java | 2 + .../web/service/impl/PreEugebicsServiceImpl.java | 177 +++++++++++++++------ 4 files changed, 168 insertions(+), 47 deletions(-) diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/PreEugenicsBaseModel.java b/platform-dal/src/main/java/com/lyms/platform/pojo/PreEugenicsBaseModel.java index 1770ca1..90854d6 100644 --- a/platform-dal/src/main/java/com/lyms/platform/pojo/PreEugenicsBaseModel.java +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/PreEugenicsBaseModel.java @@ -446,6 +446,28 @@ public class PreEugenicsBaseModel extends BaseModel { //隆化-男女临床检查项目填写是否完整 0:不完整 1:完整 private Integer clinicalCheckYn; + //隆化-结果建议,评估异常项 + List abnormity; + + //隆化-结果建议,异常项建议 + List abnormityProposal; + + public List getAbnormity() { + return abnormity; + } + + public void setAbnormity(List abnormity) { + this.abnormity = abnormity; + } + + public List getAbnormityProposal() { + return abnormityProposal; + } + + public void setAbnormityProposal(List abnormityProposal) { + this.abnormityProposal = abnormityProposal; + } + public Integer getClinicalCheckYn() { return clinicalCheckYn; } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PreEugenicsBaseController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PreEugenicsBaseController.java index d98bec9..74cd038 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PreEugenicsBaseController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PreEugenicsBaseController.java @@ -336,4 +336,18 @@ public class PreEugenicsBaseController extends BaseController { public BaseResponse pastPreeugenicsBaseAdd() { return iPreEugenicsService.pastPreeugenicsBaseAdd(); } + + /** + * 结果建议-异常项及异常推荐 + * + * @param id + * @Author: sy + * @Date: 2022/2/19 + */ + @RequestMapping(method = RequestMethod.GET, value = "/getAbnormityProposal") + @ResponseBody + @TokenRequired + public BaseObjectResponse getAbnormityProposal(String id) { + return iPreEugenicsService.getAbnormityProposal(id); + } } \ No newline at end of file diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IPreEugenicsService.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IPreEugenicsService.java index fef8a30..46991b1 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IPreEugenicsService.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IPreEugenicsService.java @@ -39,4 +39,6 @@ public interface IPreEugenicsService extends IFormReportService preEugenicsBaseModels = mongoTemplate.find(query, PreEugenicsBaseModel.class); - - for (PreEugenicsBaseModel model : preEugenicsBaseModels) { -// if(model.getId().equals("61b17d47500c783ccdf941d1")){ - PreEugenicsBaseRequest result = new PreEugenicsBaseRequest(); - result.setWifeClinicalCheck(model.getWifeClinicalCheck()); - result.setHusbandClinicalCheck(model.getHusbandClinicalCheck()); - Object a=new ObjectId(); - Query query2 = Query.query(Criteria.where("id").is(model.getId())); - //隆化-男女临床检查项目填写是否完整 0:不完整 1:完整 - model.setClinicalCheckYn(clinicalCheckYnEdit(result)); - Update update = MongoConvertHelper - .convertToNativeUpdate(ReflectionUtils.getUpdateField(model)); - mongoTemplate.updateFirst(query2, update, PreEugenicsBaseModel.class); + if (CollectionUtils.isNotEmpty(preEugenicsBaseModels)) { + int batchSize = 20; + int end = 0; + List listFuture = new ArrayList <>(); + for (int i = 0; i < preEugenicsBaseModels.size(); i += batchSize) { + end = (end + batchSize); + if (end > preEugenicsBaseModels.size()) { + end = preEugenicsBaseModels.size(); + } + final List risks = preEugenicsBaseModels.subList(i, end); + listFuture.add(commonThreadPool.submit(new Callable() { + @Override + public Object call() throws Exception { + if (CollectionUtils.isNotEmpty(risks)) { + for (PreEugenicsBaseModel model : risks) { + PreEugenicsBaseRequest result = new PreEugenicsBaseRequest(); + result.setWifeClinicalCheck(model.getWifeClinicalCheck()); + result.setHusbandClinicalCheck(model.getHusbandClinicalCheck()); + Query query = Query.query(Criteria.where("id").is(model.getId())); + try { + //隆化-男女临床检查项目填写是否完整 0:不完整 1:完整 + model.setClinicalCheckYn(clinicalCheckYnEdit(result)); + Update update = MongoConvertHelper + .convertToNativeUpdate(ReflectionUtils.getUpdateField(model)); + mongoTemplate.updateFirst(query, update, PreEugenicsBaseModel.class); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + return null; + } + })); } -// } - -// if (CollectionUtils.isNotEmpty(preEugenicsBaseModels)) { -// int batchSize = 20; -// int end = 0; -// List listFuture = new ArrayList <>(); -// for (int i = 0; i < preEugenicsBaseModels.size(); i += batchSize) { -// end = (end + batchSize); -// if (end > preEugenicsBaseModels.size()) { -// end = preEugenicsBaseModels.size(); -// } -// final List risks = preEugenicsBaseModels.subList(i, end); -// listFuture.add(commonThreadPool.submit(new Callable() { -// @Override -// public Object call() throws Exception { -// if (CollectionUtils.isNotEmpty(risks)) { -// for (PreEugenicsBaseModel model : risks) { -// PreEugenicsBaseRequest result = new PreEugenicsBaseRequest(); -// result.setWifeClinicalCheck(model.getWifeClinicalCheck()); -// result.setHusbandClinicalCheck(model.getHusbandClinicalCheck()); -// Query query = Query.query(Criteria.where("id").is(model.getId())); -// //隆化-男女临床检查项目填写是否完整 0:不完整 1:完整 -// model.setClinicalCheckYn(clinicalCheckYnEdit(result)); -// Update update = MongoConvertHelper -// .convertToNativeUpdate(ReflectionUtils.getUpdateField(model)); -// mongoTemplate.updateFirst(query, update, PreEugenicsBaseModel.class); -// } -// } -// return null; -// } -// })); -// } -// -// } + + } return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功"); } + @Override + public BaseObjectResponse getAbnormityProposal(String id) { + PreEugenicsBaseModel model = mongoTemplate.findOne(Query.query(Criteria.where("id").is(id)), PreEugenicsBaseModel.class); + Map> map = getAbnormityRoProposal(model); + if(MapUtils.isNotEmpty(map)){ + model.setAbnormity(map.get("abnormity")); + model.setAbnormityProposal(map.get("abnormityProposal")); + Query query = Query.query(Criteria.where("id").is(model.getId())); + Update update = MongoConvertHelper + .convertToNativeUpdate(ReflectionUtils.getUpdateField(model)); + mongoTemplate.updateFirst(query, update, PreEugenicsBaseModel.class); + } + return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setData(map); + } + //结果建议-异常处理数据 + public Map> getAbnormityRoProposal(PreEugenicsBaseModel model){ + Map> map=new HashMap(); + List abnormityList=new ArrayList<>(); + List abnormityProposal=new ArrayList<>(); + /** 女*/ + //女方体格检查 + if(MapUtils.isNotEmpty(model.getWifePhysiqueCheck())){ + //女方bmi(身高体重) + String bmi=null!=model.getWifePhysiqueCheck().get("bmi")?model.getWifePhysiqueCheck().get("bmi").toString():null; + if(StringUtils.isNotEmpty(bmi)){ + if(Double.parseDouble(bmi)>25||Double.parseDouble(bmi)<19){ + abnormityList.add("体重指数:女方: "+bmi); + abnormityProposal.add("体重超重或肥胖对女性内分泌系统、胎儿发育、分娩过程等会产生不良影响," + + "建议合理饮食,将控制体重在正常范围内。"); + } + } + //女方血压 + int gaoya=null!=model.getWifePhysiqueCheck().get("ssy")?(int)model.getWifePhysiqueCheck().get("ssy"):0;//高压 + int diya=null!=model.getWifePhysiqueCheck().get("szy")?(int)model.getWifePhysiqueCheck().get("szy"):0;//低压 + if(0!=gaoya&&0!=diya){ + if(gaoya>140||diya>90||gaoya<90||diya<50){ + abnormityList.add("血压偏高/偏低:女方: "+gaoya+"/"+diya+"mmHg"); + abnormityProposal.add("慢性高血压是妊娠的高危因素,应请内科会诊,全面检查,明确疾病程度、是否有合并症,评价是否适宜妊娠。" + + "适宜 妊娠者要积极治疗,待血压控制稳定后在医生的指导下怀孕。有严重合并症 、血压控制不好者不宜怀孕。"); + } + } + } + //女方,高龄 + String age=model.getWifeAge(); + if(StringUtils.isNotEmpty(age) && Integer.parseInt(age)>35){ + abnormityList.add("高龄:女方: "+age); + abnormityProposal.add("妊娠16-23周应进行产前诊断(细胞遗传学诊断)"); + } + //女方临床检查 + if(MapUtils.isNotEmpty(model.getWifeClinicalCheck())){ + //血细胞分析(女方淋巴细胞比例偏高 L ,女方血小板偏高 PLT ) + List xxbfx= null!=model.getWifePhysiqueCheck().get("xxbfx")? (List) model.getWifePhysiqueCheck().get("xxbfx") :null; + if(CollectionUtils.isNotEmpty(xxbfx) && xxbfx.size()>=5 + && StringUtils.isNotEmpty(xxbfx.get(5).toString()) + && StringUtils.isNotEmpty(xxbfx.get(2).toString())){ + int l=Integer.parseInt(xxbfx.get(5)); + int plt=Integer.parseInt(xxbfx.get(2)); + if(l<20 || l>40){ + abnormityList.add("淋巴细胞比例偏高/偏低 L:女方: "+l); + abnormityProposal.add("常见于传染性单核细胞增多症,淋巴细胞性白血病,结核等。明确诊断后再考虑怀孕。"); + } + if(plt<100 || plt>300){ + abnormityList.add("血小板偏高/偏低 PLT:女方: "+plt); + abnormityProposal.add("常见于原发性增多:慢性粒细胞性白血病,真性红细胞增多症,原发性血小板增多症等," + + "反应性增多:急性感染,急性溶血等。明确诊断后并及时治疗,根据病情评估是否适宜怀孕。"); + } + } + //女方肌酐偏低 + String jigan=null!=model.getWifePhysiqueCheck().get("jigan")?model.getWifePhysiqueCheck().get("jigan").toString():null; + if(StringUtils.isNotEmpty(jigan)){ + int jg=Integer.parseInt(jigan); + if(jg<41||jg>73){ + abnormityList.add("肌酐偏高/偏低 PLT:女方: "+jg); + abnormityProposal.add("建议复查,请肾科明确诊断。"); + } + } + //女方乙肝 + //女转氨酶升高 + //女方梅毒螺旋体阳性 + //女方巨细胞(IGM)阳性 + //女方贫 贫血范围HB + //女方促甲状腺激素偏高 + //女方促甲状腺激素偏低 + //女方血糖偏高 + //女方妇科B超检查异常 + } + + + + + + map.put("abnormity",abnormityList); + map.put("abnormityProposal",abnormityProposal); + return map; + } public static final String AREA_URL = PropertiesUtils.getPropertyValue("area_url"); } -- 1.8.3.1