Commit 5d5b2575b3e452cfd425f76467be8fbbcf7cdff5

Authored by liquanyu
1 parent b9bc73afd1

高危诊断配置

Showing 3 changed files with 182 additions and 33 deletions

platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntenatalExaminationFacade.java View file @ 5d5b257
... ... @@ -2717,19 +2717,138 @@
2717 2717 if (mapItems != null && mapItems.size() > 0)
2718 2718 {
2719 2719  
2720   - Integer age = DateUtil.getAge(patients.getBirth(), new Date());
2721   - //年龄高危匹配
2722   - List<DiagnoseItemModel> detailItems = mapItems.get(DiagnoseEnums.DiagnoseItemEnums.age.getId());
2723   - if (CollectionUtils.isNotEmpty(detailItems))
  2720 + if (patients != null && patients.getBirth() != null)
2724 2721 {
2725   - for (DiagnoseItemModel item : detailItems)
  2722 + Double age = (double)DateUtil.getAge(patients.getBirth(), new Date());
  2723 + //年龄高危匹配
  2724 + List<DiagnoseItemModel> detailItemsAge = mapItems.get(DiagnoseEnums.DiagnoseItemEnums.age.getId());
  2725 + if (CollectionUtils.isNotEmpty(detailItemsAge))
2726 2726 {
2727   - if (compare(item,age) && CollectionUtils.isNotEmpty(item.getRiskIds()))
  2727 + for (DiagnoseItemModel item : detailItemsAge)
2728 2728 {
2729   - list.addAll(item.getRiskIds());
  2729 + if (compare(item,age) && CollectionUtils.isNotEmpty(item.getRiskIds()))
  2730 + {
  2731 + list.addAll(item.getRiskIds());
  2732 + }
2730 2733 }
2731 2734 }
2732 2735 }
  2736 +
  2737 + if (StringUtils.isNotEmpty(antExcAddRequest.getBaricIndex()))
  2738 + {
  2739 + Double baricIndex = Double.parseDouble(antExcAddRequest.getBaricIndex());
  2740 +
  2741 + //BMI(体重指数)高危匹配
  2742 + List<DiagnoseItemModel> detailItemsAge = mapItems.get(DiagnoseEnums.DiagnoseItemEnums.bmi.getId());
  2743 + if (CollectionUtils.isNotEmpty(detailItemsAge))
  2744 + {
  2745 + for (DiagnoseItemModel item : detailItemsAge)
  2746 + {
  2747 + if (compare(item,baricIndex) && CollectionUtils.isNotEmpty(item.getRiskIds()))
  2748 + {
  2749 + list.addAll(item.getRiskIds());
  2750 + }
  2751 + }
  2752 + }
  2753 + }
  2754 +
  2755 +
  2756 + if (StringUtils.isNotEmpty(antExcAddRequest.getHeight()))
  2757 + {
  2758 + Double height = Double.parseDouble(antExcAddRequest.getHeight());
  2759 +
  2760 + //身高高危匹配
  2761 + List<DiagnoseItemModel> detailItemsAge = mapItems.get(DiagnoseEnums.DiagnoseItemEnums.height.getId());
  2762 + if (CollectionUtils.isNotEmpty(detailItemsAge))
  2763 + {
  2764 + for (DiagnoseItemModel item : detailItemsAge)
  2765 + {
  2766 + if (compare(item,height) && CollectionUtils.isNotEmpty(item.getRiskIds()))
  2767 + {
  2768 + list.addAll(item.getRiskIds());
  2769 + }
  2770 + }
  2771 + }
  2772 + }
  2773 +
  2774 + if (antExcAddRequest.getAbortion() != null)
  2775 + {
  2776 + Double abortion = (double)antExcAddRequest.getAbortion();
  2777 +
  2778 + //孕产史高危匹配
  2779 + List<DiagnoseItemModel> detailItemsAge = mapItems.get(DiagnoseEnums.DiagnoseItemEnums.ycs.getId());
  2780 + if (CollectionUtils.isNotEmpty(detailItemsAge))
  2781 + {
  2782 + //流产次
  2783 + for (DiagnoseItemModel item : detailItemsAge)
  2784 + {
  2785 + if ("28".equals(item.getValueOne()) && compare(item,abortion) && CollectionUtils.isNotEmpty(item.getRiskIds()))
  2786 + {
  2787 + list.addAll(item.getRiskIds());
  2788 + }
  2789 + }
  2790 + }
  2791 + }
  2792 +
  2793 +
  2794 + if (antExcAddRequest.getProdTime() != null)
  2795 + {
  2796 + Double prodTime = (double)antExcAddRequest.getProdTime();
  2797 + //孕产史高危匹配
  2798 + List<DiagnoseItemModel> detailItemsAge = mapItems.get(DiagnoseEnums.DiagnoseItemEnums.ycs.getId());
  2799 + if (CollectionUtils.isNotEmpty(detailItemsAge))
  2800 + {
  2801 + //产次
  2802 + for (DiagnoseItemModel item : detailItemsAge)
  2803 + {
  2804 + if ("29".equals(item.getValueOne()) && compare(item,prodTime) && CollectionUtils.isNotEmpty(item.getRiskIds()))
  2805 + {
  2806 + list.addAll(item.getRiskIds());
  2807 + }
  2808 + }
  2809 + }
  2810 + }
  2811 +
  2812 +
  2813 + if (antExcAddRequest.getYinchan() != null)
  2814 + {
  2815 + Double yinchan = (double)antExcAddRequest.getYinchan();
  2816 + //孕产史高危匹配
  2817 + List<DiagnoseItemModel> detailItemsAge = mapItems.get(DiagnoseEnums.DiagnoseItemEnums.ycs.getId());
  2818 + if (CollectionUtils.isNotEmpty(detailItemsAge))
  2819 + {
  2820 + //引产次
  2821 + for (DiagnoseItemModel item : detailItemsAge)
  2822 + {
  2823 + if ("30".equals(item.getValueOne()) && compare(item,yinchan) && CollectionUtils.isNotEmpty(item.getRiskIds()))
  2824 + {
  2825 + list.addAll(item.getRiskIds());
  2826 + }
  2827 + }
  2828 + }
  2829 + }
  2830 +
  2831 +
  2832 + if (antExcAddRequest.getYinchan() != null)
  2833 + {
  2834 + Double planedProd = (double)antExcAddRequest.getPlanedProd();
  2835 + //孕产史高危匹配
  2836 + List<DiagnoseItemModel> detailItemsAge = mapItems.get(DiagnoseEnums.DiagnoseItemEnums.ycs.getId());
  2837 + if (CollectionUtils.isNotEmpty(detailItemsAge))
  2838 + {
  2839 + //剖宫产次
  2840 + for (DiagnoseItemModel item : detailItemsAge)
  2841 + {
  2842 + if ("31".equals(item.getValueOne()) && compare(item,planedProd) && CollectionUtils.isNotEmpty(item.getRiskIds()))
  2843 + {
  2844 + list.addAll(item.getRiskIds());
  2845 + }
  2846 + }
  2847 + }
  2848 + }
  2849 +
  2850 +
  2851 +
2733 2852 }
2734 2853  
2735 2854 return new BaseObjectResponse().setData(list).setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功");
2736 2855  
2737 2856  
2738 2857  
2739 2858  
2740 2859  
2741 2860  
2742 2861  
... ... @@ -2742,28 +2861,28 @@
2742 2861 * @param calValue 被计算值
2743 2862 * @return
2744 2863 */
2745   - private boolean compare(String expId,String value,Integer calValue)
  2864 + private boolean compare(String expId,String value,Double calValue)
