Zhaops %!s(int64=6) %!d(string=hai) anos
pai
achega
c3be0e71d5
Modificáronse 1 ficheiros con 33 adicións e 11 borrados
  1. 33 11
      icss-service/src/main/java/com/diagbot/facade/PushFacade.java

+ 33 - 11
icss-service/src/main/java/com/diagbot/facade/PushFacade.java

@@ -84,12 +84,14 @@ public class PushFacade {
         searchData.setAge(pushVO.getAge());
         searchData.setSymptom(pushVO.getSymptom());
         searchData.setVital(pushVO.getVital());
-
-
         searchData.setPacs(pushVO.getPacs());
         searchData.setPast(pushVO.getPast());
         searchData.setOther(pushVO.getOther());
         searchData.setDiag(pushVO.getDiag());
+        searchData.setFeatureType(pushVO.getFeatureType());
+        searchData.setSysCode("1");
+        searchData.setLength(10);
+
         switch (pushVO.getSex()) {
             case 1:
                 searchData.setSex("M");
@@ -105,25 +107,26 @@ public class PushFacade {
         //化验项映射,转公表
         if (pushVO.getLis().size() > 0) {
             Map<String, Map<String, String>> lisConfigMap = lisMappingFacade.getLisMapping_NotEmptyItemName();
+            Map<String, String> lisConfigWithEmptyItemNameMap = lisMappingFacade.getLisConfig_EmptyItemName();
             for (LisResultVO lisResultVO : pushVO.getLis()) {
-                //source=0 icss页面数据,source=1 外部导入数据
+                //source=0 icss页面数据,source=1 外部导入数据,外部导入数据不处理
                 if (!lisResultVO.getSource().equals(LisSourceEnum.Inner.getKey())) {
                     continue;
                 }
-                if (StringUtil.isNotBlank(lisResultVO.getName()) && lisConfigMap.get(lisResultVO.getName()) != null) {
-                    Map<String, String> detailMap = lisConfigMap.get(lisResultVO.getName());
-                    if (StringUtil.isNotBlank(lisResultVO.getDetailName()) && StringUtil.isNotBlank(detailMap.get(lisResultVO.getDetailName()))) {
-                        lisResultVO.setUniqueName(detailMap.get(lisResultVO.getDetailName()));
+                if (StringUtil.isNotBlank(lisResultVO.getName())) {
+                    if (StringUtil.isNotBlank(lisResultVO.getDetailName())) {
+                        Map<String, String> detailMap = lisConfigMap.get(lisResultVO.getName());
+                        if (StringUtil.isNotBlank(detailMap.get(lisResultVO.getDetailName()))) {
+                            lisResultVO.setUniqueName(detailMap.get(lisResultVO.getDetailName()));
+                        }
+                    } else {
+                        lisResultVO.setUniqueName(lisConfigWithEmptyItemNameMap.get(lisResultVO.getName()));
                     }
                 }
             }
         }
-
         List<LisResult> lisResultList = BeanUtil.listCopyTo(pushVO.getLis(), LisResult.class);
         searchData.setLisArr(lisResultList);
-        searchData.setFeatureType(pushVO.getFeatureType());
-        searchData.setSysCode("1");
-        searchData.setLength(10);
 
         Response<ResponseData> res = bigDataServiceClient.bayesPageData(searchData);
         if (null == res || null == res.getData()) {
@@ -511,6 +514,7 @@ public class PushFacade {
         }
         if (featureTypeSet.contains(String.valueOf(QuestionTypeEnum.Disease.getKey()))) {
             List<FeatureRate> dis = data.getDis();
+            List<String> disNameList = dis.stream().map(disease -> disease.getFeatureName()).collect(Collectors.toList());
             Map<String, List<String>> retDisMap = new LinkedHashMap<>();
             Map<String, String> disMap = tranServiceClient.getDiseaseIcdByHosCode(hosCodeVO).data;
 
@@ -534,6 +538,24 @@ public class PushFacade {
                     retDisMap.put(disClass, retDisList);
                 }
             }
+            //警惕
+            SearchData searchData = new SearchData();
+            searchData.setDiag(String.join(",", disNameList));
+            Response<GdbResponse> graphRes = graphServiceClient.highRiskPageData(searchData);
+            Map<String, String> graphResult = graphRes.getData().getResult();
+            if (graphResult.size() > 0) {
+                List<String> highRiskDisList = Lists.newLinkedList();
+                for (Map.Entry<String, String> entry : graphResult.entrySet()) {
+                    if (entry.getValue().equals("1")) {
+                        if (isDocking) {
+                            highRiskDisList.add(disMap.get(entry.getKey()));
+                        } else {
+                            highRiskDisList.add(entry.getKey());
+                        }
+                    }
+                }
+                retDisMap.put("警惕", highRiskDisList);
+            }
             pushEMRDTO.setDis(retDisMap);
         }
         return pushEMRDTO;