Explorar o código

Merge branch 'dev/neo2mysql20210120' into dev/diagnose20210315

zhoutg %!s(int64=4) %!d(string=hai) anos
pai
achega
657686e499

+ 13 - 4
src/main/java/com/diagbot/facade/KlConceptFacade.java

@@ -5,6 +5,7 @@ import com.diagbot.dto.GetAllForRelationDTO;
 import com.diagbot.entity.KlConcept;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.LexiconEnum;
+import com.diagbot.enums.StatusEnum;
 import com.diagbot.service.impl.KlConceptServiceImpl;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.StringUtil;
@@ -15,6 +16,7 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Component;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -40,10 +42,16 @@ public class KlConceptFacade extends KlConceptServiceImpl {
         //type: 类型:1-化验大项、2-化验小项、3-辅检、4-诊断、5-药品、6-手术和操作、7-科室、8-输血
         Integer type = convertType(conceptVO.getType());
 
-        List<KlConcept> concepts = this.list(new QueryWrapper<KlConcept>()
-                .eq("is_deleted", IsDeleteEnum.N.getKey())
-                .eq("lib_type", type)
-                .in("lib_name", conceptVO.getNames()));
+        QueryWrapper<KlConcept> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .in("lib_name", conceptVO.getNames());
+        if (conceptVO.getType().equals(3)) {
+            //辅检同时检索辅检项目和辅检子项
+            queryWrapper.in("lib_type", Arrays.asList(LexiconEnum.PacsName.getKey(), LexiconEnum.PacsSubName.getKey()));
+        } else {
+            queryWrapper.eq("lib_type", type);
+        }
+        List<KlConcept> concepts = this.list(queryWrapper);
 
         if (ListUtil.isNotEmpty(concepts)) {
             retList = concepts.stream().map(i -> i.getLibName()).distinct().collect(Collectors.toList());
@@ -98,6 +106,7 @@ public class KlConceptFacade extends KlConceptServiceImpl {
                     .eq("is_deleted", IsDeleteEnum.N.getKey())
                     .like(StringUtil.isNotBlank(name), "lib_name", name.trim())
                     .eq("lib_type", libType)
+                    .eq("status", StatusEnum.Enable.getKey())
                     .notIn(ListUtil.isNotEmpty(excludedConceptIds), "id", excludedConceptIds));
             if (ListUtil.isNotEmpty(conceptList)) {
                 getAllForRelationDTOS = conceptList.stream().map(x -> {

+ 70 - 66
src/main/java/com/diagbot/util/CoreUtil.java

@@ -59,7 +59,7 @@ public class CoreUtil {
         }
         for (T t : list) {
             try {
-                String val = (String)getFieldValue(t, propertyName);
+                String val = (String) getFieldValue(t, propertyName);
                 if (StringUtil.isNotBlank(val)) {
                     res.add(val);
                 }
@@ -104,8 +104,8 @@ public class CoreUtil {
         return res;
     }
 
-    public static <T> void  setPropertyList(T list, String propertyName, String standName, Map<String, String> map) {
-        if(list == null){
+    public static <T> void setPropertyList(T list, String propertyName, String standName, Map<String, String> map) {
+        if (list == null) {
             return;
         }
         try {
@@ -130,19 +130,20 @@ public class CoreUtil {
 
     /**
      * 循环向上转型, 获取对象的 DeclaredField
-     * @param object : 子类对象
+     *
+     * @param object    : 子类对象
      * @param fieldName : 父类中的属性名
      * @return 父类中的属性对象
      */
-    public static Field getDeclaredField(Object object, String fieldName){
-        Field field = null ;
+    public static Field getDeclaredField(Object object, String fieldName) {
+        Field field = null;
 
-        Class<?> clazz = object.getClass() ;
+        Class<?> clazz = object.getClass();
 
-        for(; clazz != Object.class ; clazz = clazz.getSuperclass()) {
+        for (; clazz != Object.class; clazz = clazz.getSuperclass()) {
             try {
-                field = clazz.getDeclaredField(fieldName) ;
-                return field ;
+                field = clazz.getDeclaredField(fieldName);
+                return field;
             } catch (Exception e) {
                 //这里甚么都不要做!并且这里的异常必须这样写,不能抛出去。
                 //如果这里的异常打印或者往外抛,则就不会执行clazz = clazz.getSuperclass(),最后就不会进入到父类中了
@@ -154,49 +155,51 @@ public class CoreUtil {
 
     /**
      * 直接读取对象的属性值, 忽略 private/protected 修饰符, 也不经过 getter
-     * @param object : 子类对象
+     *
+     * @param object    : 子类对象
      * @param fieldName : 父类中的属性名
      * @return : 父类中的属性值
      */
-    public static Object getFieldValue(Object object, String fieldName){
+    public static Object getFieldValue(Object object, String fieldName) {
         //根据 对象和属性名通过反射 调用上面的方法获取 Field对象
-        Field field = getDeclaredField(object, fieldName) ;
+        Field field = getDeclaredField(object, fieldName);
 
         //抑制Java对其的检查
-        field.setAccessible(true) ;
+        field.setAccessible(true);
 
         try {
             //获取 object 中 field 所代表的属性值
-            return field.get(object) ;
+            return field.get(object);
 
-        } catch(Exception e) {
-            e.printStackTrace() ;
+        } catch (Exception e) {
+            e.printStackTrace();
         }
         return null;
     }
 
     /**
      * 直接设置对象属性值, 忽略 private/protected 修饰符, 也不经过 setter
-     * @param object : 子类对象
-     * @param name : 父类中的属性名
+     *
+     * @param object    : 子类对象
+     * @param name      : 父类中的属性名
      * @param standName : 要替换的属性名
-     * @param value : 将要设置的值
+     * @param value     : 将要设置的值
      */
-    public static void setFieldValue(Object object, String name, String standName, Map<String, String> value){
+    public static void setFieldValue(Object object, String name, String standName, Map<String, String> value) {
         //根据 对象和属性名通过反射 调用上面的方法获取 Field对象
-        Field field = getDeclaredField(object, name) ;
+        Field field = getDeclaredField(object, name);
 
         //抑制Java对其的检查
-        field.setAccessible(true) ;
+        field.setAccessible(true);
 
         try {
             //将 object 中 field 所代表的值 设置为 value
-            String key = (String)field.get(object);
+            String key = (String) field.get(object);
             if (value != null && value.get(key) != null) {
-                Field standField = getDeclaredField(object, standName) ;
+                Field standField = getDeclaredField(object, standName);
                 standField.setAccessible(true);
                 if ("uniqueName".equals(standName)) {
-                    String uniqueName = (String)standField.get(object);
+                    String uniqueName = (String) standField.get(object);
                     if (StringUtil.isBlank(uniqueName)) {
                         standField.set(object, value.get(key));
                     }
@@ -212,14 +215,14 @@ public class CoreUtil {
 
     }
 
-    public static <T> List<String> setPropertyList(List<T> list, String name, String detailName,String uniqueName, Map<String, String> map) {
+    public static <T> List<String> setPropertyList(List<T> list, String name, String detailName, String uniqueName, Map<String, String> map) {
         List<String> res = new ArrayList<>();
         if (ListUtil.isEmpty(list)) {
             return res;
         }
         for (T t : list) {
             try {
-                setFieldValue(t, name, detailName,uniqueName, map);
+                setFieldValue(t, name, detailName, uniqueName, map);
             } catch (Exception e) {
                 e.printStackTrace();
             }
@@ -227,23 +230,23 @@ public class CoreUtil {
         return res;
     }
 
-    public static void setFieldValue(Object object, String name, String standName,String unique, Map<String, String> value){
+    public static void setFieldValue(Object object, String name, String standName, String unique, Map<String, String> value) {
         //根据 对象和属性名通过反射 调用上面的方法获取 Field对象
-        Field field = getDeclaredField(object, name) ;
-        Field field1 = getDeclaredField(object, standName) ;
+        Field field = getDeclaredField(object, name);
+        Field field1 = getDeclaredField(object, standName);
         //抑制Java对其的检查
-        field.setAccessible(true) ;
-        field1.setAccessible(true) ;
+        field.setAccessible(true);
+        field1.setAccessible(true);
 
         try {
             //将 object 中 field 所代表的值 设置为 value
-            String key = (String)field.get(object);
-            String key1 = (String)field1.get(object);
-//            String lis_c = key+key1;
+            String key = (String) field.get(object);
+            String key1 = (String) field1.get(object);
+            //            String lis_c = key+key1;
             String lis_c = key1;
             if (value != null && value.get(lis_c) != null) {
-                Field standField = getDeclaredField(object, unique) ;
-                standField.setAccessible(true) ;
+                Field standField = getDeclaredField(object, unique);
+                standField.setAccessible(true);
                 standField.set(object, value.get(lis_c));
             }
         } catch (IllegalArgumentException e) {
@@ -289,7 +292,7 @@ public class CoreUtil {
             Map mapLis = CoreUtil.compareLis(ruleBaseDTO, lis);
             if (CoreUtil.getMapFlag(mapLis)) {
                 flag = true;
-                msgList.add((String)mapLis.get("msg"));
+                msgList.add((String) mapLis.get("msg"));
             }
         }
         map.put("flag", flag);
@@ -419,7 +422,7 @@ public class CoreUtil {
                 if (value < max) {
                     maxFlag = true;
                 }
-            } else if ("<=".equals(ruleBaseDTO.getBaseMaxOperator())){
+            } else if ("<=".equals(ruleBaseDTO.getBaseMaxOperator())) {
                 if (value <= max) {
                     maxFlag = true;
                 }
@@ -430,7 +433,7 @@ public class CoreUtil {
                 if (value > min) {
                     minFlag = true;
                 }
-            } else if (">=".equals(ruleBaseDTO.getBaseMinOperator())){
+            } else if (">=".equals(ruleBaseDTO.getBaseMinOperator())) {
                 if (value >= min) {
                     minFlag = true;
                 }
@@ -458,8 +461,8 @@ public class CoreUtil {
         return flag;
     }
 
-    public static String subZeroAndDot(String s){
-        if(s.indexOf(".") > 0){
+    public static String subZeroAndDot(String s) {
+        if (s.indexOf(".") > 0) {
             s = s.replaceAll("0+?$", "");//去掉多余的0
             s = s.replaceAll("[.]$", "");//如最后一位是.则去掉
         }
@@ -468,10 +471,11 @@ public class CoreUtil {
 
     /**
      * list 转 string
+     *
      * @param list
      * @return
      */
-    public static  String listConvertString(List<String> list){
+    public static String listConvertString(List<String> list) {
         return StringUtils.join(list, ",");
     }
 
@@ -484,7 +488,7 @@ public class CoreUtil {
      */
     public static void getDebugStr(long start, String msg, Map<String, Object> debugMap) {
         long end = System.currentTimeMillis();
-        debugMap.put(msg,  + (end - start) / 1000.0 + "秒");
+        debugMap.put(msg, +(end - start) / 1000.0 + "秒");
     }
 
     /**
@@ -520,7 +524,7 @@ public class CoreUtil {
      * @param debugMap
      */
     public static void getDebugStr(String msg, Object error, Map<String, Object> debugMap) {
-        debugMap.put(msg,  error);
+        debugMap.put(msg, error);
     }
 
     /**
@@ -552,7 +556,7 @@ public class CoreUtil {
                 String[] ageArr = new String[2];
                 int indexSui = ageStr.indexOf("岁");
                 ageArr[0] = ageStr.substring(0, indexSui);
-                ageArr[1] = ageStr.substring(indexSui + 1,ageStr.indexOf("个月"));
+                ageArr[1] = ageStr.substring(indexSui + 1, ageStr.indexOf("个月"));
                 return Double.parseDouble(ageArr[0]) + getHalfUp(Double.parseDouble(ageArr[1]) / 12);
             }
             // 1.08月 | .11月 | 3月
@@ -677,7 +681,7 @@ public class CoreUtil {
     public static <T> void addAllConvert(List<Item> source, List<T> convertList) {
         List<Item> other = convertItem(convertList);
         if (ListUtil.isEmpty(other)) {
-            return ;
+            return;
         }
         if (source == null) {
             source = new ArrayList<>();
@@ -695,11 +699,11 @@ public class CoreUtil {
         List<Item> itemList = new ArrayList<>();
         if (ListUtil.isNotEmpty(convertList)) {
             for (T t : convertList) {
-                Negative negative = (Negative)CoreUtil.getFieldValue(t, "negative");
+                Negative negative = (Negative) CoreUtil.getFieldValue(t, "negative");
                 if (negative == null) {
                     Item item = new Item();
-                    item.setName((String)CoreUtil.getFieldValue(t, "name"));
-                    item.setUniqueName((String)CoreUtil.getFieldValue(t, "standName"));
+                    item.setName((String) CoreUtil.getFieldValue(t, "name"));
+                    item.setUniqueName((String) CoreUtil.getFieldValue(t, "standName"));
                     itemList.add(item);
                 }
             }
@@ -728,7 +732,7 @@ public class CoreUtil {
      */
     public static List<String> getMapMsgList(Map map) {
         if (map != null && map.get("flag") != null && (Boolean) map.get("flag") == true) {
-            List<String> msgList = (List<String>)map.get("msgList");
+            List<String> msgList = (List<String>) map.get("msgList");
             if (ListUtil.isEmpty(msgList)) {
                 return new ArrayList<>();
             } else {
@@ -747,7 +751,7 @@ public class CoreUtil {
      */
     public static <T> void addList(List<T> source, List<? extends T> addList) {
         if (source == null) {
-            return ;
+            return;
         }
         if (ListUtil.isNotEmpty(addList)) {
             source.addAll(addList);
@@ -763,7 +767,7 @@ public class CoreUtil {
      */
     public static <T> void addSet(Set<T> source, List<? extends T> addList) {
         if (source == null) {
-            return ;
+            return;
         }
         if (ListUtil.isNotEmpty(addList)) {
             source.addAll(addList);
@@ -782,8 +786,8 @@ public class CoreUtil {
             return new ArrayList<>();
         }
         return list.stream()
-                .filter(r -> StringUtil.isBlank((String)getFieldValue(r, "uniqueName")))
-                .map(r -> (String)getFieldValue(r, targetProperty))
+                .filter(r -> StringUtil.isBlank((String) getFieldValue(r, "uniqueName")))
+                .map(r -> (String) getFieldValue(r, targetProperty))
                 .collect(Collectors.toList());
     }
 
@@ -799,8 +803,8 @@ public class CoreUtil {
             return new ArrayList<>();
         }
         return list.stream()
-                .filter(r -> StringUtil.isNotBlank((String)getFieldValue(r, "name")))
-                .map(r -> (String)getFieldValue(r, "name"))
+                .filter(r -> StringUtil.isNotBlank((String) getFieldValue(r, "name")))
+                .map(r -> (String) getFieldValue(r, "name"))
                 .collect(Collectors.toList());
     }
 
@@ -822,7 +826,7 @@ public class CoreUtil {
             if (StringUtil.isNotBlank(name)) {
                 res.add(name);
             }
-            BodyPart bodyPart = (BodyPart)getFieldValue(t, "bodyPart");
+            BodyPart bodyPart = (BodyPart) getFieldValue(t, "bodyPart");
             if (bodyPart != null && StringUtil.isNotBlank(bodyPart.getName())) {
                 res.add(bodyPart.getName() + name);
             }
@@ -844,7 +848,7 @@ public class CoreUtil {
         }
         for (T t : list) {
             // 刨去体温,脉搏,数值类型的体征数据
-            PD pd = (PD)getFieldValue(t, "pd");
+            PD pd = (PD) getFieldValue(t, "pd");
             if (pd == null || (pd != null && StringUtil.isNotBlank(pd.getUnit()))) {
                 continue;
             }
@@ -854,7 +858,7 @@ public class CoreUtil {
                 // 查体结果
                 res.add(name + pd.getName());
                 // 查体部位 + 查体结果
-                BodyPart bodyPart = (BodyPart)getFieldValue(t, "bodyPart");
+                BodyPart bodyPart = (BodyPart) getFieldValue(t, "bodyPart");
                 if (bodyPart != null && StringUtil.isNotBlank(bodyPart.getName())) {
                     res.add(bodyPart.getName() + name + pd.getName());
                 }
@@ -875,8 +879,8 @@ public class CoreUtil {
             return new ArrayList<>();
         }
         return list.stream()
-                .filter(r -> StringUtil.isBlank((String)getFieldValue(r, "uniqueName")))
-                .map(r -> (String)getFieldValue(r, "name"))
+                .filter(r -> StringUtil.isBlank((String) getFieldValue(r, "uniqueName")))
+                .map(r -> (String) getFieldValue(r, "name"))
                 .collect(Collectors.toList());
     }
 
@@ -884,8 +888,8 @@ public class CoreUtil {
         Map<String, List<V>> map = new LinkedHashMap();
         if (ListUtil.isNotEmpty(list)) {
             for (V v : list) {
-                String value1 = (String)CoreUtil.getFieldValue(v, field1);
-                String value2 = (String)CoreUtil.getFieldValue(v, field2);
+                String value1 = (String) CoreUtil.getFieldValue(v, field1);
+                String value2 = (String) CoreUtil.getFieldValue(v, field2);
                 String unionKey = "";
                 if (StringUtil.isNotBlank(value1)) {
                     unionKey += value1;
@@ -894,7 +898,7 @@ public class CoreUtil {
                 if (StringUtil.isNotBlank(value2)) {
                     unionKey += value2;
                 }
-                List<V> groupList = (List<V>)map.get(unionKey);
+                List<V> groupList = (List<V>) map.get(unionKey);
                 if (groupList == null) {
                     groupList = new ArrayList();
                 }

+ 1 - 0
src/main/java/com/diagbot/util/MsgUtil.java

@@ -126,6 +126,7 @@ public class MsgUtil {
                 content = "可能正在用药" + content;
                 break;
             case allergicmeds: // 禁忌药品
+            case otherAllergy: // 禁忌其他过敏原
                 content = content + "过敏";
                 break;
             case operations: // 手术