Commit b88fa2ad6dec53e8a81ed315ebdb99c669e6f851

Authored by liquanyu
1 parent 11064f32a8

儿童营养报告

Showing 5 changed files with 679 additions and 35 deletions

platform-biz-patient-service/src/main/java/com/lyms/platform/biz/BasicConfigServiceTest.java View file @ b88fa2a
... ... @@ -846,6 +846,82 @@
846 846  
847 847  
848 848  
  849 + //儿童bmi
  850 + public static void addBabyBmiHealthConfig(String fileName) {
  851 + ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:/spring/applicationContext_biz_patient1.xml");
  852 + MongoTemplate mongoTemplate
  853 + = (MongoTemplate) applicationContext.getBean("mongoTemplate");
  854 + mongoTemplate.getDb().authenticate("platform", "platform123".toCharArray());
  855 + File file = new File(fileName);
  856 + Workbook wb = null;
  857 + try {
  858 + wb = Workbook.getWorkbook(file);
  859 + Sheet s = wb.getSheet(0);
  860 + System.out.println(s.getName() + " : ");
  861 + int rows = s.getRows();
  862 + if(rows > 0){
  863 + //遍历每行
  864 + for(int i = 1 ;i < rows ; i++){
  865 + System.out.println("rows=" + i);
  866 + AwModel model = new AwModel();
  867 + model.setType(5);
  868 +
  869 + Cell[] cells = s.getRow(i);
  870 + if(cells.length > 0){
  871 + //遍历每行中的每列
  872 + for (int j = 0 ; j < cells.length ; j ++)
  873 + {
  874 + String str = cells[j].getContents().trim();
  875 + if (!com.lyms.platform.common.utils.StringUtils.isNotEmpty(str))
  876 + {
  877 + continue;
  878 + }
  879 + switch (j)
  880 + {
  881 + case 0:
  882 + model.setAge(Integer.parseInt(str));
  883 + continue;
  884 + case 1:
  885 + model.setRthreeDs(Double.valueOf(str));
  886 + continue;
  887 + case 2:
  888 + model.setRtwoDs(Double.valueOf(str));
  889 + continue;
  890 + case 3:
  891 + model.setRoneDs(Double.valueOf(str));
  892 + continue;
  893 + case 4:
  894 + model.setMiddleDs(Double.valueOf(str));
  895 + continue;
  896 + case 5:
  897 + model.setPoneDs(Double.valueOf(str));
  898 + continue;
  899 + case 6:
  900 + model.setPtwoDs(Double.valueOf(str));
  901 + continue;
  902 + case 7:
  903 + model.setPthreeDs(Double.valueOf(str));
  904 + continue;
  905 + case 8:
  906 + model.setSex(Integer.parseInt(str));
  907 + continue;
  908 + }
  909 + }
  910 + }
  911 + System.out.println(model);
  912 + mongoTemplate.save(model);
  913 + }
  914 + }
  915 + } catch (IOException e) {
  916 + e.printStackTrace();
  917 + } catch (BiffException e) {
  918 + e.printStackTrace();
  919 + }
  920 +
  921 + }
  922 +
  923 +
  924 +
