Browse Source

化验、辅检不走相似度

kongwz 4 years ago
parent
commit
7f2752bf4e

+ 53 - 36
src/main/java/com/diagbot/facade/CommonFacade.java

@@ -9,14 +9,8 @@ import com.diagbot.enums.StandConvertEnum;
 import com.diagbot.model.ai.AIAnalyze;
 import com.diagbot.model.entity.BodyPart;
 import com.diagbot.model.entity.Modification;
-import com.diagbot.model.entity.Operation;
 import com.diagbot.model.entity.Pacs;
-import com.diagbot.model.label.ChiefLabel;
-import com.diagbot.model.label.DiagLabel;
-import com.diagbot.model.label.PacsLabel;
-import com.diagbot.model.label.PastLabel;
-import com.diagbot.model.label.PresentLabel;
-import com.diagbot.model.label.VitalLabel;
+import com.diagbot.model.label.*;
 import com.diagbot.rule.CommonRule;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.CoreUtil;
@@ -25,25 +19,14 @@ import com.diagbot.util.StringUtil;
 import com.diagbot.vo.NeoPushVO;
 import com.diagbot.vo.SearchData;
 import com.diagbot.vo.StandConvert;
-import com.diagbot.vo.neoPushEntity.ChiefPushVo;
-import com.diagbot.vo.neoPushEntity.Diag;
-import com.diagbot.vo.neoPushEntity.DiagVo;
-import com.diagbot.vo.neoPushEntity.Drug;
-import com.diagbot.vo.neoPushEntity.LisPushVo;
-import com.diagbot.vo.neoPushEntity.PacsPushVo;
-import com.diagbot.vo.neoPushEntity.PresentPushVo;
-import com.diagbot.vo.neoPushEntity.Symptom;
+import com.diagbot.vo.neoPushEntity.*;
 import com.google.common.collect.Lists;
 import org.apache.commons.beanutils.BeanUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -287,19 +270,24 @@ public class CommonFacade {
         // 6、结构化药品
         CoreUtil.setPropertyList(wordCrfDTO.getDrug(), "name", "uniqueName", map.get(StandConvertEnum.drug.toString()));
 
-        // 【化验回填】
-        // 1、普通化验
-        CoreUtil.setPropertyList(lis, "detailName", "uniqueName", map.get(StandConvertEnum.lis.toString()));
-        // 2、开单化验——取套餐
-        CoreUtil.setPropertyList(wordCrfDTO.getLisOrder(), "name", "uniqueName", map.get(StandConvertEnum.lis.toString()));
-
-        // 【辅助项目回填】
-        // 1、模型解析辅检项目
-        CoreUtil.setPropertyList(pacsList, "name", "uniqueName", map.get(StandConvertEnum.pacs.toString()));
-        // 2、结构化辅检项目
-        CoreUtil.setPropertyList(wordCrfDTO.getPacs(), "name", "uniqueName", map.get(StandConvertEnum.pacs.toString()));
-        // 3、开单辅检项目
-        CoreUtil.setPropertyList(wordCrfDTO.getPacsOrder(), "name", "uniqueName", map.get(StandConvertEnum.pacs.toString()));
+//        // 【化验回填】
+//        // 1、普通化验
+//        CoreUtil.setPropertyList(lis, "detailName", "uniqueName", map.get(StandConvertEnum.lis.toString()));
+//        // 2、开单化验——取套餐
+//        CoreUtil.setPropertyList(wordCrfDTO.getLisOrder(), "name", "uniqueName", map.get(StandConvertEnum.lis.toString()));
+//
+//        // 【辅助项目回填】
+//        // 1、模型解析辅检项目
+//        CoreUtil.setPropertyList(pacsList, "name", "uniqueName", map.get(StandConvertEnum.pacs.toString()));
+//        // 2、结构化辅检项目
+//        CoreUtil.setPropertyList(wordCrfDTO.getPacs(), "name", "uniqueName", map.get(StandConvertEnum.pacs.toString()));
+//        // 3、开单辅检项目
+//        CoreUtil.setPropertyList(wordCrfDTO.getPacsOrder(), "name", "uniqueName", map.get(StandConvertEnum.pacs.toString()));
+
+        CoreUtil.setUninameFromDetail(wordCrfDTO.getLis(),"detailName");
+        CoreUtil.setUninameFromDetail(wordCrfDTO.getLisOrder(),"name");
+
+        pacsGetAndSet(wordCrfDTO);
 
         // 【体征回填】
         CoreUtil.setPropertyList(vitalLabel.getVitals(), map.get(StandConvertEnum.vital.toString()));
@@ -373,6 +361,35 @@ public class CommonFacade {
         }
     }
 
