Commit 39bdd884adef5a436d94f2bd3a2918715d26becb
1 parent
43ae49c0da
Exists in
master
and in
6 other branches
结果建议-异常项及异常推荐-待完成
Showing 4 changed files with 168 additions and 47 deletions
- platform-dal/src/main/java/com/lyms/platform/pojo/PreEugenicsBaseModel.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PreEugenicsBaseController.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IPreEugenicsService.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PreEugebicsServiceImpl.java
platform-dal/src/main/java/com/lyms/platform/pojo/PreEugenicsBaseModel.java
View file @
39bdd88
| ... | ... | @@ -446,6 +446,28 @@ |
| 446 | 446 | //隆化-男女临床检查项目填写是否完整 0:不完整 1:完整 |
| 447 | 447 | private Integer clinicalCheckYn; |
| 448 | 448 | |
| 449 | + //隆化-结果建议,评估异常项 | |
| 450 | + List<String> abnormity; | |
| 451 | + | |
| 452 | + //隆化-结果建议,异常项建议 | |
| 453 | + List<String> abnormityProposal; | |
| 454 | + | |
| 455 | + public List<String> getAbnormity() { | |
| 456 | + return abnormity; | |
| 457 | + } | |
| 458 | + | |
| 459 | + public void setAbnormity(List<String> abnormity) { | |
| 460 | + this.abnormity = abnormity; | |
| 461 | + } | |
| 462 | + | |
| 463 | + public List<String> getAbnormityProposal() { | |
| 464 | + return abnormityProposal; | |
| 465 | + } | |
| 466 | + | |
| 467 | + public void setAbnormityProposal(List<String> abnormityProposal) { | |
| 468 | + this.abnormityProposal = abnormityProposal; | |
| 469 | + } | |
| 470 | + | |
| 449 | 471 | public Integer getClinicalCheckYn() { |
| 450 | 472 | return clinicalCheckYn; |
| 451 | 473 | } |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PreEugenicsBaseController.java
View file @
39bdd88
| ... | ... | @@ -336,5 +336,19 @@ |
| 336 | 336 | public BaseResponse pastPreeugenicsBaseAdd() { |
| 337 | 337 | return iPreEugenicsService.pastPreeugenicsBaseAdd(); |
| 338 | 338 | } |
| 339 | + | |
| 340 | + /** | |
| 341 | + * 结果建议-异常项及异常推荐 | |
| 342 | + * | |
| 343 | + * @param id | |
| 344 | + * @Author: sy | |
| 345 | + * @Date: 2022/2/19 | |
| 346 | + */ | |
| 347 | + @RequestMapping(method = RequestMethod.GET, value = "/getAbnormityProposal") | |
| 348 | + @ResponseBody | |
| 349 | + @TokenRequired | |
| 350 | + public BaseObjectResponse getAbnormityProposal(String id) { | |
| 351 | + return iPreEugenicsService.getAbnormityProposal(id); | |
| 352 | + } | |
| 339 | 353 | } |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IPreEugenicsService.java
View file @
39bdd88
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PreEugebicsServiceImpl.java
View file @
39bdd88
| ... | ... | @@ -1418,57 +1418,140 @@ |
| 1418 | 1418 | Query query=new Query(); |
| 1419 | 1419 | query.addCriteria(Criteria.where("hospitalId").is("2100001605")); |
| 1420 | 1420 | List <PreEugenicsBaseModel> preEugenicsBaseModels = mongoTemplate.find(query, PreEugenicsBaseModel.class); |
| 1421 | - | |
| 1422 | - for (PreEugenicsBaseModel model : preEugenicsBaseModels) { | |
| 1423 | -// if(model.getId().equals("61b17d47500c783ccdf941d1")){ | |
| 1424 | - PreEugenicsBaseRequest result = new PreEugenicsBaseRequest(); | |
| 1425 | - result.setWifeClinicalCheck(model.getWifeClinicalCheck()); | |
| 1426 | - result.setHusbandClinicalCheck(model.getHusbandClinicalCheck()); | |
| 1427 | - Object a=new ObjectId(); | |
| 1428 | - Query query2 = Query.query(Criteria.where("id").is(model.getId())); | |
| 1429 | - //隆化-男女临床检查项目填写是否完整 0:不完整 1:完整 | |
| 1430 | - model.setClinicalCheckYn(clinicalCheckYnEdit(result)); | |
| 1431 | - Update update = MongoConvertHelper | |
| 1432 | - .convertToNativeUpdate(ReflectionUtils.getUpdateField(model)); | |
| 1433 | - mongoTemplate.updateFirst(query2, update, PreEugenicsBaseModel.class); | |
| 1421 | + if (CollectionUtils.isNotEmpty(preEugenicsBaseModels)) { | |
| 1422 | + int batchSize = 20; | |
| 1423 | + int end = 0; | |
| 1424 | + List <Future> listFuture = new ArrayList <>(); | |
| 1425 | + for (int i = 0; i < preEugenicsBaseModels.size(); i += batchSize) { | |
| 1426 | + end = (end + batchSize); | |
| 1427 | + if (end > preEugenicsBaseModels.size()) { | |
| 1428 | + end = preEugenicsBaseModels.size(); | |
| 1429 | + } | |
| 1430 | + final List<PreEugenicsBaseModel> risks = preEugenicsBaseModels.subList(i, end); | |
| 1431 | + listFuture.add(commonThreadPool.submit(new Callable() { | |
| 1432 | + @Override | |
| 1433 | + public Object call() throws Exception { | |
| 1434 | + if (CollectionUtils.isNotEmpty(risks)) { | |
| 1435 | + for (PreEugenicsBaseModel model : risks) { | |
| 1436 | + PreEugenicsBaseRequest result = new PreEugenicsBaseRequest(); | |
| 1437 | + result.setWifeClinicalCheck(model.getWifeClinicalCheck()); | |
| 1438 | + result.setHusbandClinicalCheck(model.getHusbandClinicalCheck()); | |
| 1439 | + Query query = Query.query(Criteria.where("id").is(model.getId())); | |
| 1440 | + try { | |
| 1441 | + //隆化-男女临床检查项目填写是否完整 0:不完整 1:完整 | |
| 1442 | + model.setClinicalCheckYn(clinicalCheckYnEdit(result)); | |
| 1443 | + Update update = MongoConvertHelper | |
| 1444 | + .convertToNativeUpdate(ReflectionUtils.getUpdateField(model)); | |
| 1445 | + mongoTemplate.updateFirst(query, update, PreEugenicsBaseModel.class); | |
| 1446 | + } catch (Exception e) { | |
| 1447 | + e.printStackTrace(); | |
| 1448 | + } | |
| 1449 | + } | |
| 1450 | + } | |
| 1451 | + return null; | |
| 1452 | + } | |
| 1453 | + })); | |
| 1434 | 1454 | } |
| 1435 | -// } | |
| 1436 | 1455 | |
| 1437 | -// if (CollectionUtils.isNotEmpty(preEugenicsBaseModels)) { | |
| 1438 | -// int batchSize = 20; | |
| 1439 | -// int end = 0; | |
| 1440 | -// List <Future> listFuture = new ArrayList <>(); | |
| 1441 | -// for (int i = 0; i < preEugenicsBaseModels.size(); i += batchSize) { | |
| 1442 | -// end = (end + batchSize); | |
| 1443 | -// if (end > preEugenicsBaseModels.size()) { | |
| 1444 | -// end = preEugenicsBaseModels.size(); | |
| 1445 | -// } | |
| 1446 | -// final List<PreEugenicsBaseModel> risks = preEugenicsBaseModels.subList(i, end); | |
| 1447 | -// listFuture.add(commonThreadPool.submit(new Callable() { | |
| 1448 | -// @Override | |
| 1449 | -// public Object call() throws Exception { | |
| 1450 | -// if (CollectionUtils.isNotEmpty(risks)) { | |
| 1451 | -// for (PreEugenicsBaseModel model : risks) { | |
| 1452 | -// PreEugenicsBaseRequest result = new PreEugenicsBaseRequest(); | |
| 1453 | -// result.setWifeClinicalCheck(model.getWifeClinicalCheck()); | |
| 1454 | -// result.setHusbandClinicalCheck(model.getHusbandClinicalCheck()); | |
| 1455 | -// Query query = Query.query(Criteria.where("id").is(model.getId())); | |
| 1456 | -// //隆化-男女临床检查项目填写是否完整 0:不完整 1:完整 | |
| 1457 | -// model.setClinicalCheckYn(clinicalCheckYnEdit(result)); | |
| 1458 | -// Update update = MongoConvertHelper | |
| 1459 | -// .convertToNativeUpdate(ReflectionUtils.getUpdateField(model)); | |
| 1460 | -// mongoTemplate.updateFirst(query, update, PreEugenicsBaseModel.class); | |
| 1461 | -// } | |
| 1462 | -// } | |
| 1463 | -// return null; | |
| 1464 | -// } | |
| 1465 | -// })); | |
| 1466 | -// } | |
| 1467 | -// | |
| 1468 | -// } | |
| 1456 | + } | |
| 1469 | 1457 | return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功"); |
| 1470 | 1458 | } |
| 1471 | 1459 | |
| 1460 | + @Override | |
| 1461 | + public BaseObjectResponse getAbnormityProposal(String id) { | |
| 1462 | + PreEugenicsBaseModel model = mongoTemplate.findOne(Query.query(Criteria.where("id").is(id)), PreEugenicsBaseModel.class); | |
| 1463 | + Map<String,List<String>> map = getAbnormityRoProposal(model); | |
| 1464 | + if(MapUtils.isNotEmpty(map)){ | |
| 1465 | + model.setAbnormity(map.get("abnormity")); | |
| 1466 | + model.setAbnormityProposal(map.get("abnormityProposal")); | |
| 1467 | + Query query = Query.query(Criteria.where("id").is(model.getId())); | |
| 1468 | + Update update = MongoConvertHelper | |
| 1469 | + .convertToNativeUpdate(ReflectionUtils.getUpdateField(model)); | |
| 1470 | + mongoTemplate.updateFirst(query, update, PreEugenicsBaseModel.class); | |
| 1471 | + } | |
| 1472 | + return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setData(map); | |
| 1473 | + } | |
| 1474 | + //结果建议-异常处理数据 | |
| 1475 | + public Map<String,List<String>> getAbnormityRoProposal(PreEugenicsBaseModel model){ | |
| 1476 | + Map<String,List<String>> map=new HashMap(); | |
| 1477 | + List<String> abnormityList=new ArrayList<>(); | |
| 1478 | + List<String> abnormityProposal=new ArrayList<>(); | |
| 1479 | + /** 女*/ | |
| 1480 | + //女方体格检查 | |
| 1481 | + if(MapUtils.isNotEmpty(model.getWifePhysiqueCheck())){ | |
| 1482 | + //女方bmi(身高体重) | |
| 1483 | + String bmi=null!=model.getWifePhysiqueCheck().get("bmi")?model.getWifePhysiqueCheck().get("bmi").toString():null; | |
| 1484 | + if(StringUtils.isNotEmpty(bmi)){ | |
| 1485 | + if(Double.parseDouble(bmi)>25||Double.parseDouble(bmi)<19){ | |
| 1486 | + abnormityList.add("体重指数:女方: "+bmi); | |
| 1487 | + abnormityProposal.add("体重超重或肥胖对女性内分泌系统、胎儿发育、分娩过程等会产生不良影响," + | |
| 1488 | + "建议合理饮食,将控制体重在正常范围内。"); | |
| 1489 | + } | |
| 1490 | + } | |
| 1491 | + //女方血压 | |
| 1492 | + int gaoya=null!=model.getWifePhysiqueCheck().get("ssy")?(int)model.getWifePhysiqueCheck().get("ssy"):0;//高压 | |
| 1493 | + int diya=null!=model.getWifePhysiqueCheck().get("szy")?(int)model.getWifePhysiqueCheck().get("szy"):0;//低压 | |
| 1494 | + if(0!=gaoya&&0!=diya){ | |
| 1495 | + if(gaoya>140||diya>90||gaoya<90||diya<50){ | |
| 1496 | + abnormityList.add("血压偏高/偏低:女方: "+gaoya+"/"+diya+"mmHg"); | |
| 1497 | + abnormityProposal.add("慢性高血压是妊娠的高危因素,应请内科会诊,全面检查,明确疾病程度、是否有合并症,评价是否适宜妊娠。" + | |
| 1498 | + "适宜 妊娠者要积极治疗,待血压控制稳定后在医生的指导下怀孕。有严重合并症 、血压控制不好者不宜怀孕。"); | |
| 1499 | + } | |
| 1500 | + } | |
| 1501 | + } | |
| 1502 | + //女方,高龄 | |
| 1503 | + String age=model.getWifeAge(); | |
| 1504 | + if(StringUtils.isNotEmpty(age) && Integer.parseInt(age)>35){ | |
| 1505 | + abnormityList.add("高龄:女方: "+age); | |
| 1506 | + abnormityProposal.add("妊娠16-23周应进行产前诊断(细胞遗传学诊断)"); | |
| 1507 | + } | |
| 1508 | + //女方临床检查 | |
| 1509 | + if(MapUtils.isNotEmpty(model.getWifeClinicalCheck())){ | |
| 1510 | + //血细胞分析(女方淋巴细胞比例偏高 L ,女方血小板偏高 PLT ) | |
| 1511 | + List<String> xxbfx= null!=model.getWifePhysiqueCheck().get("xxbfx")? (List<String>) model.getWifePhysiqueCheck().get("xxbfx") :null; | |
| 1512 | + if(CollectionUtils.isNotEmpty(xxbfx) && xxbfx.size()>=5 | |
| 1513 | + && StringUtils.isNotEmpty(xxbfx.get(5).toString()) | |
| 1514 | + && StringUtils.isNotEmpty(xxbfx.get(2).toString())){ | |
| 1515 | + int l=Integer.parseInt(xxbfx.get(5)); | |
| 1516 | + int plt=Integer.parseInt(xxbfx.get(2)); | |
| 1517 | + if(l<20 || l>40){ | |
| 1518 | + abnormityList.add("淋巴细胞比例偏高/偏低 L:女方: "+l); | |
| 1519 | + abnormityProposal.add("常见于传染性单核细胞增多症,淋巴细胞性白血病,结核等。明确诊断后再考虑怀孕。"); | |
| 1520 | + } | |
| 1521 | + if(plt<100 || plt>300){ | |
| 1522 | + abnormityList.add("血小板偏高/偏低 PLT:女方: "+plt); | |
| 1523 | + abnormityProposal.add("常见于原发性增多:慢性粒细胞性白血病,真性红细胞增多症,原发性血小板增多症等," + | |
| 1524 | + "反应性增多:急性感染,急性溶血等。明确诊断后并及时治疗,根据病情评估是否适宜怀孕。"); | |
| 1525 | + } | |
| 1526 | + } | |
| 1527 | + //女方肌酐偏低 | |
| 1528 | + String jigan=null!=model.getWifePhysiqueCheck().get("jigan")?model.getWifePhysiqueCheck().get("jigan").toString():null; | |
| 1529 | + if(StringUtils.isNotEmpty(jigan)){ | |
| 1530 | + int jg=Integer.parseInt(jigan); | |
| 1531 | + if(jg<41||jg>73){ | |
| 1532 | + abnormityList.add("肌酐偏高/偏低 PLT:女方: "+jg); | |
| 1533 | + abnormityProposal.add("建议复查,请肾科明确诊断。"); | |
| 1534 | + } | |
| 1535 | + } | |
| 1536 | + //女方乙肝 | |
| 1537 | + //女转氨酶升高 | |
| 1538 | + //女方梅毒螺旋体阳性 | |
| 1539 | + //女方巨细胞(IGM)阳性 | |
| 1540 | + //女方贫 贫血范围HB | |
| 1541 | + //女方促甲状腺激素偏高 | |
| 1542 | + //女方促甲状腺激素偏低 | |
| 1543 | + //女方血糖偏高 | |
| 1544 | + //女方妇科B超检查异常 | |
| 1545 | + } | |
| 1546 | + | |
| 1547 | + | |
| 1548 | + | |
| 1549 | + | |
| 1550 | + | |
| 1551 | + map.put("abnormity",abnormityList); | |
| 1552 | + map.put("abnormityProposal",abnormityProposal); | |
| 1553 | + return map; | |
| 1554 | + } | |
| 1472 | 1555 | |
| 1473 | 1556 | public static final String AREA_URL = PropertiesUtils.getPropertyValue("area_url"); |
| 1474 | 1557 | } |