849 925 public static void weightMange(String fileName)
850 926 {
851 927  
... ... @@ -1455,6 +1531,250 @@
1455 1531 }
1456 1532  
1457 1533  
  1534 +
  1535 + public static void babyConfig(String fileName)
  1536 + {
  1537 +
  1538 + ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:/spring/applicationContext_biz_patient1.xml");
  1539 + MongoTemplate mongoTemplate
  1540 + = (MongoTemplate) applicationContext.getBean("mongoTemplate");
  1541 + mongoTemplate.getDb().authenticate("platform", "platform123".toCharArray());
  1542 + File file = new File(fileName);
  1543 + Workbook wb = null;
  1544 + try {
  1545 + wb = Workbook.getWorkbook(file);
  1546 + Sheet s = wb.getSheet(0);
  1547 + System.out.println(s.getName() + " : ");
  1548 + int rows = s.getRows();
  1549 + if(rows > 0){
  1550 + //遍历每行
  1551 + for(int i = 1 ;i < rows ; i++){
  1552 + System.out.println("rows="+i);
  1553 + BabyConfigModel model = new BabyConfigModel();
  1554 + //0 0-11月龄 1 0-11月热量计算 2 12-36月龄 3 12-36月热量计算
  1555 + model.setType(0);
  1556 + Cell[] cells = s.getRow(i);
  1557 + if(cells.length > 0){
  1558 + //遍历每行中的每列
  1559 + for (int j = 0 ; j < cells.length ; j ++)
  1560 + {
  1561 + String str = cells[j].getContents().trim();
  1562 + if (!com.lyms.platform.common.utils.StringUtils.isNotEmpty(str))
  1563 + {
  1564 + continue;
  1565 + }
  1566 + switch (j)
  1567 + {
  1568 + case 0:
  1569 + model.setMonthAge(Integer.parseInt(str));
  1570 + continue;
  1571 + case 1:
  1572 + List<String> list1 = Arrays.asList(str.split("\n"));
  1573 + model.setContentOne(list1);
  1574 + continue;
  1575 + case 2:
  1576 + List<String> list2 = Arrays.asList(str.split("\n"));
  1577 + model.setContentTwo(list2);
  1578 + continue;
  1579 + case 3:
  1580 + List<String> list3 = Arrays.asList(str.split("\n"));
  1581 + model.setContentThree(list3);
  1582 + continue;
  1583 + case 4:
  1584 + List<String> list4 = Arrays.asList(str.split("\n"));
  1585 + model.setContentFour(list4);
  1586 + continue;
  1587 + case 5:
  1588 + model.setStatus(str);
  1589 + continue;
  1590 + }
  1591 + }
  1592 +
  1593 + }
  1594 + mongoTemplate.save(model);
  1595 + }
  1596 + }
  1597 +
  1598 + Sheet s1 = wb.getSheet(1);
  1599 + System.out.println(s1.getName() + " : ");
  1600 +
  1601 + int rows1 = s1.getRows();
  1602 + if(rows1 > 0){
  1603 + //遍历每行
  1604 + for(int i = 1 ;i < rows1 ; i++){
  1605 + System.out.println("rows="+i);
  1606 + BabyConfigModel model = new BabyConfigModel();
  1607 + //0 0-11月龄 1 0-11月热量计算 2 12-36月龄 3 12-36月热量计算
  1608 + model.setType(1);
  1609 + Cell[] cells = s1.getRow(i);
  1610 + if(cells.length > 0){
  1611 + //遍历每行中的每列
  1612 + for (int j = 0 ; j < cells.length ; j ++)
  1613 + {
  1614 + String str = cells[j].getContents().trim();
  1615 + if (!com.lyms.platform.common.utils.StringUtils.isNotEmpty(str))
  1616 + {
  1617 + continue;
  1618 + }
  1619 + switch (j)
  1620 + {
  1621 + case 0:
  1622 + model.setMonthAge(Integer.parseInt(str));
  1623 + continue;
  1624 + case 1:
  1625 + model.setKcal(Double.parseDouble(str));
  1626 + continue;
  1627 + case 2:
  1628 + List<String> list1 = Arrays.asList(str.split("\n"));
  1629 + model.setContentOne(list1);
  1630 + continue;
  1631 + }
  1632 + }
  1633 +
  1634 + }
  1635 + mongoTemplate.save(model);
  1636 + }
  1637 + }
  1638 +
  1639 +
  1640 +
  1641 + Sheet s2 = wb.getSheet(2);
  1642 + System.out.println(s2.getName() + " : ");
  1643 +
  1644 + int rows2 = s2.getRows();
  1645 + if(rows2 > 0){
  1646 + //遍历每行
  1647 + for(int i = 1 ;i < rows2 ; i++){
  1648 + System.out.println("rows="+i);
  1649 + BabyConfigModel model = new BabyConfigModel();
  1650 + //0 0-11月龄 1 0-11月热量计算 2 12-36月龄 3 12-36月热量计算
  1651 + model.setType(2);
  1652 + Cell[] cells = s2.getRow(i);
  1653 + if(cells.length > 0){
  1654 + //遍历每行中的每列
  1655 + for (int j = 0 ; j < cells.length ; j ++)
  1656 + {
  1657 + String str = cells[j].getContents().trim();
  1658 + if (!com.lyms.platform.common.utils.StringUtils.isNotEmpty(str))
  1659 + {
  1660 + continue;
  1661 + }
  1662 + switch (j)
  1663 + {
  1664 + case 0:
  1665 + model.setMonthAge(Integer.parseInt(str));
  1666 + continue;
  1667 + case 1:
  1668 + model.setTitle(str);
  1669 + continue;
  1670 + case 2:
  1671 + List<String> list1 = Arrays.asList(str.split("\n"));
  1672 + model.setContentOne(list1);
  1673 + continue;
  1674 + }
  1675 + }
  1676 +
  1677 + }
  1678 + mongoTemplate.save(model);
  1679 + }
  1680 + }
  1681 +
  1682 +
  1683 + Sheet s3 = wb.getSheet(3);
  1684 + System.out.println(s3.getName() + " : ");
  1685 + int rows3 = s3.getRows();
  1686 + if(rows3 > 0){
  1687 + //遍历每行
  1688 + for(int i = 1 ;i < rows3 ; i++){
  1689 + System.out.println("rows="+i);
  1690 + BabyConfigModel model = new BabyConfigModel();
  1691 + //0 0-11月龄 1 0-11月热量计算 2 12-36月龄 3 12-36月热量计算
  1692 + model.setType(3);
  1693 + Cell[] cells = s3.getRow(i);
  1694 + if(cells.length > 0){
  1695 + //遍历每行中的每列
  1696 + for (int j = 0 ; j < cells.length ; j ++)
  1697 + {
  1698 + String str = cells[j].getContents().trim();
  1699 + if (!com.lyms.platform.common.utils.StringUtils.isNotEmpty(str))
  1700 + {
  1701 + continue;
  1702 + }
  1703 + switch (j)
  1704 + {
  1705 + case 0:
  1706 + model.setKcal(Double.parseDouble(str));
  1707 + continue;
  1708 + case 1:
  1709 + model.setTitle(str);
  1710 + continue;
  1711 + case 2:
  1712 + List<String> list2 = Arrays.asList(str.split("\n"));
  1713 + model.setContentOne(list2);
  1714 + continue;
  1715 + case 3:
  1716 + model.setStatus(str);
  1717 + continue;
  1718 + }
  1719 + }
  1720 + }
  1721 + mongoTemplate.save(model);
  1722 + }
  1723 + }
  1724 +
  1725 +
  1726 + Sheet s4 = wb.getSheet(4);
  1727 + System.out.println(s4.getName() + " : ");
  1728 + int rows4 = s4.getRows();
  1729 + if(rows3 > 0){
  1730 + //遍历每行
  1731 + for(int i = 1 ;i < rows4 ; i++){
  1732 + System.out.println("rows="+i);
  1733 + BabyConfigModel model = new BabyConfigModel();
  1734 + //0 0-11月龄 1 0-11月热量计算 2 12-36月龄 3 12-36月热量计算 4.12--36喂养指南
  1735 + model.setType(4);
  1736 + Cell[] cells = s4.getRow(i);
  1737 + if(cells.length > 0){
  1738 + //遍历每行中的每列
  1739 + for (int j = 0 ; j < cells.length ; j ++)
  1740 + {
  1741 + String str = cells[j].getContents().trim();
  1742 + if (!com.lyms.platform.common.utils.StringUtils.isNotEmpty(str))
  1743 + {
  1744 + continue;
  1745 + }
  1746 + switch (j)
  1747 + {
  1748 + case 0:
  1749 + model.setMonthAge(Integer.parseInt(str));
  1750 + continue;
  1751 + case 1:
  1752 + model.setTitle(str);
  1753 + continue;
  1754 + case 2:
  1755 + List<String> list2 = Arrays.asList(str.split("\n"));
  1756 + model.setContentOne(list2);
  1757 + continue;
  1758 + case 3:
  1759 + model.setStatus(str);
  1760 + continue;
  1761 + }
  1762 + }
  1763 + }
  1764 + mongoTemplate.save(model);
  1765 + }
  1766 + }
  1767 +
  1768 +
  1769 + } catch (IOException e) {
  1770 + e.printStackTrace();
  1771 + } catch (BiffException e) {
  1772 + e.printStackTrace();
  1773 + }
  1774 +
  1775 + }
  1776 +
  1777 +
