Browse Source

增加返回症状推送结果过滤

louhr 6 years ago
parent
commit
a3375f76a2

+ 10 - 0
bigdata-web/src/main/java/org/diagbot/bigdata/work/AlgorithmCore.java

@@ -7,6 +7,10 @@ import org.diagbot.common.work.FeatureRate;
 import org.diagbot.common.work.ResponseData;
 import org.diagbot.common.work.SearchData;
 import org.diagbot.nlp.feature.FeatureType;
+import org.diagbot.nlp.util.Constants;
+import org.diagbot.nlp.util.NlpCache;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
 
 import javax.servlet.http.HttpServletRequest;
@@ -20,10 +24,12 @@ import java.util.*;
  * @Version 1.0
  **/
 public class AlgorithmCore {
+    Logger logger = LoggerFactory.getLogger(AlgorithmCore.class);
     public ResponseData algorithm(HttpServletRequest request, SearchData searchData) throws Exception {
         ResponseData responseData = new ResponseData();
         //录入文本处理,包括提取特征、推送类型转换等
         ParamsDataProxy paramsDataProxy = new ParamsDataProxy();
+        logger.info("页面文本信息:" + searchData.getSymptom());
         paramsDataProxy.createSearchData(request, searchData);
         //对象拷贝至BigDataSearchData处理
         BigDataSearchData bigDataSearchData = new BigDataSearchData();
@@ -53,6 +59,10 @@ public class AlgorithmCore {
             } else {
                 //同义词转化
                 featuresMap = resultDataProxy.synonymConvert(request, featuresMap, featureTypes[i]);
+                //推送项合并---针对症状
+                if (Constants.feature_type_symptom.equals(searchData.getFeatureTypes()[i])) {
+                    featuresMap = resultDataProxy.mapAdd(featuresMap, NlpCache.getStandard_info_push_map(), true);
+                }
                 //大小类合并
                 featuresMap = resultDataProxy.resultMerge(request, featuresMap);
                 //按模型计算的概率排序

+ 3 - 1
bigdata-web/src/main/java/org/diagbot/bigdata/work/ParamsDataProxy.java

@@ -1,12 +1,13 @@
 package org.diagbot.bigdata.work;
 
 import org.algorithm.util.AlgorithmClassify;
-import org.apache.commons.beanutils.BeanUtils;
 import org.diagbot.bigdata.util.BigDataConstants;
 import org.diagbot.common.work.SearchData;
 import org.diagbot.nlp.feature.FeatureAnalyze;
 import org.diagbot.nlp.feature.FeatureType;
 import org.diagbot.nlp.util.Constants;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.util.StringUtils;
 
 import javax.servlet.http.HttpServletRequest;
@@ -22,6 +23,7 @@ import java.util.Map;
  * @Version 1.0
  **/
 public class ParamsDataProxy {
+    Logger logger = LoggerFactory.getLogger(ParamsDataProxy.class);
     public void createSearchData(HttpServletRequest request, SearchData searchData) throws Exception {
         //消除空格
         if (searchData.getSymptom() != null) {

+ 13 - 2
bigdata-web/src/main/java/org/diagbot/bigdata/work/ResultDataProxy.java

@@ -120,16 +120,27 @@ public class ResultDataProxy {
         Map<String, String> synonymMap = standardInfoSynonymMap.get(lexiconId);
         if (synonymMap == null) return map;
 
+        result = mapAdd(map, synonymMap, false);
+        return result;
+    }
+
+    public Map<String, Float> mapAdd(Map<String, Float> map, Map<String, String> convertMap, boolean isFilter) {
+        if (convertMap == null) return map;
+
+        Map<String, Float> result = new HashMap<>();
         String synonym = "";
         for (Map.Entry<String, Float> entry : map.entrySet()) {
-            synonym = synonymMap.get(entry.getKey());
+            synonym = convertMap.get(entry.getKey());
             if (synonym != null) {
+                if (isFilter && synonym.equals("阴道出血")) {
+                    System.out.println(entry.getKey() + "-->" + entry.getValue());
+                }
                 if (result.get(synonym) == null) {
                     result.put(synonym, entry.getValue());
                 } else {
                     result.put(synonym, result.get(synonym) + entry.getValue());
                 }
-            } else {
+            } else if (!isFilter) {
                 result.put(entry.getKey(), entry.getValue());
             }
         }

+ 11 - 0
nlp/src/main/java/org/diagbot/nlp/feature/FeatureAnalyze.java

@@ -7,6 +7,8 @@ import org.diagbot.nlp.participle.word.Lexeme;
 import org.diagbot.nlp.participle.word.LexemePath;
 import org.diagbot.nlp.util.Constants;
 import org.diagbot.nlp.util.NlpCache;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.util.StringUtils;
 
 import java.util.HashMap;
@@ -17,6 +19,8 @@ import java.util.Map;
 public class FeatureAnalyze {
     private LexemePath<Lexeme> lexemePath = null;
 
+    Logger logger = LoggerFactory.getLogger(FeatureAnalyze.class);
+
     public List<Map<String, Object>> start(String content, FeatureType featureType) throws Exception {
         CaseToken caseToken = createCaseToken(featureType);
         return this.extract(caseToken, content);
@@ -48,7 +52,14 @@ public class FeatureAnalyze {
         if (StringUtils.isEmpty(content)) {
             return null;
         }
+        logger.info("待分词文本:" + content);
         lexemePath = ParticipleUtil.participle(content);
+
+        String lexeme_text = "";
+        for (int i = 0; i < lexemePath.size(); i++) {
+            lexeme_text = lexeme_text + "|" + lexemePath.get(i).getText() + "^" + lexemePath.get(i).getProperty();
+        }
+        logger.info("分词文本结果:" + lexeme_text);
 //        lexemePath = replaceLexeme(lexemePath);
         return caseToken.analyze(lexemePath);
     }

+ 4 - 2
nlp/src/main/java/org/diagbot/nlp/util/DictUtil.java

@@ -108,8 +108,10 @@ public class DictUtil {
             fw.close();
 
             //推送词典
-            sql = "select l.lib_name, l.lib_type from kl_concept_common bp, kl_concept l " +
-                    "where bp.concept_id = l.id and l.lib_type != 44 and bp.is_push = 1 order by l.lib_name";
+            sql = "select k1.lib_name k1_lib_name, k2.lib_name k2_lib_name from kl_relation r " +
+                    "left join kl_concept k1 on k1.id = r.start_id " +
+                    "left join kl_concept k2 on k2.id = r.end_id " +
+                    "where r.relation_id = 19";
             st = conn.createStatement();
             rs = st.executeQuery(sql);
             libraryList = rsToMap(rs, true);

File diff suppressed because it is too large
+ 2630 - 12682
nlp/src/main/resources/push-tc.dict


+ 60 - 26
nlp/src/main/resources/synonym.dict

@@ -311,7 +311,7 @@ IxtIFG++0jOjRsHCknzFpEMumn+WAnuFHSPT60eHdZ+mZ2MateuoJyA5IxUziKLr
 YaOgvMi/oNiNeRB30A8Zk8DQcI0E8F0uB4yCxowMJD3RV9+Nb+CpTUpgEZ36UZf7
 rWZ7gEZNJEjGkAHwP2W7RguKUcXg8Ec9D1vnsOM0FDZzHPxrUnO9PYK6nIUduvYSrt2AWz5/oxtx2MDwKR8De0Vor6Hutw6a
 1/l0eflZMrbZQxJMe/rtraSa+wi/TzGY0VffjW/gqU1KYBGd+lGX+w==
-/N71CSNQu2Krqe9F5OMrj80CVt4dNOkneh6i/su86FCqWeQXpc3v1OIcjM26DI3/UHdkywp36QEJO3whiXqapJt2rQFcUZI20VffjW/gqU1KYBGd+lGX+w==
+/N71CSNQu2Krqe9F5OMrj80CVt4dNOkneh6i/su86FDU1URD3rpamjdgDoeAh0q8r0spmji9M8/pEcUDGYQeOcu7c9kDDUuYdET1IbGIUCk=
 SJa+FiJCadAFo/VWAldSaiVs+a1eOFQ5v1jJnqseIwl6scVc9bCwUnRE9SGxiFAp
 sSM06929D+RJjUjjHQ5iciOQvzDDTCd3
 fs1zPIBNG6F5YeZcMFCaV91JsIr3Ik2L
@@ -435,7 +435,6 @@ sVXI6TfppIVSglb/Gt34ZPWL1MYt98+SOneuIZTDurvroOHbc3jIq+8M81Z/zupEqkHannqnHF4r5OM9
 ycU0RK38xbBGS36sEeoGGsnFNESt/MWwy3STassNZMR37GpgzaW9eQ==
 +lGTyXT9VeOovx0N/ZKmoYSnmfl+jwXr
 EMu7srLgFkSqUl6uEvpcQolfChze+G67tS3xA06IKwX4rWKqc0FAdYtQzSojQ1sP2RzRm60CYls=
-LVbLn2n5fv/JHlvcqyQ/28LgmQg/9XwKnSQHWofnNT53Q0pbTMsdJYSnmfl+jwXr
 L4guYbOD3ybNq+PVN9ww81FheItN0h2N1Ob+zz06KA5/xTDd1dJkygnz810NNeY6wXxg6zosvyIrIHgkfh4QRw==
 Be1T87t+ge5XlrymvmHctpjZkopBAnj4wfDd6mRDqi86IoI/RDaxF+x47IEhceRGS1rw7JWqSD0rIHgkfh4QRw==
 hPnw6ZZmVUaXuNGxONPgs4T58OmWZlVGHWe5m+bXyBI8ekhpOeCFgEpgEZ36UZf7
@@ -474,11 +473,9 @@ LdyjZLfJmnqe62KR9H4cFRtlwgcAkP6z+EIi64Sf7P0=
 atA9tA5c2VJaFnmFYuhCndELW4gCnUBw+EIi64Sf7P0=
 aT1z/HCf2G3d+8M1pojMBQrf27wX1XpAUZBILDH8Cjw=
 P8tGAqqSsL01hGqbH4enWHqKzzMwDBlhCHXtDUwimqE/y0YCqpKwvc65StngMCxbYjatQLwOO4Px0j1H1xWK1PhCIuuEn+z9
-rncMMo0jfFiOLs5b8zuZhVOWuapdXdh6giroa8YbREolZCZFu9AY/fi/z4e1iUMW
 O5gPRb/7KcMbq7l2eO/lCyAhaej4Dhhi53Av4PZtcX937GpgzaW9eQ==
 2UBsnltmJt8O0fuuZbNSN9lAbJ5bZibfkTaSuQjdJBLBkvm1s7+ooQ==
 U4b/MQUlb1/04iFoytGXoO7nruayi1LKtQrLOELv6kZ37GpgzaW9eQ==
-OWTtHspO64FiPe8PWB9gyVhK4L8A191Jndv/6Tbir2AhE2EK8GVUNOtwraHvAZCTQsbqrMo2OaN37GpgzaW9eQ==
 vVgtL8OvEdryqUO4gjXdaz5bSanF1Nax+EIi64Sf7P0=
 anqc376RwxEp6/lKXi3UMOrUo2OLEJuOXgm54+MkMfnq1KNjixCbjoSnmfl+jwXr
 XsRueZvhAyrchbqz0R3o2c1jBKtE1LNwI41e5omfQ+6BQmOSoIJd10pgEZ36UZf7
@@ -492,7 +489,6 @@ b+p7oPuIEcVvxvQCxTT00B32HUwsY0u4Man2yrkbUgQ=
 kQHtQ28+jmT9JG+xZV1K3fEx+KvlRFp+J5Oniy+5fMpYMunhxMWV6MPL84gmGlXsfs16bsXBopqEp5n5fo8F6w==
 0RGoBjoitpNWgHE3Y5h4cmjBpGslsqgZq4S+i0r8KX8=
 7mHfSs2ahWjgBN1pG7wYae5h30rNmoVoIr1j4lF/boO/ADBlV7LKkP1rKWw+boKVXK/c8S9othE=
-GLZe/17QCbwjGBLwauS5S8BdBPiOWIxubnr9cxaVGVjr6zMyZyGtbi9CPDg63dAzcJg5KD9zlgw=
 HCEq+yB3xiTqg9wrN59KIJIjAVn84qNplk7rT0ZjYWpbYFoanX4vqoSnmfl+jwXr
 xjBOWYwtJQInz2o+xwX02eEBwwS8tBovox8YQX0o8xftVHfsBfp5b4Snmfl+jwXr
 ONKJPxQ05EuDyKtEGA22IK6PS6dbA87pRNyq17WeIxaBsecVGGJqlV+LvTZJVenV
@@ -502,7 +498,6 @@ lxOxBaWiBYjufDOhF08eURuAhtM0/VyPGZs4k5yUu1bTsrzSmo6wO0pgEZ36UZf7
 it7CAuuV7SCNiFmf1ojp4TRvg0XusVWStfEdNfdnhAo=
 kSAhO9CzcUQTEQe1FtSOMgrf27wX1XpAUZBILDH8Cjw=
 nKrBtCFMiXqasKbS+m6iOmpplcis8YfMlA19TSzTrDo=
-a2Sa60FzrqP6RIjf1cSTBJVHq4kwfl6PWmc5VvqQfryVR6uJMH5ej1wr9teJ6At8
 kQHtQ28+jmQeXACFhyzR/EToXNOcYRXdw8W9Ix9AkcJ2k2nXRGY4yaY3MzfNcujI6tg+ePZcuXeEp5n5fo8F6w==
 qBVDKbnPe4AKlwQICYBuZKa6rwMFd9m4o63Feq/F/Rc=
 d9VKlKvKyY7R2vLMzVyabEn93KRALMF+S3wNk38qjtkNmLKaZIoQKX16s1Kv0D7ESmARnfpRl/s=
@@ -540,7 +535,6 @@ O+XExVGK6yrIGeDDPvUbAm3CjMz2lz2b2UaoQgK67w8=
 cYSfn9fWxQ5BPXwBm9CvtF8ByRhDsCGR+EIi64Sf7P0=
 8+/D6NypjddUIm92l3iN1RMRyZFpCIgsrxAz4u4zi3IpsfANTRsS4b64T06u3r+M
 GLZe/17QCbyFqt2MGY0i4VHphGz/b71hgY04oyhRvkz6CDlrrK+MtUpgEZ36UZf7
-GLZe/17QCbwjGBLwauS5S8BdBPiOWIxutNXBX+aaJtqw/M038oJJwvG0ZJ1j9iyCs4ld0tOiLwE7WnfbLN6GTrUKspNybaUE/PJLuE2awO4=
 xEUfjPFZ/xbJXtkFGhWV3dFPjFHQcuiw+EIi64Sf7P0=
 GCC0nhSrMwCasKbS+m6iOsrBSNUcf5ZmlA19TSzTrDo=
 bv9R3ygNL/0wuxPJVxnIfG7/Ud8oDS/9hDbMiX9sb8kuB2LNb5eZ60pgEZ36UZf7
@@ -604,7 +598,6 @@ oRqu1B35G5rZenX/hyHS+qEartQd+Rua3IW6s9Ed6NmBQmOSoIJd10pgEZ36UZf7
 BcX7V3pTwpetFaNdnKehnBGWz/qkstQXtGC9jRbF8amkQodFuAeC5kpgEZ36UZf7
 wk2N6xXgYU4i5YI8rtiDahmId6a8C6HaOIwdrl2t0CTJ1+a/2g7mr7Ks88IQ35Yo
 YmFbY+KQ4Y71L5AtN56o5jOLo0XTR9Ek9d1KfRAcB0yiJSvGjtujy+BAGu6114vabw/x9kybzEh37GpgzaW9eQ==
-anqc376RwxENPyWsrDHMhutLWbJpLl1yT3bS+u4R6evHbBkQrHoA10pgEZ36UZf7
 DH2VViKrbzkaMqMO4GPvLzxHA3p1GojZMMtuL3wb6+k1cufgLY5g75+CqHzcndr2Ht/8jM9qqls=
 j9tzywHQ7BsnYZnRYEWGGxmqOBizwM+u
 VynNxYGlkQDbMhjb7ruRAr64T06u3r+M
@@ -625,19 +618,15 @@ xl7SK+gA3yS/ZOkkFmme0VidmgySXP38UgwjtVYiFj5pFWvG5eyv32kvh9o7NNyvzrvT48BXx07Hp77V
 kQHtQ28+jmRemfZKNJftNQIg5cy+cuSyw8W9Ix9AkcJ2k2nXRGY4yeGW9hEmYsoWFIXg91QCNN8=
 xt3ch79mTxiiDvtBEXX5FMbd3Ie/Zk8YlNZF/rDml2t37GpgzaW9eQ==
 aMsbvjbfGsVvYo6L2ka9mUjtw0K2JLzxaTCtAMGJ/ytI7cNCtiS88YSnmfl+jwXr
-/JJ0NKJFAv42hAXIxXruRiBZw/ZMqkrAYMPSKT+kgJeVRn9te7qe/wSHcbgwTuQy+EIi64Sf7P0=
-AwGjT2hgdzSOLs5b8zuZhTC/hzUn9ftMgiroa8YbRErHn5I44IiBfPi/z4e1iUMW
 ihFTlu1A6vKU5ROAz9tjdP7GY3N+/QaXse6Bd3VfKzJ37GpgzaW9eQ==
 P8tGAqqSsL01hGqbH4enWHqKzzMwDBlhpFS3uEhVRIOyzGyf8AsmuvLB8Z1TueXELO+tvm+GMrIMr+f5jWhqIzkiPDSvD8G5
 Z6ORYEVTHAZcKrbMkfbHlK9NX7N6gLWlPxq0IXANl/WTx5tEVZwg214kBK7zKELv+EIi64Sf7P0=
 9UQdU1VIB/Ztd8WtUYdrl/znlgPCB6PWLEy+qjcuA1d3pTXTAKLhppbI/zVEsz/++EIi64Sf7P0=
 8PJSsFFmLRxcCRNJljo+HlQjhJpgvhjzjW4cxku5FOh9erNSr9A+xEpgEZ36UZf7
-4Wf80h7qzrmi91Qg24vlA75amaIn5rxJC+raTNXbE3lp6IUveDLb/kSqVvpudkC535NN1y1QxfPX0LBbexQzT7xk0TB5U+3V+ufNqDdKM4A=
 bRU8Xd4lWq8AMKBEewrx13FtHNLlU0y78UvAq/j0CC7dECrOTSOn6YSnmfl+jwXr
 zGKq8F/eHMIOSvfxbKJ8KSbv8fqJAFIlcMTWSlTgOh0mXQb6b1HuE4Snmfl+jwXr
 45cP/YqamBcUHNlX3+xyXRmId6a8C6HapAJ2lIRhmGkk2+jkt3of46AEdsQYATaZYsBSIlvmCjo=
 Kr9NpwKWfsLYAUGk75ryZCq/TacCln7Chw48h4qdOM537GpgzaW9eQ==
-Y+dVRuNZtwR8xM6Gyteyy/PhAb6SY+HzzibeSc1/l0j2nBU4YCjUWDqlQrA8///pxMSgwK+whTg=
 rjhqzeVmkFnDy/OIJhpV7JFFP386xf8RetqHd962VKVJAlvmUrahAs835PnT8sLRcprRTvPkLc4UheD3VAI03w==
 XvltMqvZ0rED8lKh69ftvEjCWF2zvkE1UipTNvSJsPo=
 0jJMm1O24VdTU+fPYYDcZcPoPkTcKmRfW9z4hHJmeFsUheD3VAI03w==
@@ -691,7 +680,6 @@ qHmbrvpjCB4O14pCDod6tF/PU1N5CXagw4k0D3iO+oBKYBGd+lGX+w==
 rwSi9v0Y5/m/PB6Z8Ls2jlfb8aIKussFfh8Zmuh3fHI=
 aMsbvjbfGsWyqvZl0p1CIlUR2I54cTiIXNzGdFLyYSwUheD3VAI03w==
 Y4EfE98YO7muzpfidcLfubi4cHi/JR2M6MseZOWSv2Q=
-wWtxT6JsKEa8G72MBAND/jBEH2TcAH0LV2Th+WAj85++pwjP12Gu3MaDA9487YV7d+xqYM2lvXk=
 gJq/yMRPk7jdOT7m4eci7CdotiY3P2eP80WfsM22WDBZjRJBefmd9ueJW0kLJgTdI62vfwnX0R7u0TQ13/isbUpgEZ36UZf7
 Vby4m7X9gCEl+g5HyUEkmdetkl9F+UBtkqaW/t1sCyw=
 KGYaGfDHL2kUFqTKHe+mlH7YIa7InhScK4fveP4CnIR37GpgzaW9eQ==
@@ -782,14 +770,12 @@ is24Ye5iddm6fEywKHx9B9GU2DQ2NGMSjpaQlVBvgIEPNwqTjYxMvUhAMhlMDiskd+xqYM2lvXk=
 de3O9146cmVTBeQVJNM0bvVEHVNVSAf28NI2uzoIb1w//1Pn0Iq/oGI2u67oM9kEPO3xy2gKQz7q1KNjixCbjoSnmfl+jwXr
 KkdXzNFWPU2RMHJY85LveNC8tEl4qI2Q8LDUlcTzeilAKdaXFPtp6YSnmfl+jwXr
 tax5HSfKerKHDjyHip04zkP0TNC+BRCNrhcpUTnesfkUheD3VAI03w==
-WNMTZBDdWmoihmWQ93YooU45jw7QzBhzfG8Kh+sols4zonxi4FVW2erUo2OLEJuOEa5xwzxQlwvXd3OW6iq+MOH7MPLP244b+EIi64Sf7P0=
 rjhqzeVmkFlzCIj6arogkeJA/Bid8pBH8tJ/ZRiJ2F9JAlvmUrahAuQYHvf8p+SGRUG1t56D96Y/uqeJRt8vyYSnmfl+jwXr
 TkKCqeWSukekXYAzJbi62WwTLNhSzA6SjS8IxvXrJoI=
 ltfmaY06UmEjCQFsbwhTAaLxFx90hP15X3hts/46veYjlPYngBO2gDx+4FGS6Vw8vrjuts06dy537GpgzaW9eQ==
 B9uuO07HaYBtx5gM0chh3qCO/ijC2IhMSLVOO7ZaUhoqyhzQJbY1HA==
 nFVHoEhUDh699HJPGVRLq/p74ibz49YbbfX8YrSmzL9ibVIizPdi72eGNFu7zYN/pgmgh2yX15Y=
 o/behFbgd1q9PlH3/05AJ9aVLZhohXTOj68fDR0voAp37GpgzaW9eQ==
-GLZe/17QCbwjGBLwauS5S3e2TVYh1v08Bu5ICrWMbMDs6+3g64rZIL64T06u3r+M
 G/3qiO0Y06ttjHycxBZ66u+uxddlO0wOvnZVY/XHmBk=
 WVV+fv3iaxjakJejYm0e2OUOxdVODHWbuxGqtb4TTs8=
 uw03DblMIraOn899onYHuGotawb7Hpue4io3yyjGmNM=
@@ -828,13 +814,11 @@ qdmyk+NlcGx01zu6o34gS0Y7mySmyUgY1Zk8RuBxSmP8n/32dhefmqTZMpGohujmcJg5KD9zlgw=
 5GcwYu8m01n7xHT2DiA8nC5XZpH9F868d4iZB7VO+gZ37GpgzaW9eQ==
 anqc376RwxHb/dG+aX2VFPDODPWptTqBMEXc/UkrTvPAvkJ1OkMuhKPa8yNibUtVArFKeOO9z7937GpgzaW9eQ==
 5wgGzUQcEnXlQZ/5Ca6DjReynszQ4pNGt3npT7TzzGQ=
-L+x4xDKQPwIBXT63f3pQeNHyqMyOWlaJVYc272jQVlwOSvfxbKJ8KT/82RQiLdiccMTWSlTgOh0mXQb6b1HuE4Snmfl+jwXr
 kQHtQ28+jmSG79C/xExT0dCYaxSCmf2edIx9CLRlUyZt9HeEhwwaxkp+Ut6twGBZ+EIi64Sf7P0=
 NhbO6gkLwqhOCPUtqaZClILSI9Feq0DGrfOH7z6ZOoZ37GpgzaW9eQ==
 SFyTXoZhqUVXSiqVjN5JhA33xpTGLMVP6MseZOWSv2Q=
 Q6D1qfeQMYwrs2A00EHM/YXreutoVFro+EIi64Sf7P0=
 z+DXfEqGTDtR8k9xJ7hHQZu28wFF5OXOjaVvsU7Wr/8URl+nQ/sm/d0JpfAm/zLDRuriHAP5KAo=
-ZLWYaLTQwFNT00yxoDHMbnjL7rugpWgullc91t9GohHLlwHWMDPEn4vNhns7D7fHBZzeo3Nb3mc=
 sdgMBFdaty+/kfsFlhghShIBsv/GfZEOwrTPT/UohXZ37GpgzaW9eQ==
 kr/BJUCFNBPFfBm7smdioAfIskYxPSgr83x3a5EHsaLU5v7PPTooDgBHLVPkc2VijVVP2+BlJjcOsheGum+CXXfsamDNpb15
 v4ihoCtNRVlbbVEgAcGSi+twraHvAZCTcMTWSlTgOh0mXQb6b1HuE4Snmfl+jwXr
@@ -886,7 +870,6 @@ MWXFwS+gXECECTZiaVQavTFlxcEvoFxAUD8lU+VJUlsR1jJWJp12yaX3eotsAX4++EIi64Sf7P0=
 xEHYC5PyimMLNP6gjPbd7p+Fr7cDhaJLkdvMt65r33hgP+b2tSgn0nUH6RAlFUUF
 oqEIN/mQHewhof1g28E6GvWL1MYt98+SOneuIZTDurvroOHbc3jIq+8M81Z/zupEqkHannqnHF4r5OM9cl4A+UpgEZ36UZf7
 E9tmDPxl8UaMAGKAx4aZ1t1FHZ4bTOIuTonN/Pp8fNI=
-2uRZ3LWgKU1aI10hJTlx/Fglt7BE8+xMAxVLA2aSKyngZB2UspLa0g6+AqNTZ6XlmEEWYlmlDrc=
 ltfmaY06UmEjCQFsbwhTAa+oWTOls05AX3hts/46veYjlPYngBO2gDx+4FGS6Vw8vrjuts06dy537GpgzaW9eQ==
 8fJ7luCfqiiWTutPRmNhaltgWhqdfi+qman7IHE583EpsfANTRsS4b64T06u3r+M
 UkldRKmIA6W1bH4gSInujXLB9+YCIBBp4cr5xYCDohMyJcs7Q3bSyYs9olmWH/6moxs1yxzTbnQ=
@@ -908,7 +891,6 @@ aHrENa+5mgamNGUdFA9Pz4aetjtgc6cafsXqGPtmX0a9frH26e83Wg==
 CbWgk2r8mJ2B7P4bBwPyO0OaC4McDD8lgez+GwcD8jucngab2cq+4g==
 kQHtQ28+jmRgc234P0z9rfqREFPpnn36KrVQdn72xOZb9/rxpEoftHCYOSg/c5YM
 x9PLCfVsCr9qyiR2aufF8PIfoU9zQGj2O9wVDJY2sG/UfBYNWG5zXA==
-uNYj01ma7BAa/ltwEvloeUSqVvpudkC542GXqJQ08QZdmFpHvtAo4M8DBj/MiN9v
 EwrmwzHzaNTb7hJHqaL5JWI2rUC8DjuDlwSAWhjCMeWvizV8+9pp8wAECYyM+OO5YhGQQIxYYZepFm7vq6DU04Snmfl+jwXr
 Be1T87t+ge5ODPnarL+Og18x170Bkq2yV+TYPjm35Fl37GpgzaW9eQ==
 yUBIpiXiGhsqqtObA+jC6clASKYl4hobI7kxI7f/gx82uWtQkd9cbSgS2zJvUYNNasmVDAIt7ak3Cn1Iep8klBncD9v6D2w8+EIi64Sf7P0=
@@ -941,7 +923,6 @@ xEUfjPFZ/xZYq0KevlfG0zEhlg3KAhPGICdJC8x/yopxpBOLMCZG/g==
 3HfdoLWLjvyS4iU3np7ZB2aW87tCO3H0zrIaZJSZ+o5mlvO7Qjtx9ISnmfl+jwXr
 ozuXYd8eq2MYxIwOkg7DmlDM9d5O1AbJ/+YScXRpWox37GpgzaW9eQ==
 fgfW/FlY2nDFAN/OW1R7qY8nPWhTcTAc5UGf+Qmug41XDF2fYV4mXw==
-WHVMUVj+xy22XnGrNw85E2rAj+M7g6PbZwhdD7SOFjjIuVISsa1/RUTVEzfJnuatUXh9KAR2yRgrIHgkfh4QRw==
 IAPBBJ3+NX0XjdOftTeIOxmqOBizwM+u
 NvIQjgiMCQUVi52oaqYG/F7slfUj7fnQSAXuf8bDDSY=
 meRKNoQlLW6uiiDFYdR0WUxCU+/YAZuz0JaEuyqS9PA=
@@ -951,7 +932,6 @@ tKMGaq5ZqS83K0QjxVD1zSC80b3DeJywvmWtu0Q7LFA=
 waqPX19WY4Fa94t2FvAzVPmyf70GTWV+WveLdhbwM1R37GpgzaW9eQ==
 wvImFyzmshCUbt2cuu644BTxr8p60gT9
 gJq/yMRPk7iKrCmNRwx6AiOSA1tar8TQ2b0xuyDWPkNYFEpb582vQpLxznea1LYYmsoKj4oJcel37GpgzaW9eQ==
-anqc376RwxH63G/Sd+ITwU5N5aNL8Kb/oGfcGBtQyu+asKbS+m6iOiTptQbf1P/O+EIi64Sf7P0=
 rik2KFw0W9KgaWPue4c1qsS06lqyMFxXoP/m38UKxSg=
 EpkhMubA/KWOBrAVoVFUqAh3Pb06ZOipJoFPlk89PcTwYw3OmFaMwISnmfl+jwXr
 hPnw6ZZmVUbKrM5JPlWe3wie8u3xE4OSVoBxN2OYeHJxpBOLMCZG/g==
@@ -960,7 +940,6 @@ gkB282ET6CHZnuNxhT4mNmkM4cOxmJ76UaS3UCfInW9LfVy4r7n5ng==
 2yklYpq4i9oR1JtrtxVfiGYHsl5Z1NhuF/z9tWjaiChARMC7kGOpaQ==
 rt8lOfUgZoKz1ars9JrqzOd9OxobmE0R+EIi64Sf7P0=
 aMsbvjbfGsUjUbWirz57yDcyOXVz2R6ivnZVY/XHmBk=
-3NSxVYVmCWjq1KNjixCbjhtbOa8O36JEezgAIpIX81QebxPuwAGzOkVh2tVXCXpMyvxFQHFrmbzfph81C1e3YuBF/OElz/T3Ey7jWoV4TuIEr1gXegOSmIcOPIeKnTjOd+xqYM2lvXk=
 hnmpkqwuS2+JDrKXiSf3TMPoPkTcKmRfW9z4hHJmeFsUheD3VAI03w==
 XsRueZvhAyr8h/YJuSO1hNHf48pboZxoI41e5omfQ+6BQmOSoIJd10pgEZ36UZf7
 Yy+RisEA3WeJi2yzxEEc+8lmskjRRPF4AtLop37laGKm45MTcYn9rUpgEZ36UZf7
@@ -980,7 +959,6 @@ DeaX8tZQRxJDykRmszmZEMPoPkTcKmRfW9z4hHJmeFsUheD3VAI03w==
 RNUTN8me5q1Vk4WHEHm5htbWjdWjaE79sSSM4VdF+Dk=
 0bTwoyy8uJKC/eGsVWa2XnyXRB21d2dnWrX4+zBDlISuB5/s43Cp9A==
 pF+/2e5PCdgJTP+5mC6pPHw2JFx37Zs/FuNGBM9znLIWA/RuiPBLUkpgEZ36UZf7
-k0CKTz+6bhaQYx2qHOIYH49p1XsAy3cg7VOZSVCmsVOU4x9/yuc0xxe0IUouu7k9
 h1XeOIBMRZ0G682NcIrKRdoHWYRjwXZQ0vxqsZyHJcuONOAOJQ3dTISnmfl+jwXr
 p+PT4G88QsHPcE+doApaANuHtjZmjrgBjS8IxvXrJoI=
 BmPGbmcgdsJGKVzPucumxwZjxm5nIHbCvnZVY/XHmBk=
@@ -999,7 +977,6 @@ RFiAqWJ7/aDATytW1HDZWpmwmKgWDKzzhOfE34nKt/phFwMpnavVQ0pgEZ36UZf7
 HSlkVdSEOqz8krUAqAP+NujfDmEHJJM17couYQeDZv0=
 ijK6ncawcNphD77A7vEgQdnIK0yMquvs02gDOuMEjvO1ZzS0QZIspUpgEZ36UZf7
 b5UId2V+fLlh8qSNaXEb4aD1DbCkmx4jxtqsPBC3uGUMoWzeIbqjZX3HAfEYts2tkl11EE+uxN3tgh1p5xfZ7A==
-FQUi8oWeKA0eGpX2zaH3SA0Vet3Kot7yE29/1poMADHO0EtYHLOvphmId6a8C6HagJTCP0HT7lGka3I7NiLYh0pgEZ36UZf7
 7ArCn6xluBxfvVgdc6lFMrSiEmjX5agnsy6JywiaQkN5lweONwOnKDKHxFiv6LqoFglns5eyIrY=
 9kceoJ7I4AuTDsDt+ZHIPTqmLc90JllHW8dUTledceIqvjeFshd16qLrNdAox+dPdqcgnZG5aKd37GpgzaW9eQ==
 x9PLCfVsCr872pP1HOWsdBDLu7Ky4BZE/CpVdaYdGI137GpgzaW9eQ==
@@ -1018,7 +995,6 @@ ihFTlu1A6vILMEGAph4ErkK9FVaewSMOk3ulRsTCBK4UheD3VAI03w==
 PF/SCCYRgEGeUoFuIcBtDjfpokpJ7C30PSyRssDnftNrFhRMx3+WopVpkw0CczlC+EIi64Sf7P0=
 aak3L9Lnp6nVsnyIao7h7Lx8xMiiButTAkLGUvrb+8SySzh5EH9yQw==
 Vs0gRXc23zOasKbS+m6iOj9ky8TI5tj5lA19TSzTrDo=
-GxXLVwg10cx7UjXiGS5NnokofDKFwQ75Vk031HeIsP2JKHwyhcEO+UDTMPfDfa7B+EIi64Sf7P0=
 oMXTXchA5dqhBaZg/+66YVWHNu9o0FZc1I6AoOaNRwo=
 gJj1miT0Dpc1Teioz1asRWmZ459ubdRUWX9JlJteUQG9V/3G5d+9ubpdTEiO5UurQTJrwZ4kYL4JvopN7tvHAX3JwNBTWcZV+EIi64Sf7P0=
 Wd+9E2XPGaZwmuToO39cQweAd/Y1hX8DihqobJK5sz0=
@@ -1447,7 +1423,7 @@ xX+R+LFG0D5O/7Wgesm/6kKaXvOUI5kzxX+R+LFG0D6EjgZRkrELb2A3iRKuUoKBSmARnfpRl/s=
 S9eaZYaduG3seUSxmuGoi4+y3fGs36YZ5vW2dqGzX31Tfw6q5kf/qKj8kvE0znwn
 y45s70o3njPkl+jZE8S6boerwHvCa+K+9F5xTOR8isc=
 b7AM5HcIUEdT0jPxNVIYam+wDOR3CFBHsW3LL50neC30XnFM5HyKxw==
-3nu5sG93VQO4Lq8l4HGsqJgKJhR/mnUYQg4HGc/QL3k5quS3XJ4A5Dv4KeIW7kpPGNo84TddUqA=
+3nu5sG93VQO4Lq8l4HGsqB7ZKDo4P2sqoYGkxebv5BFB4HH2pwt3eoghrWRef2eQ/vbqRLm3EWE=
 Fezz5xah8gYVer8A05HYqdhhawnPPD7UnLl3yUxD8I4AjLxFYOvgVsd4JxSgqcyCYd2urCNPK4M=
 PBk8IN7H0aQUkFsiWfm+IIVHpYaQpgoFRsmFV6sriJo=
 mZ7g1DW2FNp0IcnwIPNXTvaZ576QJmCI+MiFZ//v4q1V5hhRq/EY1nyBZKYk8dp4Bf4y9LDpVOs=
@@ -15900,3 +15876,61 @@ W8ouWK04dFkwaWUUg7hScv2KesihgwaOMGllFIO4UnKrTUS8YMTz5g==
 14XA9bJFfcWzJkvkHUZCPr1wPRqqHTiHl/oHh3UkGtQ=
 LnTPXBJS+l9PxsX3nP6yhyn02x6nxv0LpeLTVHBSZpt07AdoxJZjyw==
 cOZCuqENgODlqyni1R5367fqJ5bYFMcGO8iT7QGyxWY=
+LVbLn2n5fv8aQeqynHYKkkAe4goHvsQr
+Qc7vrUHNuIQ/zSd/E2/fYRDXkVwHmIeFnLYveRN8/k8=
+rncMMo0jfFiPFcaRyKHKGtjHOSP4JRV1+EIi64Sf7P0=
+IosC9kM1DJDdnuRaTeWba/AaWHbhc+ji9kMi+iofPBZ37GpgzaW9eQ==
+IJdy/xzwgcMXRIFxeYEYkXAqxjrX4TmiLgWnu9n1Qso=
+R7elphbbtpFIg9VPXIEScjFCttx+2uHpOJSpUGUbA/VAAPMUnYXFLL68Wve7K5hL+EIi64Sf7P0=
+a2Sa60FzrqO3cPhbyp+rsa22N1CZTIAoBZzeo3Nb3mc=
+rbY3UJlMgCi3cPhbyp+rsa22N1CZTIAoBZzeo3Nb3mc=
+/JJ0NKJFAv6t16iQiQ9gBurUo2OLEJuObnr9cxaVGVihT8TXQ/7FZEqUsX0vhHZ/+EIi64Sf7P0=
+anqc376RwxGTipz0Lf3jjEe9hwHoVuyj+EIi64Sf7P0=
+IM9mj4KeHFShAJNsB0GDkxmqOBizwM+u
+AwGjT2hgdzQvO97gG/tjKtjHOSP4JRV1+EIi64Sf7P0=
+IosC9kM1DJAIwJSLXXJAqZ6w3mNUejeN9kMi+iofPBZ37GpgzaW9eQ==
+4Wf80h7qzrmi91Qg24vlA75amaIn5rxJwK0DYyG2Jf90iVgU4tIXcY1gFgiCfJ2oROJjaQP9WKQ=
+Y+dVRuNZtwR8xM6Gyteyy9HP8eGWCEKR95InZ3+aB8LHp77VaiBHmw==
+yQEMqykqWD+HDjyHip04zvMoNTUrvzLNhw48h4qdOM537GpgzaW9eQ==
+wWtxT6JsKEa8G72MBAND/jBEH2TcAH0LpkTGHdXQxiSz7TmxBUCVyISnmfl+jwXr
++/QGTPHscnSx7nmGd0yFcPhCIuuEn+z9
+WNMTZBDdWmoihmWQ93YooWvgKHNRYTkEKKcglXM9QGR1tydI91nxxISnmfl+jwXr
+kZGWjIq8hBrGcn6pil5R9rG5ApNIuxYNmryWGNMe/KDq1KNjixCbjpGRloyKvIQaE634yT/Drts=
+L+x4xDKQPwIOSvfxbKJ8KT/82RQiLdiccMTWSlTgOh0mXQb6b1HuE4Snmfl+jwXr
+n6eNmMoEXZVIg9VPXIEScsHkR039QXmk9I3wNHHfLT+y+3orIalmXDaGnE3D64FqvnZVY/XHmBk=
+ZLWYaLTQwFNT00yxoDHMbge1hV9oPNdiuBxJpzXUBJHlMuBLBG2KL1wr9teJ6At8
+p4ATobvIyEJBEAe0rPOsn957ubBvd1UDWJtqc3K/xeh37GpgzaW9eQ==
+2uRZ3LWgKU3s1LpZnPPTQF1yFIjvIpkHJ07PbKql1qUUuAtlQKvqvoSnmfl+jwXr
+YMwJMUb57dhpdbxXdmUXQkHSyOTEUD6NaeeDVTUh9VzfaYOR7hlKUw==
+WHVMUVj+xy24hBxbnPCyU5SYC1/lCGL90txJNbCnLtA=
+fcTTwro3YPRQPyVT5UlSW5HaOaAb3JiNC+CtFAZQiBellLRDRVMCRS/hsuW2FeTK+EIi64Sf7P0=
+anqc376RwxH63G/Sd+ITwU5N5aNL8Kb/+fsXLChAXC537GpgzaW9eQ==
+ApP36dCw3rU1+ZH0GpLIphmqOBizwM+u
+3NSxVYVmCWjq1KNjixCbjgqrrElGL4o3J6da09LfDfKzLvGnSESSPw==
+EmIkGNvnLgqDpeq5P6NMcnaBuxteS3nxkO+dtjI4W6nJ4i0rd8v5x7yPFdocheW8TR6Qxf7Q7eYfsJcmbniUEfv/B/E3xCeuxMSgwK+whTg=
+k0CKTz+6bhZkDN5gogF16mJ8GdtUYnAW5mPZIdbVygc=
+k0CKTz+6bhYbkV8Wtt5rrnetHssBFc+sEzKBkjGhCcA=
+FQUi8oWeKA2bqaZrRCAOq9eCUinm2QbkfxlYu2lWv5t37GpgzaW9eQ==
+Ug9yBDBbRy1AJGxQk4iM7oJVnd+ppTRBiyj1XzzybXeeodotlyNtY9N9c3eXcprH+EIi64Sf7P0=
+GxXLVwg10cxOFtb3wYaBmSjJpI3UazAriYvw0TQEvxM=
+GxXLVwg10cy9rszg0T2EqhsVy1cINdHMWSn6x7KDyzJ37GpgzaW9eQ==
+oWpj0P6ah3fSxasgsAHRk/8x543XYTkw+EIi64Sf7P0=
+ZMr6bs8Pd9Z/79c8HSi9twTLDl3Sk9VTNaUpAglKSn6Yx0mfs88uhkpgEZ36UZf7
+XsRueZvhAyoSM4JWt9br8l7Ebnmb4QMqGNh60ZlPKZp3z8xuVJNda4Snmfl+jwXr
+xjBOWYwtJQLNj3osZXWK/8Q6uk/WHcyfHmDJTq43EEelUOmsAGym/ht/HLfJxCxsPHiDgGgVFGjReyPGb483eEpgEZ36UZf7
+9K+PZ38Hd/1bK60dslh9jD08xZT/RFfX3Xy+aWqbuA937GpgzaW9eQ==
+HMpgmZFP2a1+iQYCJ+Eb/404FmlIZbXl4io3yyjGmNM=
+9yBJjZaOaw/fEMKoqqshoJMI09NMWtzgvu349h6K1wEVmOGCUnDCxr64T06u3r+M
+wYNK0Hyz4EH7wD7jxLvdY3PxVAjhraSu/CpVdaYdGI137GpgzaW9eQ==
+eK6ybtdyXzYzjhZefi9+vNR3Fqw6Cqp0+EIi64Sf7P0=
+nzpCfqAjtr4qb5Fqdmfv82NSletWCpg++EIi64Sf7P0=
+XN2oP/Cf/bxM9QU53aO9HYuEyJVRwu+0+EIi64Sf7P0=
+vtDo+c8/v9JMURohxzuuugkZS1vTUPJxXK/c8S9othE=
+G4j5jFyDtCleJ21yxIT3bYirvQrCBfjNBHLcW35y5waR01IkjNAlvkpgEZ36UZf7
+ycU0RK38xbAus6y5YmnJ8cnFNESt/MWwzq17YE4+xLl37GpgzaW9eQ==
+NBBXNZCaNE99yZ92+zfrDQehUZ8S0w0KrP/0khwu1f8Zei93HtsZy2vuUmJt8+LzvnZVY/XHmBk=
+kfC/iWx/K4vjDJbXBE5d/YkTJ25lsDp1BZzeo3Nb3mc=
+axMzbpcdBzfcXy3GEWyP1bKs88IQ35Yo
+feu5o9+E3x01Teioz1asRWmZ459ubdRUcXIrPeOROqsbp/oOgnSwRFKDy4s9fS1ltUFz6QTXfJEd64yjwbo4FA==
+fG3H/eYATNiTe6VGxMIErrhYvi14dqfuiEjodg32FGC4CciY9cYNnUpgEZ36UZf7
+/zHDbkIHTTUW1b0/QaBs4/BkfirkT/yK2aWn5PK4ai537GpgzaW9eQ==

File diff suppressed because it is too large
+ 441 - 405
nlp/src/main/resources/tc.dict


+ 125 - 4
nlp/src/test/java/org/diagbot/nlp/test/ConceptTest.java

@@ -8,6 +8,7 @@ import org.apache.poi.ss.usermodel.Row;
 import org.apache.poi.ss.usermodel.Sheet;
 import org.apache.poi.ss.usermodel.Workbook;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.diagbot.pub.Constants;
 import org.diagbot.pub.jdbc.MysqlJdbc;
 
 import java.io.File;
@@ -28,8 +29,9 @@ public class ConceptTest {
     private static final String EXCEL_XLSX = "xlsx";
 
     private static final String lis_path = "E:\\git\\docs\\医学知识库\\化验\\化验标准库第一期-邵启华0617.xlsx";
+    private static final String lis_public_path = "E:\\git\\docs\\医学知识库\\化验\\化验标准库第一期-邵启华化验套餐公表项.xlsx";
     private static final String pacs_path = "E:\\git\\docs\\医学知识库\\辅检\\辅检标准库第一期-邵青华0612.xlsx";
-    private static final String symptom_path = "E:\\git\\docs\\医学知识库\\症状\\症状标准库-王玲0619.xlsx";
+    private static final String symptom_path = "E:\\git\\docs\\医学知识库\\症状\\症状标准库-王玲0625.xlsx";
     private static final String drug_path = "E:\\git\\docs\\医学知识库\\药品\\药品标准库-邵启华0618.xlsx";
     private static final String vital_path = "E:\\git\\docs\\医学知识库\\体征\\体征标准库第一阶段-吕纯0618.xlsx";
     private static final String part_path = "E:\\git\\docs\\医学知识库\\部位和科室\\部位标准库-最新结构0621.xlsx";
@@ -41,7 +43,8 @@ public class ConceptTest {
     public static void main(String[] args) {
         try {
 //            insertSymptom();
-            insertPart();
+//            insertPushSymptom();
+//            insertPart();
 //            insertVital();
 //            insertLis();
 //            insertPacs();
@@ -53,6 +56,9 @@ public class ConceptTest {
 
 //            insertStandardInfo();
 //            validateSplit();
+//            insertLisMealPublic();
+
+//            insertRelationSymptom();
 
         } catch (Exception e) {
             e.printStackTrace();
@@ -73,6 +79,41 @@ public class ConceptTest {
         insertTwoColumn(1, symptom_path, 0, 1, "1", "症状");
     }
 
+    public static void insertPushSymptom() throws Exception {
+        MysqlJdbc nlpJdbc = new MysqlJdbc("root", "diagbot@20180822", "jdbc:mysql://192.168.2.235:3306/med-s?useUnicode=true&characterEncoding=UTF-8");
+        List<Map<String, String>> data = nlpJdbc.query("kl_library_info", new String[]{"id", "name", "type_id"}, " where type_id = 1 and is_concept = 1");
+        Map<String, String> hasConceptWords = new HashMap<>();
+        for (Map<String, String> map : data) {
+            String name = map.get("name");
+            hasConceptWords.put(name, name);
+        }
+
+        Sheet sheet = loadSheet(symptom_path, 1);
+        int count = 0;
+        Map<String, String> concept_words = new HashMap<>();
+        Map<String, String> all_words = new HashMap<>();
+        for (Row row : sheet) {
+            // 跳过第一和第二行的目录
+            if (count < 1) {
+                count++;
+                continue;
+            }
+            count++;
+            try {
+                Cell cell = row.getCell(6);
+                if (cell != null && StringUtils.isNotEmpty(cell.getStringCellValue()) && hasConceptWords.get(cell.getStringCellValue()) == null) {
+                    all_words.put(cell.getStringCellValue().trim(), cell.getStringCellValue().trim());
+                    concept_words.put(cell.getStringCellValue().trim(), cell.getStringCellValue().trim());
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+                System.out.println("第" + count + "出现错误!");
+            }
+        }
+
+        convertAndSave("1", "症状", all_words, concept_words);
+    }
+
     public static void insertPart() throws Exception {
         insertTwoColumn(part_path, 0, 1, "3", "部位");
     }
@@ -101,6 +142,10 @@ public class ConceptTest {
         insertOneColumn(lis_path, 4, "46", "化验公表项");
     }
 
+    public static void insertLisMealPublic() throws Exception {
+        insertOneColumn(lis_public_path, 0, "46", "化验公表项");
+    }
+
     public static void insertOther() throws Exception {
         insertOneColumn(other_path, 0, "55", "既往疾病史");
         insertOneColumn(other_path, 1, "56", "外伤史");
@@ -282,6 +327,34 @@ public class ConceptTest {
 
     public static void insertDisease() throws Exception {
         insertTwoColumn(disease_path, 0, 1, "18", "疾病");
+//        String updateDate = DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss");
+//
+//        MysqlJdbc nlpJdbc = new MysqlJdbc("root", "diagbot@20180822", "jdbc:mysql://192.168.2.235:3306/med-s?useUnicode=true&characterEncoding=UTF-8");
+//        List<Map<String, String>> data = nlpJdbc.query("kl_library_info", new String[]{"id", "name", "type_id", "concept_id"}, " where type_id = 18 and name like '%,%' and is_concept = 0");
+//        String diag = "";
+//        List<Map<String, Object>> diags_list = new ArrayList<>();
+//        Map<String, String> hasDiagMap = new HashMap<>();
+//        for (Map<String, String> map : data) {
+//            diag = map.get("name");
+//            String[] diags = diag.split(",");
+//            for (String d : diags) {
+//                if (hasDiagMap.get(d) == null) {
+//                    Map<String, Object> line = new HashMap<>();
+//                    line.put("name", d);
+//                    line.put("type_id", "18");
+//                    line.put("concept_id", map.get("concept_id"));
+//                    line.put("is_concept", "0");
+//                    initInsertLine(line, updateDate);
+//                    if (!d.equals("劳力性心绞痛") && !d.equals("妊娠期高血压疾病")) {
+//                        diags_list.add(line);
+//                    }
+//
+//                    hasDiagMap.put(d, d);
+//                }
+//            }
+//        }
+//        nlpJdbc.insertBatch(diags_list, "kl_library_info", new String[]{"name", "type_id", "is_concept", "concept_id", "creator", "modifier", "gmt_create", "gmt_modified", "is_deleted"});
+
     }
 
     public static void insertDrug() throws Exception {
@@ -487,6 +560,54 @@ public class ConceptTest {
         insertLibraryInfo(all_words_list, all_words, concept_words);
     }
 
+    public static void insertRelationSymptom() throws Exception {
+        MysqlJdbc nlpJdbc = new MysqlJdbc("root", "diagbot@20180822", "jdbc:mysql://192.168.2.235:3306/med-s?useUnicode=true&characterEncoding=UTF-8");
+        List<Map<String, String>> data = nlpJdbc.query("kl_concept", new String[]{"id", "lib_name"}, " where lib_type = 1");
+        Map<String, String> hasConceptWords = new HashMap<>();
+        for (Map<String, String> map : data) {
+            hasConceptWords.put(map.get("lib_name"), map.get("id"));
+        }
+
+        String updateDate = DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss");
+
+        Sheet sheet = loadSheet(symptom_path, 1);
+        int count = 0;
+        List<Map<String, Object>> relation_words_list = new ArrayList<>();
+        List<String> hasRelationList = new ArrayList<>();
+        for (Row row : sheet) {
+            // 跳过第一和第二行的目录
+            if (count < 1) {
+                count++;
+                continue;
+            }
+            count++;
+            try {
+                Cell cell0 = row.getCell(0);
+                Cell cell6 = row.getCell(6);
+                if (cell0 != null && StringUtils.isNotEmpty(cell0.getStringCellValue())
+                        && cell6 != null && StringUtils.isNotEmpty(cell6.getStringCellValue())) {
+                    if (!hasRelationList.contains(cell0.getStringCellValue() + " " + cell6.getStringCellValue())
+                            && !hasRelationList.contains(cell6.getStringCellValue() + " " + cell0.getStringCellValue())) {
+                        Map<String, Object> line = new HashMap<>();
+                        line.put("start_id", hasConceptWords.get(cell0.getStringCellValue()));
+                        line.put("end_id", hasConceptWords.get(cell6.getStringCellValue()));
+                        line.put("relation_id", "19");
+                        initInsertLine(line, updateDate);
+                        relation_words_list.add(line);
+
+                        hasRelationList.add(cell0.getStringCellValue() + " " + cell6.getStringCellValue());
+                        hasRelationList.add(cell6.getStringCellValue() + " " + cell0.getStringCellValue());
+                    }
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+                System.out.println("第" + count + "出现错误!");
+            }
+        }
+
+        nlpJdbc.insertBatch(relation_words_list, "kl_relation", new String[]{"start_id", "end_id", "relation_id", "creator", "modifier", "gmt_create", "gmt_modified", "is_deleted"});
+    }
+
     public static void insertStandardInfo() throws Exception {
         MysqlJdbc nlpJdbc = new MysqlJdbc("root", "diagbot@20180822", "jdbc:mysql://192.168.2.235:3306/diagbot-med-0606?useUnicode=true&characterEncoding=UTF-8");
         List<Map<String, String>> data = nlpJdbc.query("kl_standard_info_0318", new String[]{"id", "name", "category_id", "category"}, " where category_id not in (1, 3, 13,14,15, 17,18,19,60,61,62, 10)");
@@ -566,8 +687,8 @@ if (concept_word_ids.get(all_words.get(list.get(i).get("name").toString())) == n
 
     public static void initInsertLine(Map<String, Object> line, String updateDate) {
         line.put("is_deleted", "N");
-        line.put("creator", "楼辉荣");
-        line.put("modifier", "楼辉荣");
+        line.put("creator", "-99999");
+        line.put("modifier", "-99999");
         line.put("gmt_create", updateDate);
         line.put("gmt_modified", updateDate);
     }

+ 172 - 106
nlp/src/test/java/org/diagbot/nlp/test/ExcelReadTest.java

@@ -29,14 +29,15 @@ public class ExcelReadTest {
     private static Map<String, String> pacs_words = new HashMap<>();
     private static Map<String, String> symptom_words = new HashMap<>();
     private static Map<String, String> vital_words = new HashMap<>();
+    private static Map<String, String> disease_words = new HashMap<>();
 
     private static final String lis_path  = "E:\\git\\docs\\医学知识库\\化验\\化验标准库第一期-邵启华0618.xlsx";
     private static final String pacs_path  = "E:\\git\\docs\\医学知识库\\辅检\\辅检标准库第一期-邵青华0617.xlsx";
-    private static final String symptom_path  = "E:\\git\\docs\\医学知识库\\症状\\症状标准库-王玲0619.xlsx";
+    private static final String symptom_path  = "E:\\git\\docs\\医学知识库\\症状\\症状标准库-王玲0625.xlsx";
     private static final String drug_path  = "E:\\git\\docs\\医学知识库\\药品\\药品标准库-邵启华0515.xlsx";
-    private static final String vital_path  = "E:\\git\\docs\\医学知识库\\体征\\体征标准库第一阶段-吕纯0618.xlsx";
+    private static final String vital_path  = "E:\\git\\docs\\医学知识库\\体征\\体征标准库第一阶段-吕纯0620.xlsx";
     private static final String part_path  = "E:\\git\\docs\\医学知识库\\部位和科室\\部位标准库-邵启华0605.xlsx";
-    private static final String disease_path = "E:\\git\\docs\\医学知识库\\诊断名和治疗方案\\知识库标准疾病名称和疾病治疗方案-邵青华0605.xlsx";
+    private static final String disease_path = "E:\\git\\docs\\医学知识库\\诊断名和治疗方案\\知识库标准疾病名称和疾病治疗方案-邵青华0627.xlsx";
 
     public static void main(String[] args) {
         try {
@@ -173,23 +174,37 @@ public class ExcelReadTest {
         Workbook workbook = getWorkbok(in, excelFile);
         Sheet sheet = workbook.getSheetAt(0);
 
-        Map<String, String> words = new HashMap<>();
-        words = loadDataFromSheet(sheet, words, new int[]{0, 1});
-
-        List<Map<String, Object>> lists = new ArrayList<>();
-        MysqlJdbc nlpJdbc = new MysqlJdbc("root", "diagbot@20180822", "jdbc:mysql://192.168.2.235:3306/diagbot-rule?useUnicode=true&characterEncoding=UTF-8");
-        List<Map<String, String>> data = nlpJdbc.query("kl_standard_info", new String[]{"id","name"}, " where category_id = 19");
-        for (Map<String, String> map : data) {
-            String name = map.get("name");
-            if (words.get(name) == null) {
-                Map<String, Object> line = new HashMap<>();
-                line.put("disease", name);
-                lists.add(line);
-                words.put(name, name);
+        int count = 0;
+        String[] alias = null;
+        for (Row row : sheet) {
+            // 跳过第一和第二行的目录
+            if (count < 1) {
+                count++;
+                continue;
+            }
+            count++;
+            try {
+                Cell cell0 = row.getCell(0);
+                Cell cell1 = row.getCell(1);
+                if (cell0 != null && !"".equals(cell0.getStringCellValue())) {
+                    put(disease_words, cell0);
+                }
+                if (cell1 != null && !"".equals(cell1.getStringCellValue())) {
+                    String val = cell1.getStringCellValue();
+                    if (val.indexOf("、") >  -1) {
+                        alias = val.split("、");
+                        for (int i = 0; i < alias.length; i++) {
+                            put(disease_words, alias[i], null,  null);
+                        }
+                    } else {
+                        put(disease_words, cell1);
+                    }
+                }
+            }catch (Exception e) {
+                e.printStackTrace();
+                System.out.println("第" + count + "出现错误!");
             }
         }
-
-        nlpJdbc.insert(lists, "disease_notin", new String[]{"disease"});
     }
 
     public static void readPart() throws Exception {
@@ -449,34 +464,41 @@ public class ExcelReadTest {
     }
 
     public static void readPart1() throws Exception {
-        readPacs();
-        readLis();
-        readSymptom();
-        readVital();
+//        readPacs();
+//        readLis();
+//        readSymptom();
+//        readVital();
+        readDisease();
 
         Map<String, String> all_words = new HashMap<>();
 
         String key = "";
         String value = "";
-        for (Map.Entry<String, String> entry : symptom_words.entrySet()) {
-            key = entry.getKey().trim().replace("(", "(").replace(")",")");
-            value = entry.getValue().trim().replace("(", "(").replace(")",")");
-            all_words.put(key, value);
-        }
-        for (Map.Entry<String, String> entry : vital_words.entrySet()) {
-            key = entry.getKey().trim().replace("(", "(").replace(")",")");
-            value = entry.getValue().trim().replace("(", "(").replace(")",")");
-            all_words.put(key, value);
-        }
-        for (Map.Entry<String, String> entry : lis_words.entrySet()) {
-            if (key.equals("血常规")) {
-                System.out.println("血常规");
-            }
-            key = entry.getKey().trim().replace("(", "(").replace(")",")");
-            value = entry.getValue().trim().replace("(", "(").replace(")",")");
-            all_words.put(key, value);
-        }
-        for (Map.Entry<String, String> entry : pacs_words.entrySet()) {
+//        for (Map.Entry<String, String> entry : symptom_words.entrySet()) {
+//            key = entry.getKey().trim().replace("(", "(").replace(")",")");
+//            value = entry.getValue().trim().replace("(", "(").replace(")",")");
+//            all_words.put(key, value);
+//        }
+//        for (Map.Entry<String, String> entry : vital_words.entrySet()) {
+//            key = entry.getKey().trim().replace("(", "(").replace(")",")");
+//            value = entry.getValue().trim().replace("(", "(").replace(")",")");
+//            all_words.put(key, value);
+//        }
+//        for (Map.Entry<String, String> entry : lis_words.entrySet()) {
+//            if (key.equals("血气分析")) {
+//                System.out.println("血气分析");
+//            }
+//            key = entry.getKey().trim().replace("(", "(").replace(")",")");
+//            value = entry.getValue().trim().replace("(", "(").replace(")",")");
+//            all_words.put(key, value);
+//        }
+//        for (Map.Entry<String, String> entry : pacs_words.entrySet()) {
+//            key = entry.getKey().trim().replace("(", "(").replace(")",")");
+//            value = entry.getValue().trim().replace("(", "(").replace(")",")");
+//            all_words.put(key, value);
+//        }
+
+        for (Map.Entry<String, String> entry : disease_words.entrySet()) {
             key = entry.getKey().trim().replace("(", "(").replace(")",")");
             value = entry.getValue().trim().replace("(", "(").replace(")",")");
             all_words.put(key, value);
@@ -533,7 +555,7 @@ public class ExcelReadTest {
                             } else if (CellType.NUMERIC == cell1.getCellTypeEnum()) {
                                 number = nf.format(cell1.getNumericCellValue());
                             }
-                            if (number.indexOf("1.") > -1 || number.indexOf("2.") > -1) {
+                            if (number.indexOf("5.") > -1 || "鉴别诊断".equals(cell0.getStringCellValue())) {
                                 if (cell2 != null && !"".equals(cell2.getStringCellValue())) {
                                     Map<String, Object> line = new HashMap<>();
                                     line.put("disease", diag);
@@ -545,6 +567,7 @@ public class ExcelReadTest {
 
                                     notinFound(all_words, not_in_lists, line);
                                 }
+
                                 if (cell3 != null && !"".equals(cell3.getStringCellValue())) {
                                     String val = cell3.getStringCellValue();
                                     if (val.indexOf("、") > -1) {
@@ -572,67 +595,110 @@ public class ExcelReadTest {
                                         notinFound(all_words, not_in_lists, line);
                                     }
                                 }
-                            }else if (number.indexOf("3.") > -1) {
-                                if (cell3 != null && cell4 != null) {
-                                    String val3 = cell3.getStringCellValue();
-                                    String val4 = cell4.getStringCellValue();
-                                    if (val4.indexOf("、") > -1) {
-                                        alias = val4.split("、");
-                                        for (int j = 0; j < alias.length; j++) {
-                                            Map<String, Object> line = new HashMap<>();
-                                            line.put("disease", diag);
-                                            line.put("type", cell0.getStringCellValue());
-                                            line.put("number", number);
-                                            line.put("standWord", cell2.getStringCellValue().trim());
-                                            line.put("correlationWord", val3.trim());
-                                            line.put("result", alias[j].trim());
-                                            line.put("update_date", updateDate);
-                                            lists.add(line);
-
-                                            notinFound(all_words, not_in_lists, line);
-                                        }
-                                    } else {
-                                        Map<String, Object> line = new HashMap<>();
-                                        line.put("disease", diag);
-                                        line.put("type", cell0.getStringCellValue());
-                                        line.put("number", number);
-                                        line.put("standWord", cell2.getStringCellValue().trim());
-                                        line.put("correlationWord", val3.trim());
-                                        line.put("result", val4.trim());
-                                        line.put("update_date", updateDate);
-                                        lists.add(line);
-
-                                        notinFound(all_words, not_in_lists, line);
-                                    }
-                                } else {
-                                    if (cell2 != null) {
-                                        Map<String, Object> line = new HashMap<>();
-                                        line.put("disease", diag);
-                                        line.put("type", cell0.getStringCellValue());
-                                        line.put("number", number);
-                                        line.put("standWord", cell2.getStringCellValue().trim());
-                                        line.put("check_label", "4");
-                                        line.put("update_date", updateDate);
-                                        not_in_lists.add(line);
-                                    }
-                                }
-                            } else {
-                                Map<String, Object> line = new HashMap<>();
-                                line.put("disease", diag);
-                                line.put("type", cell0.getStringCellValue());
-                                line.put("number", number);
-                                line.put("standWord", cell2.getStringCellValue().trim());
-                                if (cell3 != null) {
-                                    line.put("correlationWord", cell3.getStringCellValue().trim());
-                                }
-                                if (cell4 != null) {
-                                    line.put("result", cell4.getStringCellValue().trim());
-                                }
-                                line.put("update_date", updateDate);
-                                lists.add(line);
-
-                                notinFound(all_words, not_in_lists, line);
                             }
+//                            if (number.indexOf("1.") > -1 || number.indexOf("2.") > -1) {
+//                                if (cell2 != null && !"".equals(cell2.getStringCellValue())) {
+//                                    Map<String, Object> line = new HashMap<>();
+//                                    line.put("disease", diag);
+//                                    line.put("type", cell0.getStringCellValue());
+//                                    line.put("number", number);
+//                                    line.put("standWord", cell2.getStringCellValue().trim());
+//                                    line.put("update_date", updateDate);
+//                                    lists.add(line);
+//
+//                                    notinFound(all_words, not_in_lists, line);
+//                                }
+//                                if (cell3 != null && !"".equals(cell3.getStringCellValue())) {
+//                                    String val = cell3.getStringCellValue();
+//                                    if (val.indexOf("、") > -1) {
+//                                        alias = val.split("、");
+//                                        for (int j = 0; j < alias.length; j++) {
+//                                            Map<String, Object> line = new HashMap<>();
+//                                            line.put("disease", diag);
+//                                            line.put("type", cell0.getStringCellValue());
+//                                            line.put("number", number);
+//                                            line.put("standWord", alias[j].trim());
+//                                            line.put("update_date", updateDate);
+//                                            lists.add(line);
+//
+//                                            notinFound(all_words, not_in_lists, line);
+//                                        }
+//                                    } else {
+//                                        Map<String, Object> line = new HashMap<>();
+//                                        line.put("disease", diag);
+//                                        line.put("type", cell0.getStringCellValue());
+//                                        line.put("number", number);
+//                                        line.put("standWord", val.trim());
+//                                        line.put("update_date", updateDate);
+//                                        lists.add(line);
+//
+//                                        notinFound(all_words, not_in_lists, line);
+//                                    }
+//                                }
+//                            }else if (number.indexOf("3.") > -1) {
+//                                if (cell3 != null && cell4 != null) {
+//                                    String val3 = cell3.getStringCellValue();
+//                                    String val4 = cell4.getStringCellValue();
+//                                    if ("血气分析".equals(val3)) {
+//                                        System.out.println("val3 血气分析");
+//                                    }
+//                                    if (val4.indexOf("、") > -1) {
+//                                        alias = val4.split("、");
+//                                        for (int j = 0; j < alias.length; j++) {
+//                                            Map<String, Object> line = new HashMap<>();
+//                                            line.put("disease", diag);
+//                                            line.put("type", cell0.getStringCellValue());
+//                                            line.put("number", number);
+//                                            line.put("standWord", cell2.getStringCellValue().trim());
+//                                            line.put("correlationWord", val3.trim());
+//                                            line.put("result", alias[j].trim());
+//                                            line.put("update_date", updateDate);
+//                                            lists.add(line);
+//
+//                                            notinFound(all_words, not_in_lists, line);
+//                                        }
+//                                    } else {
+//                                        Map<String, Object> line = new HashMap<>();
+//                                        line.put("disease", diag);
+//                                        line.put("type", cell0.getStringCellValue());
+//                                        line.put("number", number);
+//                                        line.put("standWord", cell2.getStringCellValue().trim());
+//                                        line.put("correlationWord", val3.trim());
+//                                        line.put("result", val4.trim());
+//                                        line.put("update_date", updateDate);
+//                                        lists.add(line);
+//
+//                                        notinFound(all_words, not_in_lists, line);
+//                                    }
+//                                } else {
+//                                    if (cell2 != null) {
+//                                        Map<String, Object> line = new HashMap<>();
+//                                        line.put("disease", diag);
+//                                        line.put("type", cell0.getStringCellValue());
+//                                        line.put("number", number);
+//                                        line.put("standWord", cell2.getStringCellValue().trim());
+//                                        line.put("check_label", "4");
+//                                        line.put("update_date", updateDate);
+//                                        not_in_lists.add(line);
+//                                    }
+//                                }
+//                            } else {
+//                                Map<String, Object> line = new HashMap<>();
+//                                line.put("disease", diag);
+//                                line.put("type", cell0.getStringCellValue());
+//                                line.put("number", number);
+//                                line.put("standWord", cell2.getStringCellValue().trim());
+//                                if (cell3 != null) {
+//                                    line.put("correlationWord", cell3.getStringCellValue().trim());
+//                                }
+//                                if (cell4 != null) {
+//                                    line.put("result", cell4.getStringCellValue().trim());
+//                                }
+//                                line.put("update_date", updateDate);
+//                                lists.add(line);
+//
+//                                notinFound(all_words, not_in_lists, line);
+//                            }
                         }catch (Exception e) {
                             e.printStackTrace();
                             System.out.println("第" + count + "出现错误!" + excelFile[i].getName());
@@ -642,12 +708,12 @@ public class ExcelReadTest {
             }
         }
 
-        MysqlJdbc nlpJdbc = new MysqlJdbc("root", "diagbot@20180822", "jdbc:mysql://192.168.2.235:3306/diagbot-rule?useUnicode=true&characterEncoding=UTF-8");
-        nlpJdbc.insert(lists, "medicine_rule_part1", new String[]{"disease", "type", "number", "standWord", "correlationWord", "result", "update_date", "check_label"});
+//        MysqlJdbc nlpJdbc = new MysqlJdbc("root", "diagbot@20180822", "jdbc:mysql://192.168.2.235:3306/diagbot-rule?useUnicode=true&characterEncoding=UTF-8");
+//        nlpJdbc.insert(lists, "medicine_rule_part1", new String[]{"disease", "type", "number", "standWord", "correlationWord", "result", "update_date", "check_label"});
 
 
-//        MysqlJdbc nlpJdbc = new MysqlJdbc("root", "diagbot@20180822", "jdbc:mysql://192.168.2.235:3306/diagbot-rule?useUnicode=true&characterEncoding=UTF-8");
-//        nlpJdbc.insert(not_in_lists, "medicine_rule_part1_notin", new String[]{"disease", "type", "number", "standWord", "correlationWord", "result", "update_date", "check_label"});
+        MysqlJdbc nlpJdbc = new MysqlJdbc("root", "diagbot@20180822", "jdbc:mysql://192.168.2.235:3306/diagbot-rule?useUnicode=true&characterEncoding=UTF-8");
+        nlpJdbc.insert(not_in_lists, "medicine_rule_part1_notin", new String[]{"disease", "type", "number", "standWord", "correlationWord", "result", "update_date", "check_label"});
 
     }
 

+ 56 - 0
push-web/src/main/java/org/diagbot/push/controller/AlgorithmController.java

@@ -10,7 +10,10 @@ import org.diagbot.common.work.ResponseData;
 import org.diagbot.common.work.SearchData;
 import org.diagbot.graphWeb.work.GraphCalculate;
 import org.diagbot.graphWeb.work.LisPacsCalculate;
+import org.diagbot.nlp.util.Constants;
+import org.diagbot.nlp.util.NlpCache;
 import org.diagbot.pub.api.Response;
+import org.diagbot.pub.jdbc.MysqlJdbc;
 import org.diagbot.pub.utils.PropertiesUtil;
 import org.diagbot.pub.utils.http.HttpApi;
 import org.diagbot.pub.web.BaseController;
@@ -57,6 +60,59 @@ public class AlgorithmController extends BaseController {
         return combine(request, searchData);
     }
 
+    @RequestMapping(value = "/validate")
+    @ResponseBody
+    public Response<ResponseData> validate(HttpServletRequest request) throws Exception {
+        Response<ResponseData> response = new Response<>();
+
+        MysqlJdbc nlpJdbc = new MysqlJdbc("root", "diagbot@20180822", "jdbc:mysql://192.168.2.235:3306/med-s?useUnicode=true&characterEncoding=UTF-8");
+        List<Map<String, String>> data = nlpJdbc.query("doc_info_validate", new String[]{"pk_dcpv", "present", "diag", "sex", "age"}, "");
+
+        Map<String, String> diags = NlpCache.getStandard_info_synonym_map().get(Constants.word_property_diagnose);
+
+        List<Map<String, Object>> updates = new ArrayList<>();
+        List<Map<String, Object>> wheres = new ArrayList<>();
+        for (Map<String, String> map : data) {
+            SearchData searchData = new SearchData();
+            searchData.setAge(Integer.parseInt(map.get("age")));
+            searchData.setSex(map.get("sex"));
+            searchData.setSymptom(map.get("present"));
+            searchData.setFeatureType("2");
+            searchData.setSysCode("2");
+
+
+            Response<ResponseData> rs = combine(request, searchData);
+            List<FeatureRate> featureRates = rs.getData().getDis();
+
+            Map<String, Object> line = new HashMap<>();
+            Map<String, Object> where = new HashMap<>();
+
+            String  push_diag = "";
+            for (int i = 0; i < featureRates.size(); i++) {
+                FeatureRate fr = featureRates.get(i);
+                if ((fr.getFeatureName().equals(map.get("diag")) || fr.getFeatureName().equals(diags.get(map.get("diag")))) && i < 3) {
+                    line.put("check_3", "1");
+                } else if ((fr.getFeatureName().equals(map.get("diag")) || fr.getFeatureName().equals(diags.get(map.get("diag")))) && i < 5) {
+                    line.put("check_5", "1");
+                }
+                if (i > 0 && i < 5) {
+                    push_diag = push_diag + "," + fr.getFeatureName();
+                } else if (i == 0) {
+                    push_diag = fr.getFeatureName();
+                }
+            }
+            line.put("push_diag", push_diag);
+            where.put("pk_dcpv", map.get("pk_dcpv"));
+
+            updates.add(line);
+            wheres.add(where);
+        }
+
+        nlpJdbc.update("doc_info_validate", updates, wheres);
+
+        return response;
+    }
+
     public Response<ResponseData> combine(HttpServletRequest request, SearchData searchData) throws Exception {
         logger.info("开始推送服务......");
         Response<ResponseData> response = new Response();

+ 9 - 9
push-web/src/main/resources/static/pages/algorithm/list.html

@@ -351,18 +351,18 @@
         var symptom = $("#symptom").val();
         if (diag != '' && symptom == '') {
             $('#diag_list').html("");
-            startDiag('/algorithm/page_neural', '#symptom_list', '1,2,3,4,5', resourceType, '111', '1');
-            startDiag('/algorithm/page_neural', '#vital_list', '1,2,3,4,5', resourceType, '131', '3');
-            startDiag('/algorithm/page_neural', '#lis_list', '1,2,3,4,5', resourceType, '141', '4');
-            startDiag('/algorithm/page_neural', '#pacs_list', '1,2,3,4,5', resourceType, '151', '5');
+            startDiag('/algorithm/page_neural', '#symptom_list', '1', resourceType, '111', '1');
+            startDiag('/algorithm/page_neural', '#vital_list', '3', resourceType, '131', '3');
+            startDiag('/algorithm/page_neural', '#lis_list', '4', resourceType, '141', '4');
+            startDiag('/algorithm/page_neural', '#pacs_list', '5', resourceType, '151', '5');
 
         } else {
-            startDiag('/algorithm/page_neural', '#symptom_list', '1,2,3,4,5', resourceType, '11', '1');
-            startDiag('/algorithm/page_neural', '#vital_list', '1,2,3,4,5', resourceType, '31', '3');
-            startDiag('/algorithm/page_neural', '#lis_list', '1,2,3,4,5', resourceType, '41', '4');
-            startDiag('/algorithm/page_neural', '#pacs_list', '1,2,3,4,5', resourceType, '51', '5');
+            startDiag('/algorithm/page_neural', '#symptom_list', '1', resourceType, '11', '1');
+            startDiag('/algorithm/page_neural', '#vital_list', '3', resourceType, '31', '3');
+            startDiag('/algorithm/page_neural', '#lis_list', '4', resourceType, '41', '4');
+            startDiag('/algorithm/page_neural', '#pacs_list', '5', resourceType, '51', '5');
 
-            startDiagMapping('/algorithm/page_neural', '#diag_list', '1,2,3,4,5', resourceType, '21', '2');
+            startDiagMapping('/algorithm/page_neural', '#diag_list', '2', resourceType, '21', '2');
         }
     }