+    /**
+     * 辅检映射(关闭同义词转换)
+     *
+     * @param wordCrfDTO
+     */
+    public void pacsGetAndSet(WordCrfDTO wordCrfDTO) {
+        // 【所有辅检】
+        List<String> pacsList = new ArrayList<>();
+        // 1、结构化
+        CoreUtil.addList(pacsList, CoreUtil.getPropertyList(wordCrfDTO.getPacs()));
+        // 2、开单
+        CoreUtil.addList(pacsList, CoreUtil.getPropertyList(wordCrfDTO.getPacsOrder()));
+
+        pacsList = pacsList
+                .stream()
+                .distinct()
+                .collect(Collectors.toList());
+
+        Map<String, Map<String, Long>> configMap = new LinkedHashMap<>();
+        if (ListUtil.isNotEmpty(pacsList)) {
+            configMap = pacsConfigFacade.getConfigMap(wordCrfDTO.getHospitalId(), pacsList, null);
+
+            // 4、结构化
+            setListProperty(wordCrfDTO, "pacs", "uniqueName", configMap);
+            // 5、开单
+            setListProperty(wordCrfDTO, "pacsOrder", "uniqueName", configMap);
+        }
+    }
+
     /**
      * 替换映射内容
      *
@@ -381,10 +398,10 @@ public class CommonFacade {
      * @param objProperty 对象属性名
      * @param configMap 映射Map
      */
-    public void setListProperty(Object obj, String listProperty, String objProperty, Map<String, Map<String, Long>> configMap) {
+    public <T> void setListProperty(Object obj, String listProperty, String objProperty, Map<String, Map<String, Long>> configMap) {
         Object tList = CoreUtil.getFieldValue(obj, listProperty);
-        List<Operation> operationNewList = convertStandName((List)tList, configMap, objProperty);
-        CoreUtil.setFieldValue(obj, listProperty, operationNewList);
+        List<T> newList = convertStandName((List)tList, configMap, objProperty);
+        CoreUtil.setFieldValue(obj, listProperty, newList);
     }
 
     /**

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

@@ -10,6 +10,7 @@ import com.diagbot.model.entity.PD;
 import com.diagbot.model.entity.Usual;
 import com.diagbot.model.entity.Vital;
 import com.diagbot.model.label.VitalLabel;
+import com.google.common.collect.Lists;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Value;
@@ -949,6 +950,26 @@ public class CoreUtil {
                 .collect(Collectors.toList());
     }
 
+    public static <T> List<T> setUninameFromDetail(List<T> list, String targetProperty)  {
+        if (ListUtil.isEmpty(list)) {
+            return new ArrayList<>();
+        }
+        for (T r:list) {
+            if(StringUtil.isBlank((String)getFieldValue(r, "uniqueName"))){
+                Field bigField = getDeclaredField(r, "uniqueName") ;
+                bigField.setAccessible(true);
+                String detailName = (String)getFieldValue(r, targetProperty);
+
+                try {
+                    bigField.set(r, detailName);
+                } catch (IllegalAccessException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+        return list;
+    }
+
     /**
      * 筛选对象列表中“name”字段不为空的数据
      *
@@ -1092,5 +1113,13 @@ public class CoreUtil {
         Map<String, List<Item>> map = makeEntityListMap(list, "name", "uniqueName");
 
         System.out.println(map);
+        List<Lis> lis = Lists.newArrayList();
+        Lis lis1 = new Lis();
+        lis1.setDetailName("jjaj");
+        lis.add(lis1);
+        List<Lis> lisList = setUninameFromDetail(lis, "detailName");
+        System.out.println();
+
+
     }
 }