Commit 39bdd884adef5a436d94f2bd3a2918715d26becb

Authored by shiyang
1 parent 43ae49c0da

结果建议-异常项及异常推荐-待完成

Showing 4 changed files with 168 additions and 47 deletions

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
... ... @@ -39,5 +39,7 @@
39 39 BaseObjectResponse getBreastInspectList(CancerScreeningRequest queryRequest);
40 40 //隆化-历史数据添加字段
41 41 BaseResponse pastPreeugenicsBaseAdd();
  42 +
  43 + BaseObjectResponse getAbnormityProposal(String id);
42 44 }
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 }