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 | } |