ソースを参照

推送性别为男性时去除女性症状

wangyu 5 年 前
コミット
b003b2fddb

+ 28 - 15
bigdata-web/src/main/java/org/diagbot/bigdata/work/BigDataParamsProxy.java

@@ -8,6 +8,10 @@ import org.diagbot.nlp.feature.FeatureType;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
 /**
  * @ClassName org.diagbot.bigdata.work.ParamsDataProxy
  * @Description TODO
@@ -31,6 +35,7 @@ public class BigDataParamsProxy {
      */
     public AlgorithmClassify[] createAlgorithmClassify(String sysCode, String[] featureTypes, SearchData searchData) {
         AlgorithmClassify[] classifies = new AlgorithmClassify[featureTypes.length];
+        List<AlgorithmClassify> algorithmClassifies = new ArrayList<>(Arrays.asList(classifies));
         //下了诊断且其他信息全为空 反推标识
         boolean reverse = !StringUtils.isEmpty(searchData.getDiag()) && StringUtils.isEmpty(searchData.getSymptom());
         for (int i = 0; i < featureTypes.length; i++) {
@@ -39,56 +44,64 @@ public class BigDataParamsProxy {
                 switch (FeatureType.parse(featureTypes[i])) {
                     case SYMPTOM:
                         if (reverse) {
-                            classifies[i] = AlgorithmClassify.NEURAL_DIAG_SYMPTOM;
+                            algorithmClassifies.add(i,AlgorithmClassify.NEURAL_DIAG_SYMPTOM);
                         } else {
-                            classifies[i] = AlgorithmClassify.NEURAL_SYMPTOM;
+                            algorithmClassifies.add(i,AlgorithmClassify.NEURAL_SYMPTOM);
                         }
                         break;
                     case DIAG:
                         if (reverse) {
-                            classifies[i] = null;
+                            algorithmClassifies.add(i,null);
                         } else {
-                            classifies[i] = AlgorithmClassify.NEURAL_DIAG;
+                            algorithmClassifies.add(i,AlgorithmClassify.NEURAL_DIAG);
                         }
                         break;
                     case VITAL:
                         if (reverse) {
-                            classifies[i] = AlgorithmClassify.NEURAL_DIAG_VITAL;
+                            algorithmClassifies.add(i,AlgorithmClassify.NEURAL_DIAG_VITAL);
+
                         } else {
-                            classifies[i] = AlgorithmClassify.NEURAL_VITAL;
+                            algorithmClassifies.add(i,AlgorithmClassify.NEURAL_VITAL);
+
                         }
                         break;
                     case LIS:
                         if (reverse) {
-                            classifies[i] = AlgorithmClassify.NEURAL_DIAG_LIS;
+                            algorithmClassifies.add(i,AlgorithmClassify.NEURAL_DIAG_LIS);
+
                         } else {
-                            classifies[i] = AlgorithmClassify.NEURAL_LIS;
+                            algorithmClassifies.add(i,AlgorithmClassify.NEURAL_LIS);
                         }
                         break;
                     case PACS:
                         if (reverse) {
-                            classifies[i] = AlgorithmClassify.NEURAL_DIAG_PACS;
+                            algorithmClassifies.add(i,AlgorithmClassify.NEURAL_DIAG_PACS);
                         } else {
-                            classifies[i] = AlgorithmClassify.NEURAL_PACS;
+                            algorithmClassifies.add(i,AlgorithmClassify.NEURAL_PACS);
                         }
                         break;
                     case TREAT:
                         if (reverse) {
-                            classifies[i] = AlgorithmClassify.NEURAL_DIAG_TREAT;
+                            algorithmClassifies.add(i,AlgorithmClassify.NEURAL_DIAG_TREAT);
+
                         } else {
-                            classifies[i] = AlgorithmClassify.NEURAL_TREAT;
+                            algorithmClassifies.add(i,AlgorithmClassify.NEURAL_TREAT);
+
                         }
                         break;
                     case HISTORY:
                         if (reverse) {
-                            classifies[i] = AlgorithmClassify.NEURAL_DIAG_HISTORY;
+                            algorithmClassifies.add(i,AlgorithmClassify.NEURAL_DIAG_HISTORY);
+
                         } else {
-                            classifies[i] = AlgorithmClassify.NEURAL_HISTORY;
+                            algorithmClassifies.add(i,AlgorithmClassify.NEURAL_HISTORY);
                         }
                         break;
                 }
             }
         }
-        return classifies;
+        AlgorithmClassify[] classifies_new = new AlgorithmClassify[algorithmClassifies.size()];
+        algorithmClassifies.toArray(classifies_new);
+        return classifies_new;
     }
 }

+ 3 - 2
nlp/src/main/java/org/diagbot/nlp/feature/FeatureType.java

@@ -15,7 +15,8 @@ public enum FeatureType {
     TREAT(Constants.feature_type_treat),
     HISTORY(Constants.feature_type_history),
     VITAL_INDEX(Constants.feature_type_vital_index),
-    TIME(Constants.feature_type_time);
+    TIME(Constants.feature_type_time),
+    NONE(Constants.feature_type_default);
 
     FeatureType(String value) {
         this.value = value;
@@ -54,6 +55,6 @@ public enum FeatureType {
             case Constants.feature_type_time:
                 return FeatureType.TIME;
         }
-        return FeatureType.SYMPTOM;
+        return FeatureType.NONE;
     }
 }

+ 1 - 0
nlp/src/main/java/org/diagbot/nlp/util/Constants.java

@@ -18,6 +18,7 @@ public class Constants {
     public final static String feature_type_feature = "9"; //症状描述中的特征信息 如部位、性质等
     public final static String feature_type_time = "10";    //提取时间
     public final static String feature_type_vital_index = "42"; //体征指标
+    public final static String feature_type_default = "-1"; //默认返回类型
 
     public static NegativeEnum[] symptom_type = new NegativeEnum[]{NegativeEnum.SYMPTOM, NegativeEnum.SYMPTOM_INDEX, NegativeEnum.SYMPTOM_PERFORMANCE};
     public static NegativeEnum[] unit_time_type = new NegativeEnum[]{NegativeEnum.EVENT_TIME, NegativeEnum.UNIT};