Преглед на файлове

字段标准化修改准备工作-邵逸夫入台州

rengb преди 4 години
родител
ревизия
893ef0acaa

+ 14 - 3
dbanaly/src/main/java/com/lantone/qc/dbanaly/facade/comsis/ModuleHelper.java

@@ -54,10 +54,10 @@ public class ModuleHelper {
         try {
             List<String> xmlDataTypeHospitalIds = Lists.newArrayList("1", "2", "3");
             for (String hospitalId : hospitalIds.split(",")) {
-                if (!xmlDataTypeHospitalIds.contains(hospitalId)) {
-                    continue;
+                loadStandardModule(hospitalId);
+                if (xmlDataTypeHospitalIds.contains(hospitalId)) {
+                    loadModuleInfoByHospitalId(hospitalId);
                 }
-                loadModuleInfoByHospitalId(hospitalId);
             }
             return true;
         } catch (Exception e) {
@@ -113,4 +113,15 @@ public class ModuleHelper {
         ModuleMappingUtil.xmlDataTypeModuleInfo.put(hospitalId, result);
     }
 
+    private void loadStandardModule(String hospitalId) {
+        QueryWrapper<ModuleInfo> moduleInfoQe = new QueryWrapper<>();
+        moduleInfoQe.eq("is_deleted", "N");
+        moduleInfoQe.eq("default_module", 1);
+        moduleInfoQe.eq("hospital_id", Long.parseLong(hospitalId));
+        Map<Long, List<ModuleInfo>> modeIdMsMap = moduleInfoService.list(moduleInfoQe).stream().collect(Collectors.groupingBy(i -> i.getModeId()));
+        modeIdMsMap.keySet().forEach(key -> {
+            ModuleMappingUtil.standardModuleInfo.put(key + "", modeIdMsMap.get(key).get(0).getId() + "");
+        });
+    }
+
 }

+ 5 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/facade/taizhou/TzXmlUtil.java

@@ -40,6 +40,11 @@ public class TzXmlUtil {
                 setnomark = setnomark == null ? "" : setnomark;
                 setnomark = setnomark.trim().replaceAll("&nbsp;", "");
                 text = emrTermElement.getStringValue().trim().replaceAll("&nbsp;", "");
+                /* 台州查房类别个性化处理 */
+                if ("查房类别".equals(ename) && StringUtil.isNotBlank(setnomark) && StringUtil.isNotBlank(text)){
+                    retMap.put(ename, text + setnomark);
+                    continue;
+                }
                 if (StringUtil.isBlank(retMap.get(ename))) {
                     if (StringUtil.isBlank(text)) {
                         retMap.put(ename, setnomark);

+ 10 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/util/ModuleMappingUtil.java

@@ -19,6 +19,8 @@ import java.util.Set;
 public class ModuleMappingUtil {
 
     public static final Map<String, Map<Set<String>, String>> xmlDataTypeModuleInfo = Maps.newHashMap();
+    public static final Map<String, String> htmlDataTypeModuleInfo = Maps.newHashMap();
+    public static final Map<String, String> standardModuleInfo = Maps.newHashMap();
 
     public static String getXmlDataTypeModuleId(Map<String, String> sourceMap) {
         SpecialStorageUtil specialStorageUtil = SpringContextUtil.getBean("specialStorageUtil");
@@ -38,4 +40,12 @@ public class ModuleMappingUtil {
         return xmlDataTypeModuleInfo.get(specialStorageUtil.getHospitalIdThreadLocal().get()).get(set);
     }
 
+    public static String getHtmlDataTypeModuleId(String recTitle) {
+        return htmlDataTypeModuleInfo.get(recTitle);
+    }
+
+    public static String getStandardModuleId(String modeId) {
+        return standardModuleInfo.get(modeId);
+    }
+
 }

+ 1 - 0
dbanaly/src/main/resources/application-debug.yml

@@ -40,6 +40,7 @@ spring:
         max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制)
         min-idle: 0 # 连接池中的最小空闲连接
     timeout: 20000 # 连接超时时间(毫秒)
+
 xml-is-encryped: true
 
 CRF:

+ 0 - 1
dbanaly/src/main/resources/application-dev.yml

@@ -24,7 +24,6 @@ spring:
         filters: stat
         connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
         use-global-data-source-stat: true
-
   #redis
   redis:
     database:

+ 0 - 2
dbanaly/src/main/resources/application-local.yml

@@ -24,8 +24,6 @@ spring:
         filters: stat
         connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
         use-global-data-source-stat: true
-
-  #redis
   redis:
     database:
       cache: 10 # cache索引

+ 1 - 2
dbanaly/src/main/resources/application-master.yml

@@ -24,8 +24,6 @@ spring:
         filters: stat
         connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
         use-global-data-source-stat: true
-
-  #redis
   redis:
     database:
       cache: 10 # cache索引
@@ -40,6 +38,7 @@ spring:
         max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制)
         min-idle: 0 # 连接池中的最小空闲连接
     timeout: 20000 # 连接超时时间(毫秒)
+
 xml-is-encryped: true
 
 CRF:

+ 1 - 2
dbanaly/src/main/resources/application-test.yml

@@ -24,8 +24,6 @@ spring:
         filters: stat
         connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
         use-global-data-source-stat: true
-
-  #redis
   redis:
     database:
       cache: 10 # cache索引
@@ -40,6 +38,7 @@ spring:
         max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制)
         min-idle: 0 # 连接池中的最小空闲连接
     timeout: 20000 # 连接超时时间(毫秒)
+
 xml-is-encryped: true
 
 CRF:

+ 19 - 3
kernel/src/main/java/com/lantone/qc/kernel/util/CatalogueUtil.java

@@ -237,10 +237,26 @@ public class CatalogueUtil {
      * @return
      */
     public static String subTitle(String srcText) {
-        if (StringUtil.isNotBlank(srcText) && srcText.contains("代")) {
-            srcText = srcText.substring(srcText.lastIndexOf("代") + 1);
+        String title = "";
+        if (StringUtil.isNotBlank(srcText)) {
+            //标题不包含代字,直接返回原标题
+            if (!srcText.contains("代")) {
+                return srcText;
+            }
+            //有携、兼字时,取携、兼字之前部分
+            if (srcText.contains("携")) {
+                title += srcText.substring(0, srcText.indexOf("携"));
+            } else if (srcText.contains("兼")) {
+                title += srcText.substring(0, srcText.indexOf("兼"));
+            }
+            //有代字时,取代字之后部分
+            if (srcText.contains("代") && srcText.indexOf("代") != srcText.length() - 1) {
+                title += srcText.substring(srcText.lastIndexOf("代") + 1);
+            } else {
+                return srcText;
+            }
         }
-        return srcText;
+        return title;
     }
 
     /**

+ 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==

Файловите разлики са ограничени, защото са твърде много
+ 32549 - 417
kernel/src/main/resources/cache/3/concept_diag_properties.dict


Файловите разлики са ограничени, защото са твърде много
+ 47953 - 15821
kernel/src/main/resources/cache/3/hospital_diag_info.dict


Файловите разлики са ограничени, защото са твърде много
+ 2481 - 2480
kernel/src/main/resources/cache/3/hospital_doctor_info.dict


+ 20 - 2
trans/src/main/java/com/lantone/qc/trans/comsis/OrdinaryAssistant.java

@@ -26,7 +26,26 @@ public class OrdinaryAssistant {
             retMap.put("mode_id", modeId);
             sourceMap.put("mode_id", modeId);
         }
-        Map<String, String> sourceMap_ = MapUtil.copyMap((Map) sourceMap);
+        mapKeyContrastCommon(sourceMap, keyContrasts, retMap);
+        return retMap;
+    }
+
+    public static Map<String, String> mapKeyContrast(Map<String, String> sourceMap, List<String> keyContrasts, String defaultModeId) {
+        Map<String, String> retMap = Maps.newHashMap();
+        String modeId = ModuleMappingUtil.getXmlDataTypeModuleId(sourceMap);
+        if (StringUtil.isBlank(modeId)) {
+            modeId = ModuleMappingUtil.getStandardModuleId(defaultModeId);
+        }
+        if (StringUtil.isNotBlank(modeId)) {
+            retMap.put("mode_id", modeId);
+            sourceMap.put("mode_id", modeId);
+        }
+        mapKeyContrastCommon(sourceMap, keyContrasts, retMap);
+        return retMap;
+    }
+
+    public static void mapKeyContrastCommon(Map sourceMap, List<String> keyContrasts, Map<String, String> retMap) {
+        Map<String, String> sourceMap_ = MapUtil.copyMap(sourceMap);
         String[] arry = null;
         String sourceKey = null, targetKey;
         Set<String> removeKey = new HashSet<>();
@@ -52,7 +71,6 @@ public class OrdinaryAssistant {
                 retMap.put(key, sourceMap_.get(key));
             }
         }
-        return retMap;
     }
 
     /**