Pārlūkot izejas kodu

字段标准化修改-台州邵逸夫入北仑

rengb 4 gadi atpakaļ
vecāks
revīzija
3e3534eeae

+ 12 - 0
kernel/pom.xml

@@ -95,6 +95,18 @@
             <artifactId>mysql-connector-java</artifactId>
             <version>5.1.38</version>
         </dependency>
+
+        <!--redis设置-->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-redis</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-pool2</artifactId>
+        </dependency>
+
     </dependencies>
 
     <!-- 私有仓库 -->

+ 77 - 141
kernel/src/main/resources/cache/3/concept_clinic_bodypart_properties.dict

@@ -1,148 +1,84 @@
-pnIIwZAPIIPBAIkf/X0ufw==
-ovmPnAT+BYs=
+sjwPlFuzwYtdGy/Xru8l0w==
+sjwPlFuzwYuOwjk+wlafMb496h/s94Lp
+GaEOqMDeIR/A3JPjaU/OYQ==
+KUZ84E/l6BtIxYdpVp2d2udw4JKVz6fxOAPHyqzXUMY=
+ClvKDL868eyBa0I3oBBXTiLG5UIUjigm
+cpVuhYfN0VLL15lmAanTHLudBba0KZdGSmARnfpRl/s=
+tgLfZiBNXVfe46uqWooJfQ==
++elokrz+5ZZ4nftSAgjXeP9VC/9mRBPm
+u18AKL/dfo8=
 FXYCcRyAS3o=
+1y8RNUzpzDDA3JPjaU/OYQ==
+GDAzhKkwugqOwjk+wlafMb496h/s94Lp
+vVsbjXwCHtKFIWuMj59JFg==
+S00FGSMpzFYRJHHOrCiJIw==
 LQ4RQ5c6TvEfVJH7s8MZNQ==
 KkqtLy22gBtRq6Y4vkNXyQ==
-u7zlp9tdgNmRKVPbAeWYEg==
-aC5xv6h4kt5c5OTNuAf37Q==
-eJVLnFBt3h4=
-QUV0SLvhn8MkVYph1YGRZQ==
+FpNKk6eB+A78k09Y7waUfQ==
+55LO8f+DGuqsZzaaPHDG7A==
+anCWsr9KEAcfVJH7s8MZNQ==
+Ms4itbwo4woHjnX6dZF4Ew==
+eE2lKBuqkGwbZW204O8pbL496h/s94Lp
+KPTiLOQlvfcHjnX6dZF4Ew==
+EHYxrOGlbsJINCuQrfA+Qw==
+IoIoNIGjGAkfVJH7s8MZNQ==
+TkKCqeWSukdcNzQgT7Qg/y/95Ux1UGf/
+5sS2G/r6ssUfVJH7s8MZNQ==
+Fz6WuGDyOlM=
+6BJE0DCYV4PN7oAmfhVFQqHIcEkBIHl+SmARnfpRl/s=
+ClvKDL868ewfVJH7s8MZNQ==
+IoIoNIGjGAmt+3FIqYSLwA==
+qjVzhjIuUT4fVJH7s8MZNQ==
+fAvCqq32iRGYkjXG21GhdA==
+Qz54IR1t0pxhD8mu55a07QB9XVjkemQO
+VDAaAfFpalOc8iRXg5Txmg==
+v2wP8zYN7yUfVJH7s8MZNQ==
+2O+0+BuTK7hnAFNeF32DwQ==
+LRQ8TiPskP8=
+MHWWVpSYUhZp84i3DCFu/g==
+4a+BNcRWzuwuxVbFLjJEww==
+yWJqJiL6qWQskpnR2QjFRA==
+LkBZ8uh2sivD7O64F4fyYD26Q3FauFTq
+vU9OSQNfzsdHGRV53JQHXTZxIOEr6XT/
+Z0A2kuK86msFZwSJa38bOw==
+qglFhT75KVY=
+J47wTSKVIotrynAbi7Nl7g==
+PSCtbA3GBCLqcUHlnbz5ig==
+pGzYL5VYctXxzUrAtKDMFg==
+J47wTSKVIotWP8N6Zu8teQ==
+hnOhzeqPs7c=
+FpNKk6eB+A60ivUVDCQonmb0NA6xAPvZ
+6eB67p+u3VA=
 38rBhrBd2ZA=
 WlxWJO1bvWM=