1458 1778 public static void main(String[] args) {
1459 1779 // weightWeek("F:\\体重与营养管理\\体重与营养管理第三版(北方)改标红“、冰淇淋”-晓萌.xls");
1460 1780 // weightMange("F:\\体重与营养管理\\体重与营养管理第三版(北方)改标红“、冰淇淋”-晓萌.xls");
1461 1781  
1462 1782  
1463 1783  
... ... @@ -1462,32 +1782,12 @@
1462 1782 // bloodSugar("F:\\血糖报告\\血糖报告\\血糖报告基础数据格式(2).xls");
1463 1783  
1464 1784 // zcet("D:\\doc\\高血压报告20180813模板.xls");
1465   - zcet("D:\doc\1.xls",false);
  1785 +// zcet("D:\doc\1.xls",false);
1466 1786  
  1787 +// addBabyBmiHealthConfig("F:\\儿童营养报告\\婴幼儿bmi.xls");
1467 1788  
1468   - /* ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:/spring/applicationContext_biz_patient1.xml");
1469   - MongoTemplate mongoTemplate
1470   - = (MongoTemplate) applicationContext.getBean("mongoTemplate");
1471   - mongoTemplate.getDb().authenticate("platform", "platform123".toCharArray());
1472   -
1473   - QueryBuilder queryBuilder = new QueryBuilder();
1474   - BasicDBObject fieldsObject=new BasicDBObject();
1475   - fieldsObject.put("_id", 1);
1476   - fieldsObject.put("category", 1);
1477   - BasicQuery query=new BasicQuery(queryBuilder.get(),fieldsObject);
1478   - System.out.println(mongoTemplate.find(query, Guidelines.class).get(0));*/
  1789 + babyConfig("F:\\儿童营养报告\\儿童营养报告模板.xls");
1479 1790 }
1480 1791  
1481   - public static void addBaby(ApplicationContext applicationContext) {
1482   -// BabyModel babyModel = new BabyModel();
1483   -// babyModel.setBirth(new Date());
1484   -// babyModel.setName("小孩的名字");
1485   -// babyModel.setSex(1);
1486   -// babyModel.setVisitstatus(1);
1487   -// babyModel.setParentId("56ebbff424fdd5ddf5dd2070");
1488   -// BabyService babyService = applicationContext.getBean(BabyService.class);
1489   -// babyService.addOneBaby(babyModel);
1490   - ;
1491   - }
1492 1792 }
platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/BabyCheckService.java View file @ b88fa2a
... ... @@ -67,6 +67,13 @@
67 67 return babyHwDao.queryHWByHeight(condition.toMongoQuery());
68 68 }
69 69  
  70 + public List<AwModel> queryBabyHealthConfig(Integer sex,Integer type) {
  71 + MongoCondition condition = MongoCondition.newInstance();
  72 + condition = condition.and("sex", sex, MongoOper.IS);
  73 + condition = condition.and("type", type, MongoOper.IS);
  74 + return babyAwDao.queryAwByHeight(condition.toMongoQuery());
  75 + }
  76 +
