Browse Source

同义词环境切换

zhoutg 4 years ago
parent
commit
fc99bb82af

+ 2 - 0
src/main/java/com/diagbot/facade/CommonFacade.java

@@ -214,6 +214,7 @@ public class CommonFacade {
         List<String> vitalList = new ArrayList<>();
         VitalLabel vitalLabel = wordCrfDTO.getVitalLabel();
         vitalList.addAll(CoreUtil.getPropertyList(vitalLabel.getVitals()));
+        vitalList.addAll(CoreUtil.getPropertyList(vitalLabel.getClinicals()));
         standConvert.setVitalList(vitalList);
 
         // 输血
@@ -259,6 +260,7 @@ public class CommonFacade {
         CoreUtil.setPropertyList(wordCrfDTO.getPacsOrder(), "name", "uniqueName", map.get(StandConvertEnum.pacs.getName()));
         //体征回填
         CoreUtil.setPropertyList(vitalLabel.getVitals(), map.get(StandConvertEnum.vital.getName()));
+        CoreUtil.setPropertyList(vitalLabel.getClinicals(), map.get(StandConvertEnum.vital.getName()));
         //手术回填
         CoreUtil.setPropertyList(presentLabel.getOperations(), map.get(StandConvertEnum.operation.getName()));
         CoreUtil.setPropertyList(pastLabel.getOperations(), map.get(StandConvertEnum.operation.getName()));

+ 9 - 5
src/main/java/com/diagbot/facade/NeoFacade.java

@@ -888,13 +888,17 @@ public class NeoFacade {
                         redisUtil.updateValue(type + "Conv:" + s, s);
                     } else {
                         String rateStr = standConvertCrfDTO.getStandard_words().get(0).get("rate");
-                        BigDecimal rate = new BigDecimal(rateStr);
-                        int flag = rate.compareTo(new BigDecimal(standConvertRate));
-                        if (flag < 0) {
+                        if (StringUtil.isBlank(rateStr)) {
                             redisUtil.updateValue(type + "Conv:" + s, s);
                         } else {
-                            redisUtil.updateValue(type + "Conv:" + s, standConvertCrfDTO.getStandard_words().get(0).get("standard_word"));
-                            lastS = standConvertCrfDTO.getStandard_words().get(0).get("standard_word");
+                            BigDecimal rate = new BigDecimal(rateStr);
+                            int flag = rate.compareTo(new BigDecimal(standConvertRate));
+                            if (flag < 0) {
+                                redisUtil.updateValue(type + "Conv:" + s, s);
+                            } else {
+                                redisUtil.updateValue(type + "Conv:" + s, standConvertCrfDTO.getStandard_words().get(0).get("standard_word"));
+                                lastS = standConvertCrfDTO.getStandard_words().get(0).get("standard_word");
+                            }
                         }
                     }
                 } else {

+ 61 - 0
src/main/java/com/diagbot/util/CoreUtil.java

@@ -625,4 +625,65 @@ public class CoreUtil {
     public static void getDebugStr(String msg, Object error, Map<String, Object> debugMap) {
         debugMap.put(msg,  error);
     }
+
+    /**
+     * 年龄字符串转换成double类型
+     *
+     * @param ageStr
+     * @return
+     */
+    public static Double convertAge(String ageStr) {
+        try {
+            if (StringUtil.isEmpty(ageStr)) {
+                return 0.0;
+            }
+            // 全是整形数字,当成年龄处理
+            if (CatalogueUtil.numbersOnly(ageStr)) {
+                return Double.parseDouble(ageStr);
+            }
+            // 20日
+            if (ageStr.endsWith("日")) {
+                return getHalfUp((Double.parseDouble(ageStr.substring(0, ageStr.length() - 1))) / 365);
+            }
+            // 3岁
+            if (ageStr.endsWith("岁")) {
+                return Double.parseDouble(ageStr.substring(0, ageStr.length() - 1));
+            }
+            // 1.08月 | .11月 | 3月
+            if (ageStr.endsWith("月")) {
+                String noUnit = ageStr.substring(0, ageStr.length() - 1);
+                String[] ageArr = new String[2];
+                String[] splitArr = noUnit.split("\\.");
+                if (splitArr.length == 1) {
+                    ageArr[0] = splitArr[0];
+                } else if (splitArr.length == 2) {
+                    ageArr[0] = splitArr[0];
+                    ageArr[1] = splitArr[1];
+                }
+                Double daySum = 0.0D;
+                if (StringUtil.isNotBlank(ageArr[0])) {
+                    daySum += Double.parseDouble(ageArr[0]) * 30;
+                }
+                if (StringUtil.isNotBlank(ageArr[1])) {
+                    daySum += Double.parseDouble(ageArr[1]);
+                }
+                return getHalfUp(daySum / 365);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            return 0.0;
+        }
+        return 0.0;
+    }
+
+    /**
+     * 四舍五入保留2位小数
+     *
+     * @param ageStr
+     * @return
+     */
+    public static Double getHalfUp(Double ageStr) {
+        BigDecimal bg = new BigDecimal(String.valueOf(ageStr));
+        return bg.setScale(3, BigDecimal.ROUND_HALF_UP).doubleValue();
+    }
 }

+ 1 - 1
src/main/java/com/diagbot/web/TestController.java

@@ -112,7 +112,7 @@ public class TestController {
         return RespDTO.onSuc(testFacade.testStandConvert(standConvertCrfVO));
     }
 
-    @ApiOperation(value = "标准词批量转换API[zhoutg]", notes = "类型,疾病: disease,症状: symptom,手术和操作:operation,药品: drug,实验室检查:lis,辅助检查:pacs, 辅助检查:vital")
+    @ApiOperation(value = "标准词批量转换API[zhoutg]", notes = "类型,疾病: disease,症状: symptom,手术和操作:operation,药品: drug,实验室检查:lis,辅助检查:pacs, 查:vital")
     @PostMapping("/testStandConvertBatch")
     public RespDTO<StandConvertCrfBatchDTO> testStandConvertBatch(@RequestBody List<StandConvertCrfVO> standConvertCrfVOList) {
         return RespDTO.onSuc(testFacade.testStandConvertBatch(standConvertCrfVOList));

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

@@ -153,7 +153,7 @@ ChiefPresentSimilarity:
   url: http://192.168.2.234:3456
 
 StandConvert:
-  url: http://192.168.3.150:23232
+  url: http://192.168.2.234:23232
   rate: 0.9
 
 debugFlag: true

+ 1 - 1
src/main/resources/application-local.yml

@@ -153,7 +153,7 @@ ChiefPresentSimilarity:
   url: http://192.168.2.234:3456
 
 StandConvert:
-  url: http://192.168.3.150:23232
+  url: http://192.168.2.234:23232
   rate: 0.9
 
 debugFlag: true

+ 1 - 1
src/main/resources/application-pre.yml

@@ -153,7 +153,7 @@ ChiefPresentSimilarity:
   url: http://192.168.2.234:3456
 
 StandConvert:
-  url: http://192.168.3.150:23232
+  url: http://192.168.2.234:23232
   rate: 0.9
 
 debugFlag: true

+ 1 - 1
src/main/resources/application-pro.yml

@@ -155,7 +155,7 @@ ChiefPresentSimilarity:
   url: http://192.168.2.234:3456
 
 StandConvert:
-  url: http://192.168.3.150:23232
+  url: http://192.168.2.234:23232
   rate: 0.9
 
 debugFlag: true

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

@@ -153,7 +153,7 @@ ChiefPresentSimilarity:
   url: http://192.168.2.234:3456
 
 StandConvert:
-  url: http://192.168.3.150:23232
+  url: http://192.168.2.234:23232
   rate: 0.9
 
 debugFlag: true