zhoutg 4 years ago
parent
commit
aa755d0e4a

+ 2 - 2
src/main/java/com/diagbot/aggregate/PushNewAggregate.java

@@ -5,7 +5,7 @@ import com.diagbot.dto.PushBaseDTO;
 import com.diagbot.dto.PushDTO;
 import com.diagbot.dto.PushNewDTO;
 import com.diagbot.dto.WordCrfDTO;
-import com.diagbot.enums.DiseaseTypeEnum;
+import com.diagbot.enums.DiagnoseTypeEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.process.PushProcess;
@@ -108,7 +108,7 @@ public class PushNewAggregate {
                     pushBaseDTO.setName(r);
                     return pushBaseDTO;
                 }).collect(Collectors.toList());
-                dis.put(DiseaseTypeEnum.possibleDis.getName(), pushBaseDTOList);
+                dis.put(DiagnoseTypeEnum.bigDataPush.getName(), pushBaseDTOList);
             }
         } catch (Exception e) {
             log.error("【大数据推理出错】", e);

+ 4 - 1
src/main/java/com/diagbot/enums/DiagnoseTypeEnum.java

@@ -13,7 +13,10 @@ public enum DiagnoseTypeEnum implements KeyedNamed {
 
     protocol(2, "拟诊"),
     definite(3, "确诊"),
-    vigilant(4, "警惕");
+    vigilant(4, "警惕"),
+
+    bigDataPush(99, "大数据推送诊断"),
+    possibleUnion(100, "可能诊断");
 
     @Setter
     private int key;

+ 2 - 1
src/main/java/com/diagbot/enums/RedisEnum.java

@@ -22,7 +22,8 @@ public enum RedisEnum implements KeyedNamed {
     diseaseType(2, "diseaseType:"),
     allRule(10, "allRule:"),
     allBaseDiagnose(11, "allBaseDiagnose"),
-    hospitalPushType(12, "hospitalPushType");
+    hospitalPushType(12, "hospitalPushType"),
+    pushVersion(13, "pushVersion");
 
     @Setter
     private int key;

+ 13 - 3
src/main/java/com/diagbot/facade/CacheFacade.java

@@ -3,8 +3,10 @@ package com.diagbot.facade;
 import com.diagbot.dto.DictionaryInfoDTO;
 import com.diagbot.enums.RedisEnum;
 import com.diagbot.enums.StandConvertEnum;
+import com.diagbot.util.EntityUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.RedisUtil;
+import com.google.common.collect.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.stereotype.Component;
@@ -126,10 +128,18 @@ public class CacheFacade {
      */
     public void loadHostipalPushType() {
         redisUtil.delete(RedisEnum.hospitalPushType.getName());
-        List<DictionaryInfoDTO> listByGroupType = klDictionaryInfoFacade.getListByGroupType(100);
+        redisUtil.delete(RedisEnum.pushVersion.getName());
+        List<DictionaryInfoDTO> listByGroupType = klDictionaryInfoFacade.getListByGroupType(Lists.newArrayList(100,101));
         if (ListUtil.isNotEmpty(listByGroupType)) {
-            Map<String, Object> map = listByGroupType.stream().collect(Collectors.toMap(k -> k.getName(), v -> v.getVal(), (v1, v2) -> (v2)));
-            redisUtil.putHashMap(RedisEnum.hospitalPushType.getName(), map);
+            Map<Long, List<DictionaryInfoDTO>> map = EntityUtil.makeEntityListMap(listByGroupType, "groupType");
+            if (map.get(Long.valueOf(100)) != null) {
+                redisUtil.putHashMap(RedisEnum.hospitalPushType.getName(),
+                        map.get(Long.valueOf(100)).stream().collect(Collectors.toMap(k -> k.getName(), v -> v.getVal(), (v1, v2) -> (v2))));
+            }
+            if (map.get(Long.valueOf(101)) != null) {
+                redisUtil.putHashMap(RedisEnum.pushVersion.getName(),
+                        map.get(Long.valueOf(101)).stream().collect(Collectors.toMap(k -> k.getName(), v -> v.getVal(), (v1, v2) -> (v2))));
+            }
         }
     }
 }

+ 15 - 1
src/main/java/com/diagbot/facade/KlDictionaryInfoFacade.java

@@ -48,7 +48,6 @@ public class KlDictionaryInfoFacade extends KlDictionaryInfoServiceImpl {
         return EntityUtil.makeEntityListMap(listRes, "groupType");
     }
 
-
     /**
      * 返回指定字典信息
      *
@@ -63,4 +62,19 @@ public class KlDictionaryInfoFacade extends KlDictionaryInfoServiceImpl {
         List<DictionaryInfoDTO> listRes = BeanUtil.listCopyTo(list, DictionaryInfoDTO.class);
         return listRes;
     }
+
+    /**
+     * 返回指定字典信息
+     *
+     * @param groupType
+     * @return
+     */
+    public List<DictionaryInfoDTO> getListByGroupType(List<Integer> groupType) {
+        List<KlDictionaryInfo> list = this.list(new QueryWrapper<KlDictionaryInfo>()
+                .in("group_type", groupType)
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .orderByAsc("group_type", "order_no"));
+        List<DictionaryInfoDTO> listRes = BeanUtil.listCopyTo(list, DictionaryInfoDTO.class);
+        return listRes;
+    }
 }

+ 79 - 10
src/main/java/com/diagbot/facade/PushFacade.java

@@ -1,16 +1,19 @@
 package com.diagbot.facade;
 
 import com.diagbot.client.PushNewServiceClient;
+import com.diagbot.dto.PushBaseDTO;
 import com.diagbot.dto.PushDTO;
 import com.diagbot.dto.PushNewDTO;
 import com.diagbot.dto.PushPlanDTO;
 import com.diagbot.dto.WordCrfDTO;
+import com.diagbot.enums.DiagnoseTypeEnum;
 import com.diagbot.enums.DiseasePushTypeEnum;
 import com.diagbot.enums.RedisEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.process.PushProcess;
 import com.diagbot.util.CoreUtil;
+import com.diagbot.util.ListUtil;
 import com.diagbot.util.ParamUtil;
 import com.diagbot.util.RedisUtil;
 import com.diagbot.util.StringUtil;
@@ -18,12 +21,15 @@ import com.diagbot.vo.PushNewVO;
 import com.diagbot.vo.PushPlanVO;
 import com.diagbot.vo.PushVO;
 import com.diagbot.vo.StandConvert;
+import com.google.common.collect.Lists;
 import io.github.lvyahui8.spring.facade.DataFacade;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import java.util.HashMap;
+import java.util.Iterator;
 import java.util.LinkedHashMap;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -49,6 +55,23 @@ public class PushFacade {
     @Autowired
     RedisUtil redisUtil;
 
+    /**
+     * 推送fac(兼容新版和5.0)
+     *
+     * @param pushVO
+     * @return
+     */
+    public PushDTO pushFac(PushVO pushVO) {
+        String pushVersion = redisUtil.getByKeyAndField(RedisEnum.pushVersion.getName(), String.valueOf(pushVO.getHospitalId()));
+        if (StringUtil.isBlank(pushVersion)) {
+            // 使用5.0推送
+            return processAggreate(pushVO);
+        } else {
+            // 使用新版推送
+            return pushNewFac(pushVO);
+        }
+    }
+
     public PushDTO processAggreate(PushVO pushVo) {
         // 年龄容错处理
         if (pushVo.getAgeNum() == null) {
@@ -90,7 +113,8 @@ public class PushFacade {
      * @param
      * @return
      */
-    public PushDTO pushFac(PushVO pushVo) {
+    public PushDTO pushNewFac(PushVO pushVo) {
+        PushDTO pushDTO = new PushDTO();
         Map<String, Object> debug = new LinkedHashMap<>();
 
         // 模型处理数据
@@ -106,19 +130,25 @@ public class PushFacade {
         CoreUtil.getDebugStr(standStart, "标准词转换耗时", debug);
         ParamUtil.dealLis(wordCrfDTO.getLis());
 
-        PushDTO pushDTO = null;
-        try {
-            Map<String, Object> invokeParams = new HashMap<>();
-            invokeParams.put("wordCrfDTO", wordCrfDTO);
-            invokeParams.put("pushNewVO", generatePushVo(wordCrfDTO));
-            pushDTO = DataFacade.get("pushAll", invokeParams, PushDTO.class);
-        } catch (Exception e) {
-            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "推送服务出错" + e.getMessage());
+        // 是否有界面诊断
+        boolean hasDiseaseFlag = ListUtil.isNotEmpty(wordCrfDTO.getDiag()) ? true : false;
+
+        // 无界面诊断,走诊断依据和大数据推理
+        if (!hasDiseaseFlag) {
+            try {
+                Map<String, Object> invokeParams = new HashMap<>();
+                invokeParams.put("wordCrfDTO", wordCrfDTO);
+                invokeParams.put("pushNewVO", generatePushVo(wordCrfDTO));
+                pushDTO = DataFacade.get("pushAll", invokeParams, PushDTO.class);
+            } catch (Exception e) {
+                throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "推送服务出错" + e.getMessage());
+            }
+            // 诊断去重、合并处理
+            dealDisease(pushDTO);
         }
 
         // 通过诊断反推
         long reverseStart = System.currentTimeMillis();
-        // TODO 处理诊断信息
         pushProcess.process(pushDTO, pushVo, wordCrfDTO);
         CoreUtil.getDebugStr(reverseStart, "反推业务耗时", debug);
 
@@ -128,6 +158,45 @@ public class PushFacade {
         return pushDTO;
     }
 
+    /**
+     * 诊断去重、合并处理
+     * @param pushDTO
+     */
+    public void dealDisease(PushDTO pushDTO) {
+        Map<String, List<PushBaseDTO>> dis = pushDTO.getDis();
+        List<PushBaseDTO> possibleUnion = Lists.newArrayList(); // 可能诊断 = 确诊 + 拟诊 + 大数据推送诊断
+        List<PushBaseDTO> definite = dis.get(DiagnoseTypeEnum.definite.getName()); // 确诊
+        List<PushBaseDTO> protocol = dis.get(DiagnoseTypeEnum.protocol.getName()); // 拟诊
+        List<PushBaseDTO> bigDataPush = dis.get(DiagnoseTypeEnum.bigDataPush.getName()); // 大数据推送诊断
+        // 合并可能诊断
+        if (ListUtil.isNotEmpty(definite)) {
+            possibleUnion.addAll(definite);
+        }
+        if (ListUtil.isNotEmpty(protocol)) {
+            possibleUnion.addAll(protocol);
+        }
+        if (ListUtil.isNotEmpty(bigDataPush)) {
+            possibleUnion.addAll(bigDataPush);
+        }
+        // 去重
+        if (ListUtil.isNotEmpty(possibleUnion)) {
+            List<String> diseaseNameList = Lists.newArrayList();
+            Iterator<PushBaseDTO> it = possibleUnion.iterator();
+            while (it.hasNext()) {
+                PushBaseDTO bean = it.next();
+                if (diseaseNameList.contains(bean.getName())) {
+                    it.remove();
+                } else {
+                    diseaseNameList.add(bean.getName());
+                }
+            }
+            // 添加可能诊断
+            dis.put(DiagnoseTypeEnum.possibleUnion.getName(), possibleUnion);
+            // 如果需要删除诊断,就用以下代码
+            // dis.put(DiagnoseTypeEnum.possibleUnion.getName(), BeanUtil.listCopyTo(possibleUnion, PushDTO.class));
+        }
+    }
+
     /**
      * 生成新版推送入参
      *

+ 72 - 86
src/main/java/com/diagbot/process/PushProcess.java

@@ -50,7 +50,6 @@ import com.diagbot.vo.IcssVo;
 import com.diagbot.vo.NeoPushVO;
 import com.diagbot.vo.PushVO;
 import com.diagbot.vo.ReverseVO;
-import com.diagbot.vo.StandConvert;
 import com.diagbot.vo.neoPushEntity.Diag;
 import com.diagbot.vo.neoPushEntity.DiagVo;
 import com.google.common.collect.Lists;
@@ -67,7 +66,6 @@ import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
-import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -117,7 +115,7 @@ public class PushProcess {
         Map<String, Integer> diag_sign = new LinkedHashMap<>();
         PushDTO pushDTO = new PushDTO();
         IcssVo icssVo = pushVo2IcssVo(pushVo);
-//        String s = JSONObject.toJSONString(icssVo);
+        //        String s = JSONObject.toJSONString(icssVo);
         if ((StringUtils.isNotBlank(icssVo.getChief()) && icssVo.getChief().trim().equals("呼吸困难"))
                 || (StringUtils.isNotBlank(icssVo.getSymptom()) && icssVo.getSymptom().trim().equals("呼吸困难"))) {
             icssVo.setChief("呼吸困难。");
@@ -176,15 +174,15 @@ public class PushProcess {
             DiseaseItemVO diseaseItemVO = new DiseaseItemVO();
             diseaseItemVO.setDiseaseName(uniqueName);
             Map<Long, List<String>> items = klRelationFacade.getItemByDiseaseMap(diseaseItemVO);
-            if (MapUtils.isNotEmpty(items)){
-                if (ruleTypeList.contains("8") && ListUtil.isNotEmpty(items.get(PushRelationTypeEnum.DRUG.getKey()))){
+            if (MapUtils.isNotEmpty(items)) {
+                if (ruleTypeList.contains("8") && ListUtil.isNotEmpty(items.get(PushRelationTypeEnum.DRUG.getKey()))) {
                     pushDTO.setMedicines(items.get(PushRelationTypeEnum.DRUG.getKey()).stream().map(x -> {
                         PushBaseDTO pushBaseDTO = new PushBaseDTO();
                         pushBaseDTO.setName(x);
                         return pushBaseDTO;
                     }).collect(Collectors.toList()));
                 }
-                if (ruleTypeList.contains("9") && ListUtil.isNotEmpty(items.get(PushRelationTypeEnum.OPERATION.getKey()))){
+                if (ruleTypeList.contains("9") && ListUtil.isNotEmpty(items.get(PushRelationTypeEnum.OPERATION.getKey()))) {
                     pushDTO.setOperations(items.get(PushRelationTypeEnum.OPERATION.getKey()).stream().map(x -> {
                         PushBaseDTO pushBaseDTO = new PushBaseDTO();
                         pushBaseDTO.setName(x);
@@ -193,22 +191,22 @@ public class PushProcess {
                 }
             }
         }
-//        if (reverseInfoByDisName != null) {
-//            if (ruleTypeList.contains("8") && reverseInfoByDisName.containsKey(StaticTypeEnum.DRUG.getName())) {
-//                pushDTO.setMedicines(reverseInfoByDisName.get(StaticTypeEnum.DRUG.getName()).stream().map(x -> {
-//                    PushBaseDTO pushBaseDTO = new PushBaseDTO();
-//                    pushBaseDTO.setName(x);
-//                    return pushBaseDTO;
-//                }).collect(Collectors.toList()));
-//            }
-//            if (ruleTypeList.contains("9") && reverseInfoByDisName.containsKey(StaticTypeEnum.OPT.getName())) {
-//                pushDTO.setOperations(reverseInfoByDisName.get(StaticTypeEnum.OPT.getName()).stream().map(x -> {
-//                    PushBaseDTO pushBaseDTO = new PushBaseDTO();
-//                    pushBaseDTO.setName(x);
-//                    return pushBaseDTO;
-//                }).collect(Collectors.toList()));
-//            }
-//        }
+        //        if (reverseInfoByDisName != null) {
+        //            if (ruleTypeList.contains("8") && reverseInfoByDisName.containsKey(StaticTypeEnum.DRUG.getName())) {
+        //                pushDTO.setMedicines(reverseInfoByDisName.get(StaticTypeEnum.DRUG.getName()).stream().map(x -> {
+        //                    PushBaseDTO pushBaseDTO = new PushBaseDTO();
+        //                    pushBaseDTO.setName(x);
+        //                    return pushBaseDTO;
+        //                }).collect(Collectors.toList()));
+        //            }
+        //            if (ruleTypeList.contains("9") && reverseInfoByDisName.containsKey(StaticTypeEnum.OPT.getName())) {
+        //                pushDTO.setOperations(reverseInfoByDisName.get(StaticTypeEnum.OPT.getName()).stream().map(x -> {
+        //                    PushBaseDTO pushBaseDTO = new PushBaseDTO();
+        //                    pushBaseDTO.setName(x);
+        //                    return pushBaseDTO;
+        //                }).collect(Collectors.toList()));
+        //            }
+        //        }
         if (ListUtil.isNotEmpty(icssVo.getDiagOrder())) {
             List<PreResult> diagOrder = icssVo.getDiagOrder();
             //把第一个推送出来的诊断set到diagOrder中,再反推
@@ -218,7 +216,7 @@ public class PushProcess {
                 String name = x.getName();
                 Diag diag = new Diag();
                 Map<String, Object> diag_signs = (Map<String, Object>) redisUtil.get(RedisEnum.diseaseCorrespond.getName() + name);
-                name = MapUtils.isNotEmpty(diag_signs)? (String) diag_signs.get("diag_icd"):name;
+                name = MapUtils.isNotEmpty(diag_signs) ? (String) diag_signs.get("diag_icd") : name;
                 diag.setName(name);
                 return diag;
             }).collect(Collectors.toList()));
@@ -233,9 +231,9 @@ public class PushProcess {
                 if (ListUtil.isNotEmpty(pushDiags)) {
                     //先把所有疾病推出来
                     if (ruleTypeList.contains("7")) {
-                        if(MapUtils.isNotEmpty(diag_sign)){
+                        if (MapUtils.isNotEmpty(diag_sign)) {
                             Map.Entry<String, Integer> first = diag_sign.entrySet().stream().findFirst().get();
-                            if (first.getValue() == 1){
+                            if (first.getValue() == 1) {
                                 List<String> firstdiag = Lists.newArrayList(first.getKey());
                                 List<PushBaseDTO> collect_highrisk = firstdiag.stream().map(x -> {
                                     PushBaseDTO pushBaseDTO = new PushBaseDTO();
@@ -359,26 +357,35 @@ public class PushProcess {
     }
 
     /**
-     * 反推
+     * 根据诊断反推(根据性别和年龄过滤,并根据界面已有信息过滤,根据长度截取)
      *
+     * @param pushDTO
      * @param pushVo
-     * @param standConvertMap
      * @param wordCrfDTO
      * @return
      */
-    public PushDTO process(PushDTO pushDTO, PushVO pushVo, WordCrfDTO wordCrfDTO) {
-        int length = pushVo.getLength();
-        // 需要获取的类型
-        List<String> ruleTypeList = Arrays.asList(pushVo.getFeatureType().split(","));
+    public void process(PushDTO pushDTO, PushVO pushVo, WordCrfDTO wordCrfDTO) {
+        // 生成反推的入参
+        List<String> ruleTypeList = Lists.newArrayList(pushVo.getFeatureType().split(",")); // 需要获取的类型
+        Map<String, List<PushBaseDTO>> dis = pushDTO.getDis();
+        ReverseVO reverseVO = generateReverseVO(wordCrfDTO, ruleTypeList, dis);
+        if (StringUtil.isBlank(reverseVO.getLibName())) {
+            pushDTO.getDebug().put("反推依据诊断", "无"); // 调试信息
+            return;
+        } else {
+            pushDTO.getDebug().put("反推依据诊断", reverseVO.getLibName()); // 调试信息
+        }
+        // 查询数据
+        List<ReverseDTO> reverseDTOList = conceptInfoFacade.getReverseFac(reverseVO);
         // 界面过滤元素
         Map<String, List<String>> typeWords = filterWords(wordCrfDTO);
-        // 根据诊断反推(根据性别和年龄过滤,并根据界面已有信息过滤,根据长度截取)
-        reversePushPackage(pushDTO, ruleTypeList, typeWords, wordCrfDTO, length);
-        return pushDTO;
+        // 设置推送信息(过滤已有)
+        setPushItem(pushDTO, ruleTypeList, typeWords, reverseDTOList, pushVo.getLength());
     }
 
     /**
      * 根据诊断依据推送疾病
+     *
      * @param wordCrfDTO
      */
     public PushDTO pushDiagnose(WordCrfDTO wordCrfDTO) {
@@ -529,29 +536,6 @@ public class PushProcess {
         return typeWordsMap;
     }
 
-    /**
-     * 6.0 根据诊断反推其他信息
-     *
-     * @param pushDTO
-     * @param ruleTypeList
-     * @param typeWords
-     * @param length
-     */
-    private void reversePushPackage(PushDTO pushDTO, List<String> ruleTypeList, Map<String, List<String>> typeWords, WordCrfDTO wordCrfDTO, int length){
-        Map<String, List<PushBaseDTO>> dis = pushDTO.getDis();
-        // 生成反推的入参
-        ReverseVO reverseVO = generateReverseVO(wordCrfDTO, ruleTypeList, dis);
-        if (StringUtil.isEmpty(reverseVO.getLibName())) {
-            return ;
-        }
-        pushDTO.getDebug().put("反推依据诊断", reverseVO.getLibName());
-        // 查询数据
-        List<ReverseDTO> reverseDTOList = conceptInfoFacade.getReverseFac(reverseVO);
-
-        // 设置其他推送信息
-        setPushItem(pushDTO, ruleTypeList, typeWords, reverseDTOList, length);
-    }
-
     /**
      * 设置其他推送信息
      *
@@ -628,7 +612,7 @@ public class PushProcess {
      * 将名称列表生成推送返回类型
      *
      * @param nameList
-     * @param length 最长个数
+     * @param length   最长个数
      * @return
      */
     public List<PushBaseDTO> getPushBaseDTO(List<String> nameList, int length) {
@@ -656,9 +640,6 @@ public class PushProcess {
      */
     public ReverseVO generateReverseVO(WordCrfDTO wordCrfDTO, List<String> ruleTypeList, Map<String, List<PushBaseDTO>> dis) {
         ReverseVO reverseVO = new ReverseVO();
-        reverseVO.setAge(wordCrfDTO.getAgeNum());
-        reverseVO.setSexType(wordCrfDTO.getSex());
-        reverseVO.setLibType(LexiconEnum.Disease.getKey());
         String disName = "";
         // 按以下顺序获取一个诊断: 下的诊断->确诊->拟诊->警惕->可能
         if (ListUtil.isNotEmpty(wordCrfDTO.getDiag())) {
@@ -675,32 +656,37 @@ public class PushProcess {
             }
         }
         reverseVO.setLibName(disName);
-
-        // 关联类型
-        List<Integer> relationType = new ArrayList<>();
-        if (ruleTypeList.contains("1")) {
-            relationType.add(RelationshipEnum.R501.getKey()); // 主症状
-            relationType.add(RelationshipEnum.R502.getKey()); // 次症状
-        }
-        if (ruleTypeList.contains("4")) {
-            relationType.add(RelationshipEnum.R503.getKey()); // 查体结果
-        }
-        if (ruleTypeList.contains("5")) {
-            relationType.add(RelationshipEnum.R504.getKey()); // 化验套餐
-        }
-        if (ruleTypeList.contains("6")) {
-            relationType.add(RelationshipEnum.R505.getKey()); // 辅助检查项目
-        }
-        if (ruleTypeList.contains("7")) {
-            relationType.add(RelationshipEnum.R508.getKey()); // 鉴别诊断
-        }
-        if (ruleTypeList.contains("8")) {
-            relationType.add(RelationshipEnum.R506.getKey()); // 药品
-        }
-        if (ruleTypeList.contains("9")) {
-            relationType.add(RelationshipEnum.R507.getKey()); // 手术
+        // 诊断名称不为空才反推
+        if (StringUtil.isNotBlank(disName)) {
+            reverseVO.setAge(wordCrfDTO.getAgeNum());
+            reverseVO.setSexType(wordCrfDTO.getSex());
+            reverseVO.setLibType(LexiconEnum.Disease.getKey());
+            // 关联类型
+            List<Integer> relationType = new ArrayList<>();
+            if (ruleTypeList.contains("1")) {
+                relationType.add(RelationshipEnum.R501.getKey()); // 主症状
+                relationType.add(RelationshipEnum.R502.getKey()); // 次症状
+            }
+            if (ruleTypeList.contains("4")) {
+                relationType.add(RelationshipEnum.R503.getKey()); // 查体结果
+            }
+            if (ruleTypeList.contains("5")) {
+                relationType.add(RelationshipEnum.R504.getKey()); // 化验套餐
+            }
+            if (ruleTypeList.contains("6")) {
+                relationType.add(RelationshipEnum.R505.getKey()); // 辅助检查项目
+            }
+            if (ruleTypeList.contains("7")) {
+                relationType.add(RelationshipEnum.R508.getKey()); // 鉴别诊断
+            }
+            if (ruleTypeList.contains("8")) {
+                relationType.add(RelationshipEnum.R506.getKey()); // 药品
+            }
+            if (ruleTypeList.contains("9")) {
+                relationType.add(RelationshipEnum.R507.getKey()); // 手术
+            }
+            reverseVO.setRelationType(relationType);
         }
-        reverseVO.setRelationType(relationType);
         return reverseVO;
     }
 

+ 2 - 3
src/main/java/com/diagbot/web/CoreController.java

@@ -45,9 +45,8 @@ public class CoreController {
     @ApiOperation(value = "推送API[zhoutg]", notes = "featureType 类型(多选必填),1:症状,4:查体结果,5:检验,6:检查,7:诊断,8:药品,9:手术,10:一般治疗")
     @PostMapping("/push")
     public RespDTO<PushDTO> push(@RequestBody PushVO pushVo) {
-//        PushDTO pushDTO = pushFacade.pushFac(pushVo);
-        PushDTO pushDTO1 = pushFacade.processAggreate(pushVo);
-        return RespDTO.onSuc(pushDTO1);
+        PushDTO pushDTO = pushFacade.pushFac(pushVo);
+        return RespDTO.onSuc(pushDTO);
     }
 
     @ApiOperation(value = "推送持续检验检查计划API[zhaops]", notes = "operationName:随访手术")

+ 0 - 8
src/main/java/com/diagbot/web/TestController.java

@@ -1,7 +1,6 @@
 package com.diagbot.web;
 
 import com.diagbot.dto.DiagnoseDTO;
-import com.diagbot.dto.PushDTO;
 import com.diagbot.dto.PushNewDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.StandConvertCrfBatchDTO;
@@ -11,7 +10,6 @@ import com.diagbot.facade.PushFacade;
 import com.diagbot.facade.TestFacade;
 import com.diagbot.vo.DiagnoseVO;
 import com.diagbot.vo.PushNewVO;
-import com.diagbot.vo.PushVO;
 import com.diagbot.vo.StandConvertCrfVO;
 import com.diagbot.vo.TestAllVO;
 import com.diagbot.vo.TestLineVO;
@@ -184,12 +182,6 @@ public class TestController {
         return RespDTO.onSuc(klDiagnoseFacade.getDiagnoseByIds(diagnoseVO));
     }
 
-    @ApiOperation(value = "诊断依据规则测试[zhoutg]", notes = "")
-    @PostMapping("/testDiagnose")
-    public RespDTO<PushDTO> testDiagnose(@RequestBody PushVO pushVO) {
-        return RespDTO.onSuc(pushFacade.pushFac(pushVO));
-    }
-
     @ApiOperation(value = "大数据推送接口测试[zhoutg]", notes = "")
     @PostMapping("/testPush")
     public RespDTO<PushNewDTO> testPush(@RequestBody PushNewVO pushNewVO) {