-eE2lKBuqkGxc5OTNuAf37Q==
+/UTzDiOxLWpNfh/SNay22g==
+PLBt3Oha1AAOSE8k2YZYMw==
+cA6kPjEpsoKKXDwNc4sbZv9VC/9mRBPm
+ubvY7WEHsf0HjnX6dZF4Ew==
+NI9su0Z8kvY=
+z5dpaPXQysM+03JbZpPE8K74oEbqwDfN
+e7OvqkV6Qx5DhU/YuJZA4A==
+vnSKQ0o1HZO5fhcvExqbXw==
+5j32mrEC41Q=
+teXiWF5i95089VmH6nOntT26Q3FauFTq
+C5DNXPfJ3MsXUKrj9yaJVQ==
+aBDrcQGdFjgXTO+Ia0kzAA==
+EyuDTtt1Nh1c5OTNuAf37Q==
+0NhZqdATkZ4=
 1IKx7GtShHg=
+h/OwYNYyciw=
+kGg6y+QB2f8=
+et0S9LyTiS4MhEBuylTk2g==
+goFZ0v8zcPc=
 cA6kPjEpsoJc5OTNuAf37Q==
-Dp+xJKT1n8g=
-LAphuzvX0+1zUunA7M09Hw==
-wGKkm1Axrl8=
-KkqtLy22gBtRq6Y4vkNXyQ==
-sPonp8kD0PlDfsMr80o2tQ==
-Dp+xJKT1n8g=
-ZCI0+I1MKLGoU+yPtmhbJw==
-DOXrtCrKcXSFIWuMj59JFg==
-01OrraAAmcE=
-MfpZ5926ns4HjnX6dZF4Ew==
-eJVLnFBt3h4=
-MCVPu99GbLxp84i3DCFu/g==
-2Hhy8O0hODI=
-5r1+UeeRdz0fVJH7s8MZNQ==
-Q2fNzojA4fA=
-vW3dTpk0tFiQiw2jWjwfPA==
-MNTZtG8f9LQ=
-ogVQVbsCHOI=
-Ce2UXUa+3KsfVJH7s8MZNQ==
-wmRvRyr6N5yg1rmFJe9Z2g==
-V7VA3KYNqxQ=
-aC5xv6h4kt5c5OTNuAf37Q==
-Z0C+uRrbTghAxhoGdRmsYg==
-Rpy4rqBnq0xXxvYNaFTw2Q==
-I7vcOPzkQOo=
-MAJlaU83a4ioU+yPtmhbJw==
-uUfXVwqAQBs=
-TvEGDdLx11J/ufBPhFj0Ww==
-dn2Qsy3GvOgfVJH7s8MZNQ==
-+ojTIp5v4bQHjnX6dZF4Ew==
-c06lMwdsMGY=
-zfymW7X/poA=
-hj3oPwd2A8wfVJH7s8MZNQ==
-6F5GQVOYgyui7/G0BOLWvmb0NA6xAPvZ
-eh0gnqWcoodAxhoGdRmsYg==
-HBi62z4VqkA=
-eOtp99ION5B/ufBPhFj0Ww==
-PQlTF2j6ne2bIZQhpl3bRg==
-W5f3x2qRae4=
-0dseB0FG4fk=
-9Oafm8Bskj0=
-z3AdaerZRVwfVJH7s8MZNQ==
-zdISnbEr02KedPJCHzSuhw==
-8wtXCXbnt2cfVJH7s8MZNQ==
-DvDTv3eRhQxM/KLa6uVUSQ==
-hK5uiQNYMutrynAbi7Nl7g==
-93ZjDiJwkDEcuBfsuGV26Q==
-H6hvNux0DMVfB2OTCSmksg==
-oapSrFpo1xzKZlVMzaya/w==
-cA6kPjEpsoJc5OTNuAf37Q==
-zK3IJj4OCNK63Wt9pi+oDw==
-eE2lKBuqkGxc5OTNuAf37Q==
-He8DX2NE4io=
-xrxCCtiW1kQ=
-1IKx7GtShHg=
-WlxWJO1bvWM=
-JB2E9WXZ5MgUCMxgY7oByw==
-enu6avlk5YoG1YmqGz3h9g==
-XvltMqvZ0rG4vnEZ8kLHbg==
-LQ4RQ5c6TvEfVJH7s8MZNQ==
-3IQA5HUrujc=
-13MHrUqG1pcfVJH7s8MZNQ==
-qDJCWQ+e+n6edPJCHzSuhw==
-xDC1Ti9ss3U=
-ovmPnAT+BYs=
-GgfSGissd7DNjYGroWncAQ==
-oujtg2YhATc=
-2IQUTK7lEyM=
-8iRAY6UGp0YVY3fFFOFg2g==
-Hif1tO4NCkk=
-pnIIwZAPIIPBAIkf/X0ufw==
-JJw0vZQlXuxp84i3DCFu/g==
-aGH61MJKMS7BAIkf/X0ufw==
-mA0dp7Zpk/MfVJH7s8MZNQ==
-el7aO7TjFOkHjnX6dZF4Ew==
-u7zlp9tdgNmRKVPbAeWYEg==
-9zqzljbiYu8=
-6kIlhnYnjOC/WZ1+qt48kw==
-bYP4eZXu1JMfVJH7s8MZNQ==
-38rBhrBd2ZA=
-/i2W9Ldeb+I=
-CMHCsSygook=
-J1XqrY7xMtY=
-oStcY3ItFdZp84i3DCFu/g==
-idBQS4aIrNa5fhcvExqbXw==
-DwvME4SMq1+bOR+EdoRoFg==
-tr3mC/s6c9sVY3fFFOFg2g==
-H45LTbfORk8=
-H8iHeeS1rXY=
-MOuKy1wkq4b7Dji9AZqQog==
-De0vhPcQSMBYGLQ8FmimcA==
-3BvyzjY734Zp84i3DCFu/g==
-HM89DEXwIpZbnoRDJ143bg==
-rz3JZr31IyPYt42Urg1Jzw==
-syl6GnJDiUoHjnX6dZF4Ew==
-aD5eU1o4MmM+03JbZpPE8K74oEbqwDfN
-OgJkiiRLMa0fVJH7s8MZNQ==
-36HIq5sBqNHNjYGroWncAQ==
-PTX9F+XFiHM=
-FXYCcRyAS3o=
-QqPqll5V3q+ken3TgiVM7Q==
-MgaLJr/9B1a4ACWlx8X4SA==
-SUTiIJK8tCefXEA0j/uq7Q==
-PV15+/MoQVT69Mxpvjn8ew==
-+37KuiO62gI=
-OxBAAUKmMB00iPLsFnfW9Q==
-TkKCqeWSukfkqT33kNdg7XtqtAiTi3CE
-+XIIOz+kxpCUAfTSDenAAg==
-noFHr1hkTNjL15F1MBXHSA==
-Az2U7M6QU8cHjnX6dZF4Ew==
-ypYq0llNvxtI/qHgUfgHEQ==
-JPNNI7Mn7GkOCoFD2N6+gg==
-0sR5tvt5nTkfVJH7s8MZNQ==
-qDsVL3hjCgxefGaE90oS7A==
-CCwoTxnngSQfVJH7s8MZNQ==
-imwDTINwXfjYlg1d8mP6iA==
-eXtihU+dgoH+XFxDriiYrA==
-qIWekMxNvsIfVJH7s8MZNQ==
-KZUjBH3QG1G82j8JYvRviu4snVNHMRDd
-qJUZMtAw/WiAhcQlN1BQqQ==
-lwGHWf1Es9kfVJH7s8MZNQ==
-H5rQ7wE9KYA=
-Ia0GAZyPZmQfVJH7s8MZNQ==
-QUV0SLvhn8MkVYph1YGRZQ==
-KSzY6T6+c7txOA0SFqxXjw==
-rmxr1ubN35NRq6Y4vkNXyQ==
-9ON7f+cfbFKQDSBz6+VqxQ==
-RRmtNZvkAQNdGy/Xru8l0w==
-tEpz4Ws2I3E=
-8d20YPKZX9MHjnX6dZF4Ew==
-KUKo8hZ4qfUfVJH7s8MZNQ==
-V8p/97BlQ1uBggh8N37P8g==
-6ByZH6ejZBQHjnX6dZF4Ew==
-GwjNkWrksZShsfR9iW7TiQ==
+BZNVMNz30Z00iPLsFnfW9Q==
+FUNtEl6WjOUfVJH7s8MZNQ==
+1boew8BvzsDzIpTnzy5Qnw==
+/CIzubCbNzzkzFf+CBlT64JiFWxfW6DV
+teXiWF5i953EeSAoaVSW+wBBqlZ1ciHqSmARnfpRl/s=
+CTNjqF5g7EIfVJH7s8MZNQ==
+OOQuqjL/h5M16D9aZjbrRw==
+ZfWBQ/To1p1p84i3DCFu/g==
+Q449MTqnm/c=
+xmHl5DY7FyM=
+hV3gMCbT8x+fXEA0j/uq7Q==

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 32549 - 417
kernel/src/main/resources/cache/3/concept_diag_properties.dict


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 47953 - 15821
kernel/src/main/resources/cache/3/hospital_diag_info.dict


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 2481 - 2480
kernel/src/main/resources/cache/3/hospital_doctor_info.dict