70 77 public List<AwModel> queryBabyHealthConfig(Integer age, Integer sex,Integer type) {
71 78 MongoCondition condition = MongoCondition.newInstance();
72 79 condition = condition.and("age", age, MongoOper.IS);
platform-dal/src/main/java/com/lyms/platform/pojo/AwModel.java View file @ b88fa2a
... ... @@ -23,7 +23,7 @@
23 23 private Double poneDs;
24 24 private Double ptwoDs;
25 25 private Double pthreeDs;
26   - //0 体重标准差数值表 1 身长/身高标准差数值表 2 头围标准差数值表 3身高别体重 4 早产儿体重百分位数值表(男、女)
  26 + //0 体重标准差数值表 1 身长/身高标准差数值表 2 头围标准差数值表 3身高别体重 4 早产儿体重百分位数值表(男、女) 5.儿童bmi值
27 27 private Integer type;
28 28  
29 29 private Double height;
... ... @@ -143,6 +143,26 @@
143 143  
144 144 public void setPthreeDs(Double pthreeDs) {
145 145 this.pthreeDs = pthreeDs;
  146 + }
  147 +
  148 + @Override
  149 + public String toString() {
  150 + return "AwModel{" +
  151 + "id='" + id + '\'' +
  152 + ", sex=" + sex +
  153 + ", age=" + age +
  154 + ", rthreeDs=" + rthreeDs +
  155 + ", rtwoDs=" + rtwoDs +
  156 + ", roneDs=" + roneDs +
  157 + ", middleDs=" + middleDs +
  158 + ", poneDs=" + poneDs +
  159 + ", ptwoDs=" + ptwoDs +
  160 + ", pthreeDs=" + pthreeDs +
  161 + ", type=" + type +
  162 + ", height=" + height +
  163 + ", ageType=" + ageType +
  164 + ", week=" + week +
  165 + '}';
146 166 }
147 167 }
platform-dal/src/main/java/com/lyms/platform/pojo/BabyConfigModel.java View file @ b88fa2a
  1 +package com.lyms.platform.pojo;
  2 +
  3 +import org.springframework.data.mongodb.core.mapping.Document;
  4 +
  5 +import java.io.Serializable;
  6 +import java.util.List;
  7 +
  8 +/**
  9 + * 儿童营养报告内容配置
  10 + * Created by Administrator on 2018-06-04.
  11 + */
  12 +@Document(collection = "lyms_baby_config")
  13 +public class BabyConfigModel {
  14 + private String id;
  15 + private String title;
  16 + private Integer monthAge;//月龄
  17 + private List<String> contentOne;//
  18 + private List<String> contentTwo;//
  19 + private List<String> contentThree;//
  20 + private List<String> contentFour;//
  21 + private Double kcal; //热量
  22 + private Integer type; //0 0-11月龄 1 0-11月热量计算 2 12-36月龄 3 12-36月热量计算 4.12--36喂养指南
  23 +
  24 + private String status; // 消瘦、正常、超重
  25 +
  26 + public String getId() {
  27 + return id;
  28 + }
  29 +
  30 + public void setId(String id) {
  31 + this.id = id;
  32 + }
  33 +
  34 + public String getTitle() {
  35 + return title;
  36 + }
  37 +
  38 + public void setTitle(String title) {
  39 + this.title = title;
  40 + }
  41 +
  42 + public Integer getMonthAge() {
  43 + return monthAge;
  44 + }
  45 +
  46 + public void setMonthAge(Integer monthAge) {
  47 + this.monthAge = monthAge;
  48 + }
  49 +
  50 + public List<String> getContentOne() {
  51 + return contentOne;
  52 + }
  53 +
  54 + public void setContentOne(List<String> contentOne) {
  55 + this.contentOne = contentOne;
  56 + }
  57 +
  58 + public List<String> getContentTwo() {
  59 + return contentTwo;
  60 + }
  61 +
  62 + public void setContentTwo(List<String> contentTwo) {
  63 + this.contentTwo = contentTwo;
  64 + }
  65 +
  66 + public List<String> getContentThree() {
  67 + return contentThree;
  68 + }
  69 +
  70 + public void setContentThree(List<String> contentThree) {
  71 + this.contentThree = contentThree;
  72 + }
  73 +
  74 + public List<String> getContentFour() {
  75 + return contentFour;
  76 + }
  77 +
  78 + public void setContentFour(List<String> contentFour) {
  79 + this.contentFour = contentFour;
  80 + }
  81 +
  82 + public Double getKcal() {
  83 + return kcal;
  84 + }
  85 +
  86 + public void setKcal(Double kcal) {
  87 + this.kcal = kcal;
  88 + }
  89 +
  90 + public Integer getType() {
  91 + return type;
  92 + }
  93 +
  94 + public void setType(Integer type) {
  95 + this.type = type;
  96 + }
  97 +
  98 + public String getStatus() {
  99 + return status;
  100 + }
  101 +
  102 + public void setStatus(String status) {
  103 + this.status = status;
  104 + }
  105 +}
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyCheckFacade.java View file @ b88fa2a
... ... @@ -7,8 +7,10 @@
7 7 import com.lyms.platform.common.result.BaseObjectResponse;
8 8 import com.lyms.platform.common.result.BaseResponse;
9 9 import com.lyms.platform.common.utils.*;
  10 +import com.lyms.platform.common.utils.StringUtils;
