Commit d608a5701206936c32dbccbf4d0c029c98389969
1 parent
39bdd884ad
Exists in
master
and in
6 other branches
隆化-妇女健康管理-孕前优生-结果建议-异常项及异常推荐接口。跑历史数据接口
Showing 4 changed files with 350 additions and 34 deletions
- 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/result/PreEugenicsBaseListResult.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-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PreEugenicsBaseController.java
View file @
d608a57
... | ... | @@ -328,7 +328,7 @@ |
328 | 328 | |
329 | 329 | /** |
330 | 330 | * 隆化-男女临床检查项目填写是否完整 0:不完整 1:完整,历史数据添加字段clinicalCheckYn |
331 | - * | |
331 | + *跑历史数据 | |
332 | 332 | * @return |
333 | 333 | */ |
334 | 334 | @RequestMapping(method = RequestMethod.GET, value = "/pastPreeugenicsBaseAdd") |
... | ... | @@ -338,7 +338,7 @@ |
338 | 338 | } |
339 | 339 | |
340 | 340 | /** |
341 | - * 结果建议-异常项及异常推荐 | |
341 | + * 隆化-结果建议-异常项及异常推荐 | |
342 | 342 | * |
343 | 343 | * @param id |
344 | 344 | * @Author: sy |
... | ... | @@ -350,5 +350,17 @@ |
350 | 350 | public BaseObjectResponse getAbnormityProposal(String id) { |
351 | 351 | return iPreEugenicsService.getAbnormityProposal(id); |
352 | 352 | } |
353 | + | |
354 | + /** | |
355 | + * 隆化-结果建议-异常项及异常推荐,历史数据添加字段,abnormity、abnormityProposal | |
356 | + * 跑历史数据 | |
357 | + * @return | |
358 | + */ | |
359 | + @RequestMapping(method = RequestMethod.GET, value = "/pastAbnormityProposalAdd") | |
360 | + @ResponseBody | |
361 | + public BaseResponse pastAbnormityProposalAdd() { | |
362 | + return iPreEugenicsService.pastAbnormityProposalAdd(); | |
363 | + } | |
364 | + | |
353 | 365 | } |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/PreEugenicsBaseListResult.java
View file @
d608a57
... | ... | @@ -2,7 +2,9 @@ |
2 | 2 | |
3 | 3 | import com.lyms.platform.pojo.PreEugenicsBaseModel; |
4 | 4 | |
5 | +import java.util.List; | |
5 | 6 | |
7 | + | |
6 | 8 | public class PreEugenicsBaseListResult extends PreEugenicsBaseModel { |
7 | 9 | |
8 | 10 | /** |
... | ... | @@ -93,6 +95,32 @@ |
93 | 95 | |
94 | 96 | //隆化-男女临床检查项目填写是否完整 0:不完整 1:完整 |
95 | 97 | private Integer clinicalCheckYn; |
98 | + | |
99 | + //隆化-结果建议,评估异常项 | |
100 | + List<String> abnormity; | |
101 | + | |
102 | + //隆化-结果建议,异常项建议 | |
103 | + List<String> abnormityProposal; | |
104 | + | |
105 | + @Override | |
106 | + public List<String> getAbnormity() { | |
107 | + return abnormity; | |
108 | + } | |
109 | + | |
110 | + @Override | |
111 | + public void setAbnormity(List<String> abnormity) { | |
112 | + this.abnormity = abnormity; | |
113 | + } | |
114 | + | |
115 | + @Override | |
116 | + public List<String> getAbnormityProposal() { | |
117 | + return abnormityProposal; | |
118 | + } | |
119 | + | |
120 | + @Override | |
121 | + public void setAbnormityProposal(List<String> abnormityProposal) { | |
122 | + this.abnormityProposal = abnormityProposal; | |
123 | + } | |
96 | 124 | |
97 | 125 | public Integer getClinicalCheckYn() { |
98 | 126 | return clinicalCheckYn; |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IPreEugenicsService.java
View file @
d608a57
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PreEugebicsServiceImpl.java
View file @
d608a57
... | ... | @@ -1471,7 +1471,7 @@ |
1471 | 1471 | } |
1472 | 1472 | return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setData(map); |
1473 | 1473 | } |
1474 | - //结果建议-异常处理数据 | |
1474 | + //隆华-妇女健康管理-结果建议-异常,异常推荐,数据整理 | |
1475 | 1475 | public Map<String,List<String>> getAbnormityRoProposal(PreEugenicsBaseModel model){ |
1476 | 1476 | Map<String,List<String>> map=new HashMap(); |
1477 | 1477 | List<String> abnormityList=new ArrayList<>(); |
1478 | 1478 | |
1479 | 1479 | |
... | ... | @@ -1482,18 +1482,19 @@ |
1482 | 1482 | //女方bmi(身高体重) |
1483 | 1483 | String bmi=null!=model.getWifePhysiqueCheck().get("bmi")?model.getWifePhysiqueCheck().get("bmi").toString():null; |
1484 | 1484 | if(StringUtils.isNotEmpty(bmi)){ |
1485 | - if(Double.parseDouble(bmi)>25||Double.parseDouble(bmi)<19){ | |
1486 | - abnormityList.add("体重指数:女方: "+bmi); | |
1485 | + double bm=Double.parseDouble(bmi); | |
1486 | + if(bm>25||bm<19){ | |
1487 | + abnormityList.add("体重指数:女方: "+bm); | |
1487 | 1488 | abnormityProposal.add("体重超重或肥胖对女性内分泌系统、胎儿发育、分娩过程等会产生不良影响," + |
1488 | 1489 | "建议合理饮食,将控制体重在正常范围内。"); |
1489 | 1490 | } |
1490 | 1491 | } |
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){ | |
1492 | + //女方血压偏高/偏低 | |
1493 | + Integer gaoya=null!=model.getWifePhysiqueCheck().get("ssy")?(Integer)model.getWifePhysiqueCheck().get("ssy"):null;//高压 | |
1494 | + Integer diya=null!=model.getWifePhysiqueCheck().get("szy")?(Integer)model.getWifePhysiqueCheck().get("szy"):null;//低压 | |
1495 | + if(null!=gaoya&&null!=diya){ | |
1495 | 1496 | if(gaoya>140||diya>90||gaoya<90||diya<50){ |
1496 | - abnormityList.add("血压偏高/偏低:女方: "+gaoya+"/"+diya+"mmHg"); | |
1497 | + abnormityList.add("血压:女方: "+gaoya+"/"+diya+"mmHg"); | |
1497 | 1498 | abnormityProposal.add("慢性高血压是妊娠的高危因素,应请内科会诊,全面检查,明确疾病程度、是否有合并症,评价是否适宜妊娠。" + |
1498 | 1499 | "适宜 妊娠者要积极治疗,待血压控制稳定后在医生的指导下怀孕。有严重合并症 、血压控制不好者不宜怀孕。"); |
1499 | 1500 | } |
1500 | 1501 | |
1501 | 1502 | |
1502 | 1503 | |
1503 | 1504 | |
1504 | 1505 | |
1505 | 1506 | |
1506 | 1507 | |
1507 | 1508 | |
1508 | 1509 | |
1509 | 1510 | |
1510 | 1511 | |
1511 | 1512 | |
... | ... | @@ -1502,55 +1503,328 @@ |
1502 | 1503 | //女方,高龄 |
1503 | 1504 | String age=model.getWifeAge(); |
1504 | 1505 | if(StringUtils.isNotEmpty(age) && Integer.parseInt(age)>35){ |
1505 | - abnormityList.add("高龄:女方: "+age); | |
1506 | + abnormityList.add("年龄:女方: "+age+" 岁"); | |
1506 | 1507 | abnormityProposal.add("妊娠16-23周应进行产前诊断(细胞遗传学诊断)"); |
1507 | 1508 | } |
1508 | 1509 | //女方临床检查 |
1509 | 1510 | 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); | |
1511 | + //血细胞分析(贫血 HB, 淋巴细胞比例偏高 L ,血小板偏高 PLT ) | |
1512 | + List<String> xxbfx= null!=model.getWifeClinicalCheck().get("xxbfx")? (List<String>) model.getWifeClinicalCheck().get("xxbfx") :null; | |
1513 | + if(CollectionUtils.isNotEmpty(xxbfx)){ | |
1514 | + Integer hb=StringUtils.isNotEmpty(xxbfx.get(0))?Integer.valueOf(xxbfx.get(0)):null; | |
1515 | + Integer l=StringUtils.isNotEmpty(xxbfx.get(5))?Integer.valueOf(xxbfx.get(5)):null; | |
1516 | + Integer plt=StringUtils.isNotEmpty(xxbfx.get(2))?Integer.valueOf(xxbfx.get(2)):null; | |
1517 | + if(null!=hb&&(hb<120 || hb>160)){ | |
1518 | + abnormityList.add("血细胞 HB:女方: "+hb+" g/L"); | |
1519 | + abnormityProposal.add("建议复查,经内科大夫治疗恢复正常后再考虑怀孕。"); | |
1520 | + } | |
1521 | + if(null!=l&&(l<20 || l>40)){ | |
1522 | + abnormityList.add("血细胞 L:女方: "+l+"%"); | |
1519 | 1523 | abnormityProposal.add("常见于传染性单核细胞增多症,淋巴细胞性白血病,结核等。明确诊断后再考虑怀孕。"); |
1520 | 1524 | } |
1521 | - if(plt<100 || plt>300){ | |
1522 | - abnormityList.add("血小板偏高/偏低 PLT:女方: "+plt); | |
1525 | + if(null!=plt&&(plt<100 || plt>300)){ | |
1526 | + abnormityList.add("血细胞 PLT:女方: "+plt+" ×10\u2079/L"); | |
1523 | 1527 | abnormityProposal.add("常见于原发性增多:慢性粒细胞性白血病,真性红细胞增多症,原发性血小板增多症等," + |
1524 | 1528 | "反应性增多:急性感染,急性溶血等。明确诊断后并及时治疗,根据病情评估是否适宜怀孕。"); |
1525 | 1529 | } |
1526 | 1530 | } |
1527 | 1531 | //女方肌酐偏低 |
1528 | - String jigan=null!=model.getWifePhysiqueCheck().get("jigan")?model.getWifePhysiqueCheck().get("jigan").toString():null; | |
1532 | + String jigan=null!=model.getWifeClinicalCheck().get("jigan")?model.getWifeClinicalCheck().get("jigan").toString():null; | |
1529 | 1533 | if(StringUtils.isNotEmpty(jigan)){ |
1530 | - int jg=Integer.parseInt(jigan); | |
1534 | + Integer jg=Integer.valueOf(jigan); | |
1531 | 1535 | if(jg<41||jg>73){ |
1532 | - abnormityList.add("肌酐偏高/偏低 PLT:女方: "+jg); | |
1536 | + abnormityList.add("肌酐 PLT:女方: "+jg+" u mol/L"); | |
1533 | 1537 | abnormityProposal.add("建议复查,请肾科明确诊断。"); |
1534 | 1538 | } |
1535 | 1539 | } |
1536 | 1540 | //女方乙肝 |
1537 | - //女转氨酶升高 | |
1538 | - //女方梅毒螺旋体阳性 | |
1541 | + List<Integer> yigan=null!=model.getWifeClinicalCheck().get("yigan")?(List<Integer>) model.getWifeClinicalCheck().get("yigan"):null; | |
1542 | + if(CollectionUtils.isNotEmpty(yigan) && Arrays.asList(yigan.toArray()).contains(1)){ | |
1543 | + StringBuffer sb=new StringBuffer(); | |
1544 | + for (int i=0;i<yigan.size();i++) { | |
1545 | + if(yigan.get(i)==1){ | |
1546 | + switch (i){ | |
1547 | + case 0: | |
1548 | + if (i != yigan.size() - 1) { | |
1549 | + sb.append("HBs-Ag、"); | |
1550 | + } else { | |
1551 | + sb.append("HBs-Ag"); | |
1552 | + } | |
1553 | + break; | |
1554 | + case 1: | |
1555 | + if (i != yigan.size() - 1) { | |
1556 | + sb.append("HBs-Ab、"); | |
1557 | + } else { | |
1558 | + sb.append("HBs-Ab"); | |
1559 | + } | |
1560 | + break; | |
1561 | + case 2: | |
1562 | + if (i != yigan.size() - 1) { | |
1563 | + sb.append("HBe-Ag、"); | |
1564 | + } else { | |
1565 | + sb.append("HBe-Ag"); | |
1566 | + } | |
1567 | + break; | |
1568 | + case 3: | |
1569 | + if (i != yigan.size() - 1) { | |
1570 | + sb.append("HBe-Ab、"); | |
1571 | + } else { | |
1572 | + sb.append("HBe-Ab"); | |
1573 | + } | |
1574 | + break; | |
1575 | + case 4: | |
1576 | + if (i != yigan.size() - 1) { | |
1577 | + sb.append("HBc-Ab、"); | |
1578 | + } else { | |
1579 | + sb.append("HBc-Ab"); | |
1580 | + } | |
1581 | + break; | |
1582 | + } | |
1583 | + } | |
1584 | + } | |
1585 | + abnormityList.add("乙肝血清学检查:女方: "+sb.toString()+" :以上结果阳性"); | |
1586 | + abnormityProposal.add("女方为乙肝病毒携带者或者乙肝患者,建议暂不生育,综合医院肝病专科门诊咨询、治疗后可以生育。"); | |
1587 | + } | |
1588 | + //女谷丙转转氨酶升高 | |
1589 | + String gbzam=null!=model.getWifeClinicalCheck().get("gbzam")?model.getWifeClinicalCheck().get("gbzam").toString():null; | |
1590 | + if(StringUtils.isNotEmpty(gbzam)){ | |
1591 | + int zam=Integer.parseInt(gbzam); | |
1592 | + if(zam>31){ | |
1593 | + abnormityList.add("谷丙转氨酶(ALT):女方: "+zam+" U/L"); | |
1594 | + abnormityProposal.add("转氨酶升高,提示有肝细胞损伤,建议到综合医院肝病专科进一步诊治,建议治愈并停药3个月以上再生育。"); | |
1595 | + } | |
1596 | + } | |
1597 | + //女方梅毒螺旋体筛查阳性 | |
1598 | + String meidu=null!=model.getWifeClinicalCheck().get("meidu")?model.getWifeClinicalCheck().get("meidu").toString():null; | |
1599 | + if(StringUtils.isNotEmpty(meidu)){ | |
1600 | + int md=Integer.parseInt(meidu); | |
1601 | + if(md==1){ | |
1602 | + abnormityList.add("梅毒螺旋体:女方: 阳性"); | |
1603 | + abnormityProposal.add("为梅毒血清学初筛试验异常,阳性者需进一步做确证试验,若确诊为梅毒,建议治疗痊愈后生育。"); | |
1604 | + } | |
1605 | + } | |
1539 | 1606 | //女方巨细胞(IGM)阳性 |
1540 | - //女方贫 贫血范围HB | |
1541 | - //女方促甲状腺激素偏高 | |
1542 | - //女方促甲状腺激素偏低 | |
1607 | + String jxbbdIgM=null!=model.getWifeClinicalCheck().get("jxbbdIgM")?model.getWifeClinicalCheck().get("jxbbdIgM").toString():null; | |
1608 | + if(StringUtils.isNotEmpty(jxbbdIgM)){ | |
1609 | + int igm=Integer.parseInt(jxbbdIgM); | |
1610 | + if(igm==1){ | |
1611 | + abnormityList.add("巨细胞病毒(IGM):女方: 阳性"); | |
1612 | + abnormityProposal.add("建议复查,治疗转阴后三个月再复查正常后考虑怀孕。"); | |
1613 | + } | |
1614 | + } | |
1615 | + //女方促甲状腺激素(偏高、偏低) | |
1616 | + String cjzxjs=null!=model.getWifeClinicalCheck().get("cjzxjs")?model.getWifeClinicalCheck().get("cjzxjs").toString():null; | |
1617 | + if(StringUtils.isNotEmpty(cjzxjs)){ | |
1618 | + int js=Integer.parseInt(cjzxjs); | |
1619 | + if(js>50){//偏高 | |
1620 | + abnormityList.add("促甲状腺激素(TSH):女方: "+js+" u IU/ml"); | |
1621 | + abnormityProposal.add("常见于原发性甲减,亚临床甲减,地方性甲状腺肿,亚急性甲状腺炎或慢性淋巴细胞性甲状腺炎。" + | |
1622 | + "建议明确诊断,由产科医生和内分泌科医生评估是否适合妊娠。"); | |
1623 | + }else if(js<30){//偏低 | |
1624 | + abnormityList.add("促甲状腺激素(TSH):女方: "+js+" u IU/ml"); | |
1625 | + abnormityProposal.add("常见于甲亢,亚临床甲亢。建议明确诊断,由产科医生和内分泌科医生评估是否适合妊娠。"); | |
1626 | + } | |
1627 | + } | |
1543 | 1628 | //女方血糖偏高 |
1544 | - //女方妇科B超检查异常 | |
1629 | + String xuetang=null!=model.getWifeClinicalCheck().get("xuetang")?model.getWifeClinicalCheck().get("xuetang").toString():null; | |
1630 | + if(StringUtils.isNotEmpty(xuetang)){ | |
1631 | + double xt=Double.parseDouble(xuetang); | |
1632 | + if(xt<3.33||xt>6.11){ | |
1633 | + abnormityList.add("血糖:女方: "+xt+" mmol/L"); | |
1634 | + abnormityProposal.add("为糖尿病初筛检测异常,建议由产科和内分泌科医生提供专业咨询指导。确诊糖尿病者由专科医生评价病情程度、" + | |
1635 | + "是否适合妊娠以及妊娠的最佳时机,并在整个孕期严密监测病情发展变化。"); | |
1636 | + } | |
1637 | + } | |
1545 | 1638 | } |
1639 | + //女方妇科B超检查异常 | |
1640 | + if(MapUtils.isNotEmpty(model.getWifeBCheck())){ | |
1641 | + List<Object> bcjc= null!=model.getWifeBCheck().get("bcjc")? (List<Object>) model.getWifeBCheck().get("bcjc") :null; | |
1642 | + if(CollectionUtils.isNotEmpty(bcjc)){ | |
1643 | + int bc=(int)bcjc.get(0); | |
1644 | + if(bc==1){ | |
1645 | + abnormityList.add("妇科B超检查:女方: 异常"); | |
1646 | + abnormityProposal.add("建议您根据B超检查结果提示的具体异常类型前往正规医院妇产科门诊就医,明确诊断后在妇产科医生治疗和指导下怀孕。"); | |
1647 | + } | |
1648 | + } | |
1649 | + } | |
1650 | + /**男*/ | |
1651 | + //男体格检查 | |
1652 | + if(MapUtils.isNotEmpty(model.getHusbandPhysiqueCheck())){ | |
1653 | + //bmi(身高体重) | |
1654 | + String bmi=null!=model.getHusbandPhysiqueCheck().get("bmi")?model.getHusbandPhysiqueCheck().get("bmi").toString():null; | |
1655 | + if(StringUtils.isNotEmpty(bmi)){ | |
1656 | + double bm=Double.parseDouble(bmi); | |
1657 | + if(bm>25||bm<19){ | |
1658 | + abnormityList.add("体重指数:男方: "+bm); | |
1659 | + abnormityProposal.add("提示营养过度或者肥胖,可以生育,建议由男科和内分泌科医生提供咨询指导。"); | |
1660 | + } | |
1661 | + } | |
1662 | + //男血压偏高/偏低 | |
1663 | + Integer gaoya=null!=model.getHusbandPhysiqueCheck().get("ssy")?(Integer)model.getHusbandPhysiqueCheck().get("ssy"):null;//高压 | |
1664 | + Integer diya=null!=model.getHusbandPhysiqueCheck().get("szy")?(Integer)model.getHusbandPhysiqueCheck().get("szy"):null;//低压 | |
1665 | + if(null!=gaoya&&null!=diya){ | |
1666 | + if(gaoya>140||diya>90||gaoya<90||diya<50){ | |
1667 | + abnormityList.add("血压:男方: "+gaoya+"/"+diya+" mmHg"); | |
1668 | + abnormityProposal.add("改善生活行为,如减轻体重、减少钠盐摄入、补充钙和钾盐、减少脂肪摄入、戒烟和限制饮酒、增加运动等;使用降压药物;" + | |
1669 | + "血压控制目标值至少<140/90mmHg;协同控制多重心血管危险因素。可以生育,建议由心内科医生提供咨询指导。"); | |
1670 | + } | |
1671 | + } | |
1672 | + //甲状腺疾病 | |
1673 | + List<Integer> jzx= null!=model.getHusbandPhysiqueCheck().get("jzx")? (List<Integer>) model.getHusbandPhysiqueCheck().get("jzx") :null; | |
1674 | + if(CollectionUtils.isNotEmpty(jzx)){ | |
1675 | + if(null!=jzx.get(0)&&1==jzx.get(0)){ | |
1676 | + abnormityList.add("甲状腺:男方: 异常"); | |
1677 | + abnormityProposal.add("针对功能亢进者,采用手术切除导致功能亢进的肿瘤或增生组织,或者放射治疗毁坏肿瘤或增生组织,或者药物治疗抑制激素的合成和释放;" + | |
1678 | + "针对功能减退者,采用有关缺乏激素的替代治疗或补充治疗,或者内分泌腺组织移植、提供身体的需要;建议暂不生育,由内分泌科、外科医生提供咨询指导、治疗后可以生育。"); | |
1679 | + } | |
1680 | + } | |
1546 | 1681 | |
1682 | + } | |
1683 | + //男一般情况 | |
1684 | + if(MapUtils.isNotEmpty(model.getHusbandBaseInfo())){ | |
1685 | + //男是否吸烟 | |
1686 | + List<Object> ysyy= null!=model.getHusbandBaseInfo().get("ysyy")? (List<Object>) model.getHusbandBaseInfo().get("ysyy") :null; | |
1687 | + if(CollectionUtils.isNotEmpty(ysyy)){ | |
1688 | + Integer xiyan=null!=ysyy.get(3)?Integer.valueOf(ysyy.get(3).toString()):null; | |
1689 | + Integer hejiu=null!=ysyy.get(5)?Integer.valueOf(ysyy.get(5).toString()):null; | |
1690 | + if(null!=xiyan&&1==xiyan){ | |
1691 | + abnormityList.add("是否吸烟:男方: 吸烟"); | |
1692 | + abnormityProposal.add("吸烟是明确的导致胎儿先天畸形的危险因素,烟草中的有害物质可以致癌,对心脑血管、呼吸和消化等多个系统和器官产生影响;" + | |
1693 | + "可以导致精液质量下降;建议暂不生育,至少戒烟3个月后再行生育,由男科或泌尿外科等专科医生提供咨询指导。"); | |
1694 | + } | |
1695 | + if(null!=hejiu&&(1==hejiu||2==hejiu)){ | |
1696 | + abnormityList.add("是否饮酒:男方: 饮酒"); | |
1697 | + abnormityProposal.add("酒精可以对消化道、肝脏、神经等系统、器官产生危害;可以导致精液质量下降;建议暂不生育,至少戒酒3个月后再行生育," + | |
1698 | + "由男科或泌尿外科等专科医生提供咨询指导。"); | |
1699 | + } | |
1700 | + } | |
1701 | + } | |
1702 | + //男临床检查 | |
1703 | + if(MapUtils.isNotEmpty(model.getHusbandClinicalCheck())){ | |
1704 | + //男肌酐偏低 | |
1705 | + String jigan=null!=model.getHusbandClinicalCheck().get("jigan")?model.getHusbandClinicalCheck().get("jigan").toString():null; | |
1706 | + if(StringUtils.isNotEmpty(jigan)){ | |
1707 | + Integer jg=Integer.valueOf(jigan); | |
1708 | + if(jg<41||jg>73){ | |
1709 | + abnormityList.add("肌酐 PLT:男方: "+jg+" u mol/L"); | |
1710 | + abnormityProposal.add("肌酐值降低,可见于肌肉消瘦者,建议暂不生育,到综合医院由泌尿外科或肾病专科医生提供咨询指导、治疗后可以生育。"); | |
1711 | + } | |
1712 | + } | |
1713 | + //男方乙肝 | |
1714 | + List<Integer> yigan=null!=model.getHusbandClinicalCheck().get("yigan")?(List<Integer>) model.getHusbandClinicalCheck().get("yigan"):null; | |
1715 | + if(CollectionUtils.isNotEmpty(yigan) && Arrays.asList(yigan.toArray()).contains(1)){ | |
1716 | + StringBuffer sb=new StringBuffer(); | |
1717 | + for (int i=0;i<yigan.size();i++) { | |
1718 | + if(yigan.get(i)==1){ | |
1719 | + switch (i){ | |
1720 | + case 0: | |
1721 | + if (i != yigan.size() - 1) { | |
1722 | + sb.append("HBs-Ag、"); | |
1723 | + } else { | |
1724 | + sb.append("HBs-Ag"); | |
1725 | + } | |
1726 | + break; | |
1727 | + case 1: | |
1728 | + if (i != yigan.size() - 1) { | |
1729 | + sb.append("HBs-Ab、"); | |
1730 | + } else { | |
1731 | + sb.append("HBs-Ab"); | |
1732 | + } | |
1733 | + break; | |
1734 | + case 2: | |
1735 | + if (i != yigan.size() - 1) { | |
1736 | + sb.append("HBe-Ag、"); | |
1737 | + } else { | |
1738 | + sb.append("HBe-Ag"); | |
1739 | + } | |
1740 | + break; | |
1741 | + case 3: | |
1742 | + if (i != yigan.size() - 1) { | |
1743 | + sb.append("HBe-Ab、"); | |
1744 | + } else { | |
1745 | + sb.append("HBe-Ab"); | |
1746 | + } | |
1747 | + break; | |
1748 | + case 4: | |
1749 | + if (i != yigan.size() - 1) { | |
1750 | + sb.append("HBc-Ab、"); | |
1751 | + } else { | |
1752 | + sb.append("HBc-Ab"); | |
1753 | + } | |
1754 | + break; | |
1755 | + } | |
1756 | + } | |
1757 | + } | |
1758 | + abnormityList.add("乙肝血清学检查:男方: "+sb.toString()+" :以上结果阳性"); | |
1759 | + abnormityProposal.add("男方为乙肝病毒携带者或者乙肝患者,建议暂不生育,综合医院肝病专科门诊咨询、治疗后可以生育。"); | |
1760 | + } | |
1761 | + //男谷丙转转氨酶升高 | |
1762 | + String gbzam=null!=model.getHusbandClinicalCheck().get("gbzam")?model.getHusbandClinicalCheck().get("gbzam").toString():null; | |
1763 | + if(StringUtils.isNotEmpty(gbzam)){ | |
1764 | + int zam=Integer.parseInt(gbzam); | |
1765 | + if(zam>31){ | |
1766 | + abnormityList.add("谷丙转氨酶(ALT):男方: "+zam+" U/L"); | |
1767 | + abnormityProposal.add("转氨酶升高,提示有肝细胞损伤,建议到综合医院肝病专科进一步诊治,建议治愈并停药3个月以上再生育。"); | |
1768 | + } | |
1769 | + } | |
1770 | + //男方梅毒螺旋体筛查阳性 | |
1771 | + String meidu=null!=model.getHusbandClinicalCheck().get("meidu")?model.getHusbandClinicalCheck().get("meidu").toString():null; | |
1772 | + if(StringUtils.isNotEmpty(meidu)){ | |
1773 | + int md=Integer.parseInt(meidu); | |
1774 | + if(md==1){ | |
1775 | + abnormityList.add("梅毒螺旋体:男方: 阳性"); | |
1776 | + abnormityProposal.add("为梅毒血清学初筛试验异常,阳性者需进一步做确证试验,若确诊为梅毒,建议治疗痊愈后生育。"); | |
1777 | + } | |
1778 | + } | |
1779 | + } | |
1547 | 1780 | |
1548 | - | |
1549 | - | |
1550 | - | |
1551 | 1781 | map.put("abnormity",abnormityList); |
1552 | 1782 | map.put("abnormityProposal",abnormityProposal); |
1553 | 1783 | return map; |
1784 | + } | |
1785 | + | |
1786 | + @Override | |
1787 | + public BaseResponse pastAbnormityProposalAdd() { | |
1788 | + Query query=new Query(); | |
1789 | + query.addCriteria(Criteria.where("hospitalId").is("2100001605")); | |
1790 | + List <PreEugenicsBaseModel> preEugenicsBaseModels = mongoTemplate.find(query, PreEugenicsBaseModel.class); | |
1791 | + if (CollectionUtils.isNotEmpty(preEugenicsBaseModels)) { | |
1792 | + int batchSize = 20; | |
1793 | + int end = 0; | |
1794 | + List <Future> listFuture = new ArrayList <>(); | |
1795 | + for (int i = 0; i < preEugenicsBaseModels.size(); i += batchSize) { | |
1796 | + end = (end + batchSize); | |
1797 | + if (end > preEugenicsBaseModels.size()) { | |
1798 | + end = preEugenicsBaseModels.size(); | |
1799 | + } | |
1800 | + final List<PreEugenicsBaseModel> risks = preEugenicsBaseModels.subList(i, end); | |
1801 | + listFuture.add(commonThreadPool.submit(new Callable() { | |
1802 | + @Override | |
1803 | + public Object call() throws Exception { | |
1804 | + if (CollectionUtils.isNotEmpty(risks)) { | |
1805 | + for (PreEugenicsBaseModel model : risks) { | |
1806 | + try { | |
1807 | + Map<String,List<String>> map = getAbnormityRoProposal(model); | |
1808 | + if(MapUtils.isNotEmpty(map)){ | |
1809 | + model.setAbnormity(map.get("abnormity")); | |
1810 | + model.setAbnormityProposal(map.get("abnormityProposal")); | |
1811 | + Query query = Query.query(Criteria.where("id").is(model.getId())); | |
1812 | + Update update = MongoConvertHelper | |
1813 | + .convertToNativeUpdate(ReflectionUtils.getUpdateField(model)); | |
1814 | + mongoTemplate.updateFirst(query, update, PreEugenicsBaseModel.class); | |
1815 | + } | |
1816 | + } catch (Exception e) { | |
1817 | + e.printStackTrace(); | |
1818 | + } | |
1819 | + } | |
1820 | + } | |
1821 | + return null; | |
1822 | + } | |
1823 | + })); | |
1824 | + } | |
1825 | + | |
1826 | + } | |
1827 | + return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功"); | |
1554 | 1828 | } |
1555 | 1829 | |
1556 | 1830 | public static final String AREA_URL = PropertiesUtils.getPropertyValue("area_url"); |