+ 107 - 0
kernel/src/test/java/com/lantone/qc/kernel/KnowledgeTest.java

@@ -0,0 +1,107 @@
+package com.lantone.qc.kernel;
+
+import com.google.common.collect.Lists;
+import com.lantone.qc.kernel.structure.ai.model.EntityBlock;
+import com.lantone.qc.kernel.structure.ai.model.Lemma;
+import com.lantone.qc.kernel.structure.ai.model.ConflictFinder;
+import com.lantone.qc.kernel.structure.ai.model.Relation;
+import com.lantone.qc.kernel.util.CatalogueUtil;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * @Description:
+ * @Author: HUJING
+ * @Date: 2020/8/1 13:32
+ */
+
+
+public class KnowledgeTest {
+
+    public static Lemma lemmaSetting(Integer start, Integer end, Integer id, String name, String value) {
+        Lemma lemma_1 = new Lemma();
+        lemma_1.setFrom(start);
+        lemma_1.setTo(end);
+        lemma_1.setProperty(name);
+        lemma_1.setText(value);
+        lemma_1.setId(id);
+        return lemma_1;
+    }
+
+    public static Relation relationSetting(Integer fromId, Integer toId, String relationName){
+        Relation relation = new Relation();
+        relation.setFrom(fromId);
+        relation.setTo(toId);
+        relation.setRelationName(relationName);
+        return relation;
+    }
+
+    public static void main(String[] args) {
+
+        //        Set<Integer[]> xx = new HashSet<>();
+        //        xx.add(new Integer[]{11, 22});
+        //        xx.add(new Integer[]{11, 22});
+        //        System.out.println(xx.size());
+
+        //
+        ConflictFinder finder = new ConflictFinder();
+
+        Lemma lemma_1 = lemmaSetting(11, 20, 1, "指标值", "20次/分钟;体温");
+        Lemma lemma_23 = lemmaSetting(129, 130, 23, "身体部位", "腹");
+        Lemma lemma_24 = lemmaSetting(130, 131, 24, "临床表现", "软");
+        Lemma lemma_25 = lemmaSetting(132, 133, 25, "否定", "无");
+
+        Lemma lemma_30 = lemmaSetting(100, 103, 30, "修饰", "边界清");
+        Lemma lemma_31 = lemmaSetting(100, 103, 31, "修饰", "边界不清");
+        Lemma lemma_26 = lemmaSetting(100, 103, 26, "临床表现", "压痛");
+        Lemma lemma_40 = lemmaSetting(100, 103, 40, "一般情况", "胃纳");
+        Lemma lemma_41 = lemmaSetting(100, 103, 41, "一般情况描述", "差");
+
+        Lemma lemma_50 = lemmaSetting(100, 103, 50, "临床表现", "胃纳可");
+
+        Relation relation23_26 = relationSetting(23, 26, "身体部位-临床表现");
+        Relation relation25_26 = relationSetting(25, 26, "否定-临床表现");
+        Relation relation40_41 = relationSetting(40, 41, "一般情况-一般情况描述");
+
+
+        // 放入专科检查中的实体列表
+        List<Lemma> checkLemmas = Lists.newArrayList(lemma_1, lemma_23, lemma_24, lemma_25, lemma_30, lemma_26,
+                lemma_40, lemma_41);
+
+        // 放入现病史中的实体列表
+        List<Lemma> presentLemmas = Lists.newArrayList(lemma_1, lemma_23, lemma_24, lemma_25,
+                lemma_31, lemma_26, lemma_50);
+
+        // 放入专科检查中的关系列表
+        List<Relation> checkRelations = Lists.newArrayList(relation23_26, relation25_26, relation40_41);
+        // 放入现病史中的关系列表
+        List<Relation> presentRelations = Lists.newArrayList(relation23_26);
+
+        Object[] checkPairs;
+        Object[] presentPairs;
+        checkPairs = new Object[] {checkLemmas, checkRelations};
+        presentPairs = new Object[] {presentLemmas, presentRelations};
+
+        List<Object[]> positionPairs = finder.findConflictPositions(checkPairs, presentPairs);
+        if (positionPairs.size() > 0) {
+            String info = "";
+            for (int i = 0; i < positionPairs.size(); i++) {
+                if (i % 2 != 0){
+                    String infoStr = "";
+                    Object[] entityBlocks = positionPairs.get(i);
+                    for (Object o:entityBlocks) {
+                        EntityBlock entityBlock = (EntityBlock) o;
+                        infoStr += entityBlock.getSearchWord() + "->";
+                    }
+                    info = CatalogueUtil.concatInfo(info, infoStr.substring(0, infoStr.length() - 2));
+                }
+            }
+            System.out.println(info);
+        }
+        System.out.println("有冲突的位置组数目:" + positionPairs.size()/2);
+
+    }
+}