2746 2865 {
2747 2866 Integer id = Integer.parseInt(expId);
2748 2867 switch (id)
2749 2868 {
2750 2869 case 1 :
2751   - return calValue > Integer.parseInt(value);
  2870 + return calValue > Double.parseDouble(value);
2752 2871 case 2 :
2753   - return calValue >= Integer.parseInt(value) ;
  2872 + return calValue >= Double.parseDouble(value) ;
2754 2873 case 3 :
2755   - return calValue < Integer.parseInt(value);
  2874 + return calValue < Double.parseDouble(value);
2756 2875 case 4 :
2757   - return calValue <= Integer.parseInt(value) ;
  2876 + return calValue <= Double.parseDouble(value) ;
2758 2877 case 5 :
2759   - return calValue == Integer.parseInt(value);
  2878 + return calValue == Double.parseDouble(value);
2760 2879 case 6 :
2761   - return Integer.parseInt(value) != calValue;
  2880 + return Double.parseDouble(value) != calValue;
2762 2881 default: return false;
2763 2882 }
2764 2883 }
2765 2884  
2766   - private boolean compare(DiagnoseItemModel item,Integer calValue)
  2885 + private boolean compare(DiagnoseItemModel item,Double calValue)
2767 2886 {
2768 2887 String expId1 = item.getValueOne();
2769 2888 String value1 = item.getValueTwo();
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/DiagnoseConfigFacde.java View file @ 5d5b257
1 1 package com.lyms.platform.operate.web.facade;
2 2  
  3 +import com.lyms.platform.biz.service.BasicConfigService;
3 4 import com.lyms.platform.biz.service.DiagnoseConfigService;
4 5 import com.lyms.platform.common.constants.ErrorCodeConstants;
5 6 import com.lyms.platform.common.enums.OptActionEnums;
  7 +import com.lyms.platform.common.enums.RiskDefaultTypeEnum;
6 8 import com.lyms.platform.common.result.BaseObjectResponse;
7 9 import com.lyms.platform.common.result.BaseResponse;
8 10 import com.lyms.platform.common.utils.JsonUtil;
9 11  
... ... @@ -10,8 +12,10 @@
10 12 import com.lyms.platform.operate.web.request.DiagnoseConfigRequest;
11 13 import com.lyms.platform.operate.web.result.DiagnoseConfigResult;
12 14 import com.lyms.platform.operate.web.result.DiagnoseItemResult;
  15 +import com.lyms.platform.pojo.BasicConfig;
13 16 import com.lyms.platform.pojo.DiagnoseConfigModel;
14 17 import com.lyms.platform.pojo.DiagnoseItemModel;
  18 +import com.lyms.platform.query.BasicConfigQuery;
15 19 import com.lyms.platform.query.DiagnoseConfigQuery;
16 20 import com.lyms.platform.query.DiagnoseItemsQuery;
17 21 import org.apache.commons.collections.CollectionUtils;
... ... @@ -38,6 +42,9 @@
38 42 @Autowired
39 43 private OperateLogFacade operateLogFacade;
40 44  
  45 + @Autowired
  46 + private BasicConfigService basicConfigService;
  47 +
41 48 /**
42 49 * 添加配置基础和项
43 50 * @param request
... ... @@ -198,6 +205,8 @@
198 205 DiagnoseItemsQuery diagnoseItemsQuery = new DiagnoseItemsQuery();
199 206 diagnoseItemsQuery.setConfigId(configModel.getId());
200 207  
  208 + BasicConfigQuery basicConfigQuery = new BasicConfigQuery();
  209 +
201 210 List<DiagnoseItemModel> diagnoseItemModels = diagnoseConfigService.queryDiagnoseItems(diagnoseItemsQuery);
202 211 if (CollectionUtils.isNotEmpty(diagnoseItemModels) && CollectionUtils.isNotEmpty(configModel.getConfigs()))
203 212 {
... ... @@ -210,6 +219,40 @@
210 219 {
211 220 DiagnoseItemResult dr = new DiagnoseItemResult();
212 221 dr.convertToResult(diagnose);
  222 +
  223 + if (CollectionUtils.isNotEmpty(diagnose.getRiskIds()))
  224 + {
  225 + List<Map<String,String>> list = new ArrayList<>();
  226 +
  227 + for (String rid : diagnose.getRiskIds())
  228 + {
  229 + basicConfigQuery.setId(rid);
  230 + List<BasicConfig> basicConfigs = basicConfigService.queryBasicConfig(basicConfigQuery);
  231 + Map<String,String> map = new HashMap<>();
  232 + map.put("id", basicConfigs.get(0).getId());
  233 + map.put("name", basicConfigs.get(0).getName());
  234 + map.put("code", basicConfigs.get(0).getCode());
  235 +
  236 + basicConfigQuery.setId(basicConfigs.get(0).getParentId());
  237 + List<BasicConfig> basicConfigs2 = basicConfigService.queryBasicConfig(basicConfigQuery);
  238 + if (CollectionUtils.isNotEmpty(basicConfigs2)) {
  239 + String name = basicConfigs2.get(0).getName();
  240 + if (name.indexOf("黄色") > -1) {
  241 + name = "黄色";
  242 + } else if (name.indexOf("橙色") > -1) {
  243 + name = "橙色";
  244 + } else if (name.indexOf("红色") > -1) {
  245 + name = "红色";
  246 + } else if (name.indexOf("紫色") > -1) {
  247 + name = "紫色";
  248 + }
  249 + map.put("color", "risk_" + RiskDefaultTypeEnum.getColor(name));
  250 + }
  251 +
  252 + list.add(map);
  253 + }
  254 + }
  255 +
213 256 itemModels.add(dr);
214 257 }
215 258 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/DiagnoseItemResult.java View file @ 5d5b257
... ... @@ -4,6 +4,7 @@
4 4 import com.lyms.platform.pojo.DiagnoseItemModel;
5 5  
6 6 import java.util.List;
  7 +import java.util.Map;
7 8  
8 9  
9 10 /**
10 11  
11 12  
12 13  
13 14  
... ... @@ -11,36 +12,23 @@
11 12 */
12 13 public class DiagnoseItemResult implements IBasicResultConvert<DiagnoseItemResult,DiagnoseItemModel> {
13 14  
14   -// private String id;
15   -// private String configId;
16   -// private String hospitalId;
17   -// private String parentId;
18   - //是否启用 0停用 1启用
19   -// private Integer enable;
  15 +
20 16 private String valueOne;
21 17 private String valueTwo;
22 18 private String valueThree;
23 19 private String valueFour;
24 20 private String valueFive;
25   -// //权重
26   -// private Integer weight;
27 21  
28 22 //高危id
29   - private List<String> riskIds;
  23 + private List<Map<String,String>> riskIds;
30 24  
31 25 @Override
32 26 public DiagnoseItemResult convertToResult(DiagnoseItemModel model) {
33   -// setId(model.getId());
34   -// setConfigId(model.getConfigId());
35   -// setHospitalId(model.getHospitalId());
36   -// setParentId(model.getParentId());
37   -// setEnable(model.getEnable());
38 27 setValueOne(model.getValueOne());
39 28 setValueTwo(model.getValueTwo());
40 29 setValueThree(model.getValueThree());
41 30 setValueFour(model.getValueFour());
42 31 setValueFive(model.getValueFive());
43   - setRiskIds(model.getRiskIds());
44 32 return this;
45 33 }
46 34  
47 35  
... ... @@ -86,12 +74,11 @@
86 74 this.valueFive = valueFive;
87 75 }
88 76  
89   -
90   - public List<String> getRiskIds() {
  77 + public List<Map<String, String>> getRiskIds() {
91 78 return riskIds;
92 79 }
93 80  
94   - public void setRiskIds(List<String> riskIds) {
  81 + public void setRiskIds(List<Map<String, String>> riskIds) {
95 82 this.riskIds = riskIds;
96 83 }
97 84 }