10 11 import com.lyms.platform.operate.web.request.BabyCheckRequest;
11 12 import com.lyms.platform.operate.web.result.*;
  13 +import com.lyms.platform.operate.web.service.PatientWeightService;
12 14 import com.lyms.platform.operate.web.utils.MongoUtil;
13 15 import com.lyms.platform.permission.dao.master.CouponMapper;
14 16 import com.lyms.platform.permission.model.Organization;
15 17  
... ... @@ -19,8 +21,12 @@
19 21 import com.lyms.platform.pojo.*;
20 22 import com.lyms.platform.query.*;
21 23 import org.apache.commons.collections.CollectionUtils;
  24 +import org.apache.commons.lang.*;
22 25 import org.springframework.beans.factory.annotation.Autowired;
23 26 import org.springframework.data.domain.Sort;
  27 +import org.springframework.data.mongodb.core.MongoTemplate;
  28 +import org.springframework.data.mongodb.core.query.Criteria;
  29 +import org.springframework.data.mongodb.core.query.Query;
24 30 import org.springframework.stereotype.Component;
25 31  
26 32 import java.util.*;
27 33  
28 34  
... ... @@ -34,12 +40,17 @@
34 40  
35 41 @Autowired
36 42 private BabyBookbuildingService babyBookbuildingService;
37   -
38 43 @Autowired
  44 + private PatientWeightService patientWeightService;
  45 + @Autowired
39 46 private BabyService babyService;
40 47  
41 48  
42 49 @Autowired
  50 + private MongoTemplate mongoTemplate;
  51 +
  52 +
  53 + @Autowired
43 54 private BasicConfigService basicConfigService;
44 55  
45 56 @Autowired
46 57  
47 58  
48 59  
49 60  
50 61  
... ... @@ -2063,22 +2074,223 @@
2063 2074  
2064 2075 Map data = new HashMap();
2065 2076  
2066   - String hospitalId = autoMatchFacade.getHospitalId(userId);
  2077 + BabyModelQuery babyQuery = new BabyModelQuery();
  2078 + babyQuery.setId(babyId);
  2079 + babyQuery.setYn(YnEnums.YES.getId());
