Commit d608a5701206936c32dbccbf4d0c029c98389969

Authored by shiyang
1 parent 39bdd884ad

隆化-妇女健康管理-孕前优生-结果建议-异常项及异常推荐接口。跑历史数据接口

Showing 4 changed files with 350 additions and 34 deletions

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
... ... @@ -41,5 +41,7 @@
41 41 BaseResponse pastPreeugenicsBaseAdd();
42 42  
43 43 BaseObjectResponse getAbnormityProposal(String id);
  44 +
  45 + BaseResponse pastAbnormityProposalAdd();
44 46 }
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");