2067 2080  
2068   - BabyModelQuery babyModelQuery = new BabyModelQuery();
2069   - babyModelQuery.setYn(YnEnums.YES.getId());
2070   - babyModelQuery.setId(babyId);
2071   - babyModelQuery.setHospitalId(hospitalId);
  2081 + Map baseInfo = new HashMap();
2072 2082  
2073   - List<BabyModel> babyModels = babyBookbuildingService.queryBabyBuildByCond(babyModelQuery);
2074   - if (CollectionUtils.isEmpty(babyModels))
  2083 + //查询儿童的基本信息
  2084 + List<BabyModel> models = babyBookbuildingService.queryBabyBuildByCond(babyQuery);
  2085 + if (!CollectionUtils.isNotEmpty(models))
2075 2086 {
2076   - return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.NO_DATA).setErrormsg("没有数据");
  2087 + return new BaseObjectResponse().setData(data).setErrorcode(ErrorCodeConstants.NO_DATA).setErrormsg("没有儿童档案信息");
2077 2088 }
2078 2089  
2079   - BabyModel babyModel = babyModels.get(0);
  2090 + BabyModel model = models.get(0);
2080 2091  
2081   - return null;
  2092 +
  2093 +
  2094 + BabyCheckModelQuery query = new BabyCheckModelQuery();
  2095 + query.setYn(YnEnums.YES.getId());
  2096 + query.setBuildId(babyId);
  2097 + List<BabyCheckModel> babyCheckModels = babyCheckService.queryBabyCheckRecord(query);
  2098 + if (CollectionUtils.isEmpty(babyCheckModels))
  2099 + {
  2100 + return new BaseObjectResponse().setData(data).setErrorcode(ErrorCodeConstants.NO_DATA).setErrormsg("没有检查记录");
  2101 + }
  2102 +
  2103 + BabyCheckModel checkModel = babyCheckModels.get(0);
  2104 +
  2105 + int month = DateUtil.getMonth(model.getBirth(), checkModel.getCheckDate());
  2106 + if (month == 0 || month > 36)
  2107 + {
  2108 + return new BaseObjectResponse().setData(data).setErrorcode(ErrorCodeConstants.NO_DATA).setErrormsg("月龄范围没有报告");
  2109 + }
  2110 +
  2111 + if (!(StringUtils.isNotEmpty(checkModel.getWeight()) && StringUtils.isNotEmpty(checkModel.getHeight())))
  2112 + {
  2113 + return new BaseObjectResponse().setData(data).setErrorcode(ErrorCodeConstants.NO_DATA).setErrormsg("检查报告没有体重和身长不能生成报告");
  2114 + }
  2115 +
  2116 +
  2117 + baseInfo.put("weight", checkModel.getWeight());
  2118 + baseInfo.put("weightEvaluate", checkModel.getWeightEvaluate());
  2119 +
  2120 + baseInfo.put("height", checkModel.getHeight());
  2121 + baseInfo.put("heightEvaluate", checkModel.getHeightEvaluate());
  2122 + baseInfo.put("month", month);
  2123 +
  2124 +
  2125 + String kaupEvaluate = "";
  2126 + if (StringUtils.isNotEmpty(checkModel.getWeight()) && StringUtils.isNotEmpty(checkModel.getHeight()))
  2127 + {
  2128 + String bmi = patientWeightService.getBmi(checkModel.getWeight(), checkModel.getHeight());
  2129 + baseInfo.put("kaup", bmi);
  2130 + if (StringUtils.isNotEmpty(bmi))
  2131 + {
  2132 + Double bbmi = Double.parseDouble(bmi);
  2133 + //查询该月龄的年龄别体重值
  2134 + // 正常 :-2SD ≤ A ≤ +1SD
  2135 + // 消瘦 : A < -2SD
  2136 + //偏重 : A > +1SD
  2137 + List<AwModel> list = babyCheckService.queryBabyHealthConfig(month, model.getSex(), 5);
  2138 + if (CollectionUtils.isNotEmpty(list)) {
  2139 + AwModel awModel = list.get(0);
  2140 + if (awModel.getPoneDs() < bbmi)
  2141 + {
  2142 + kaupEvaluate = "超重";
  2143 + }
  2144 + else if (awModel.getPoneDs() >= bbmi && awModel.getRtwoDs() <= bbmi)
  2145 + {
  2146 + kaupEvaluate = "正常";
  2147 + }
  2148 + else if (awModel.getRtwoDs() > bbmi)
  2149 + {
  2150 + kaupEvaluate = "消瘦";
  2151 + }
  2152 + }
  2153 + }
  2154 + baseInfo.put("kaupEvaluate", kaupEvaluate);
  2155 + }
  2156 +
  2157 + baseInfo.put("name",model.getName());
  2158 + baseInfo.put("sex",SexEnum.getTextById(model.getSex()));
  2159 + baseInfo.put("monthAge", DateUtil.getBabyMonthAge(model.getBirth(), new Date()));
  2160 +
  2161 + String feedType = "";
  2162 + if (month < 12)
  2163 + {
  2164 + String feedTypeId = checkModel.getFeedType();
  2165 + if (StringUtils.isNotEmpty(feedTypeId))
  2166 + {
  2167 + feedType = "喂养方式:"+WyTypeEnums.getNameById(Integer.parseInt(feedTypeId));
  2168 + }
  2169 + }
  2170 + baseInfo.put("feedType",feedType);
  2171 +
  2172 + data.put("baseInfo",baseInfo);
  2173 +
  2174 + if (StringUtils.isNotEmpty(kaupEvaluate))
  2175 + {
  2176 + BabyConfigModel babyConfigModel = mongoTemplate.findOne(Query.query(Criteria.where("monthAge").is(month).and("status").is(kaupEvaluate).and("type").is(0)), BabyConfigModel.class);
  2177 + if (month < 6)
  2178 + {
  2179 + //喂养方式
  2180 + data.put("wyfs",babyConfigModel.getContentOne());
  2181 + //营养需求
  2182 + data.put("yyxq",babyConfigModel.getContentFour());
  2183 + }
  2184 + else if (month < 12)
  2185 + {
  2186 + //指导意见
  2187 + data.put("zdyj",babyConfigModel.getContentOne());
  2188 + //辅食添加
  2189 + data.put("fstj",babyConfigModel.getContentTwo());
  2190 + //辅食制作
  2191 + data.put("fszz",babyConfigModel.getContentThree());
  2192 +
  2193 + if (StringUtils.isNotEmpty(checkModel.getWeight()))
  2194 + {
  2195 + Double kaul = Double.parseDouble(checkModel.getWeight()) * 100;
  2196 + BabyConfigModel babyConfigModel1 = mongoTemplate.findOne(Query.query(Criteria.where("kcal").is(kaul).and("monthAge").is(month).and("type").is(1)), BabyConfigModel.class);
  2197 + //6-11月热量
  2198 + data.put("rl",babyConfigModel1.getContentOne());
  2199 + }
  2200 + //营养需求
  2201 + data.put("yyxq",babyConfigModel.getContentFour());
  2202 + }
  2203 + else if (month < 37)
  2204 + {
  2205 + List<Map<String,Object>> list = new ArrayList<>();
  2206 + double kcal = 0;
  2207 + if (month < 36)
  2208 + {
  2209 + kcal = 89 * Double.parseDouble(checkModel.getWeight()) - 100 + 20;
  2210 + }
  2211 + else
  2212 + {
  2213 + //男童:88.5-61.9×年龄(岁)+PA[26.7×体重(kg)+903×身长(m)]+20kcal/day
  2214 + // PA=1.26
  2215 + //女童:135.3-30.8×年龄(岁)+PA[10×体重(kg)+934×身长(m)]+20kcal/day
  2216 + //PA=1.31
  2217 + if (model.getSex() == 1)
  2218 + {
  2219 + kcal = 88.5-61.9*3+1.26*(26.7*Double.parseDouble(checkModel.getWeight()) +903*(Double.parseDouble(checkModel.getHeight())/100))+20;
  2220 + }
  2221 + else {
  2222 + kcal = 135.3-30.8*3+1.31*(10*Double.parseDouble(checkModel.getWeight()) +934*(Double.parseDouble(checkModel.getHeight())/100))+20;
  2223 + }
  2224 + }
  2225 + kcal = getKaul(kcal);
  2226 + List<BabyConfigModel> configModels = mongoTemplate.find(Query.query(Criteria.where("kcal").is(kcal).and("status").is(kaupEvaluate).and("type").is(3)), BabyConfigModel.class);
  2227 + if (CollectionUtils.isNotEmpty(configModels) && configModels.size() == 3)
  2228 + {
  2229 + for (BabyConfigModel configModel : configModels)
  2230 + {
  2231 + Map<String,Object> map = new HashMap<>();
  2232 + map.put("title",configModel.getTitle());
  2233 + map.put("contents",configModel.getContentOne());
  2234 + list.add(map);
  2235 + }
  2236 + data.put("foods",list);
  2237 + }
  2238 + //type; //0 0-11月龄 1 0-11月热量计算 2 12-36月龄 3 12-36月热量计算 4.12--36喂养指南
  2239 + BabyConfigModel babyConfigModel1 = mongoTemplate.findOne(Query.query(Criteria.where("monthAge").is(month).and("type").is(2)), BabyConfigModel.class);
  2240 +
  2241 + //各月龄饮食指南[按月获取 12-36]
  2242 + data.put("yszl",babyConfigModel1.getContentOne());
  2243 +
  2244 + BabyConfigModel wyconfig = mongoTemplate.findOne(Query.query(Criteria.where("monthAge").is(month).and("status").is(kaupEvaluate).and("type").is(4)), BabyConfigModel.class);
  2245 + //喂养指南
  2246 + data.put("yszl",wyconfig.getContentOne());
  2247 +
  2248 + //每日所需营养素
  2249 + data.put("yys",getYys(month));
  2250 + }
  2251 + }
  2252 +
  2253 + return new BaseObjectResponse().setData(data).setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功");
  2254 + }
  2255 +
  2256 + private List<String> getYys(int month){
  2257 + List<String> list = new ArrayList<>();
  2258 +
  2259 + if (month < 36)
  2260 + {
  2261 + list.add("碳水化合物:总能量的50-70%");
  2262 + list.add("蛋白质:总能量的7-20%,平均每日约0.96g/kg");
  2263 + list.add("脂肪:总能量的20-35%");
  2264 + list.add("n-6:总能量的4-8%");
  2265 + list.add("N-3:总能量的1%");
  2266 + list.add("无机物:钙的推荐摄入量为500mg,磷的推荐摄入量为500mg,钠的充分摄入为0.7g,氯的充分摄入量为1.1g,钾的充分摄入量为1.7g,镁的推荐摄入量为75mg,铁的推荐摄入量为6mg,锌的推荐摄入量为3mg,铜的推荐摄入量为290 μg,氟的充分摄入量为0.6mg,猛的充分摄入量为1.4mg,碘的推荐摄入量为80 μg,硒的推荐摄入量为20 μg");
  2267 + list.add("维生素:维生素A的推荐摄入量为300 μgRE,维生素D的充分摄入量为5 μg,维生素E的充分摄入量为5mg α-TE,维生素K的充分摄入量为25μg,维生素C的推荐摄入量为40mg,维生素B1的推荐摄入量为0.5mg,维生素B2(核黄素)的0.6mg,维生素B3烟酸的推荐摄入量为6mgNE,尼克酸的上限摄入量为10mg,尼克酰胺的上限摄入量为180mg,维生素B6的推荐摄入量0.6mg,叶酸的推荐摄入量为150μg DFE,维生素B12的推荐摄入量为0.9μg,泛酸的充分摄入量为2mg,维生素H的充分摄入量9μg");
  2268 + list.add("水分:1岁120-135ml/kg/day;2岁115-125ml/kg/day");
  2269 + }
  2270 + else
  2271 + {
  2272 + list.add("碳水化合物:总能量的55-70%");
  2273 + list.add("蛋白质:总能量的7-20%,平均每日约0.88g/kg");
  2274 + list.add("脂肪:总能量的15-30%");
  2275 + list.add("n-6:总能量的4-8%");
  2276 + list.add("n-3:总能量的1%");
  2277 + list.add("无机物:钙的推荐摄入量为600mg,磷的推荐摄入量为500mg,钠的充分摄入量为0.9g,氯的充分摄入量为1.4g,钾的充分摄入量为2.3g,镁的推荐摄入量为100mg,铁的推荐摄入量7mg,锌的推荐摄入量为4mg,铜的推荐摄入量为330 μg,氟的充分摄入量为0.8mg,猛的充分摄入量为2.0mg,碘的推荐摄入量为90 μg,硒的推荐摄入量为25 μg");
  2278 + list.add("维生素:维生素A的推荐摄入量为300 μgRE,维生素D的充分摄入量为5 μg,维生素E的充分摄入量为6mg α-TE,维生素K的充分摄入量为30μg,维生素C的推荐摄入量为40mg,维生素B1的推荐摄入量为0.5mg,维生素B2(核黄素)的0.7mg,维生素B3烟酸的推荐摄入量为7mgNE,尼克酸的上限摄入量为10mg,尼克酰胺的上限摄入量为250mg,维生素B6的推荐摄入量0.7mg,叶酸的推荐摄入量为180μg DFE,维生素B12的推荐摄入量为1.1μg,泛酸的充分摄入量为3mg,维生素H的充分摄入量11μg");
  2279 + list.add("水分:90-100ml/kg/day");
  2280 + }
  2281 +
  2282 + return list;
  2283 + }
  2284 +
  2285 + private Double getKaul(Double kcal) {
  2286 + int k = (int)(kcal/100)*100;
  2287 + Double d = Math.floor(k);
  2288 + Double md = d + 50;
  2289 + if (md > kcal) {
  2290 + return d;
  2291 + } else {
  2292 + return md;
  2293 + }
2082 2294 }
2083 2295 }