Browse Source

推理化验入参公表映射

Zhaops 6 years ago
parent
commit
b0fd89a070

+ 49 - 0
icss-service/src/main/java/com/diagbot/enums/LisSourceEnum.java

@@ -0,0 +1,49 @@
+package com.diagbot.enums;
+
+import com.diagbot.core.KeyedNamed;
+import lombok.Setter;
+
+/**
+ * @Description:化验数据来源
+ * @Author:zhaops
+ * @time: 2018/12/26 16:37
+ */
+public enum LisSourceEnum  implements KeyedNamed {
+    Inner(0, "ICSS-内部"),
+    Outer(1, "外部");
+
+    @Setter
+    private Integer key;
+
+    @Setter
+    private String name;
+
+    LisSourceEnum(Integer key, String name) {
+        this.key = key;
+        this.name = name;
+    }
+
+    public static LisSourceEnum getEnum(Integer key) {
+        for (LisSourceEnum item : LisSourceEnum.values()) {
+            if (item.key == key) {
+                return item;
+            }
+        }
+        return null;
+    }
+
+    public static String getName(Integer key) {
+        LisSourceEnum item = getEnum(key);
+        return item != null ? item.name : null;
+    }
+
+    @Override
+    public int getKey() {
+        return key;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+}

+ 33 - 7
icss-service/src/main/java/com/diagbot/facade/LisConfigFacade.java

@@ -1,7 +1,10 @@
 package com.diagbot.facade;
 
+import java.util.LinkedHashMap;
 import java.util.List;
+import java.util.Map;
 
+import com.diagbot.util.EntityUtil;
 import org.springframework.stereotype.Component;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -18,20 +21,43 @@ import com.diagbot.util.BeanUtil;
  * @date 2018年12月25日 上午10:57:34
  */
 @Component
-public class LisConfigFacade extends LisConfigServiceImpl{
-	
+public class LisConfigFacade extends LisConfigServiceImpl {
+
 	/**
 	 * 根据医院编码查询公表映射配置
-	 * @param hospitalId
+	 *
+	 * @param hospitalCode
 	 * @return
 	 */
-	public List<LisConfigDTO> getLisConfigByhospitalId(String hospitalCode){
-		
+	public List<LisConfigDTO> getLisConfigByhospitalId(String hospitalCode) {
+
 		QueryWrapper<LisConfig> lisConfig = new QueryWrapper<>();
 		lisConfig.eq("is_deleted", IsDeleteEnum.N.getKey()).eq("hospital_code", hospitalCode);
 		List<LisConfig> data = list(lisConfig);
 		List<LisConfigDTO> datas = BeanUtil.listCopyTo(data, LisConfigDTO.class);
 		return datas;
-	} 
+	}
 
-}
+	/**
+	 * 根据医院编码获取化验项映射关系
+	 *
+	 * @param hospitalCode
+	 * @return
+	 */
+	public Map<String, Map<String, String>> getLisConfigMapByHospitalCode(String hospitalCode) {
+		Map<String, Map<String, String>> retMap = new LinkedHashMap<>();
+		QueryWrapper<LisConfig> lisConfigQueryWrapper = new QueryWrapper<>();
+		lisConfigQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+				.eq("hospital_code", hospitalCode);
+		List<LisConfig> lisConfigList = this.list(lisConfigQueryWrapper);
+		Map<String, List<LisConfig>> lisConfigMap = EntityUtil.makeEntityListMap(lisConfigList, "mealName");
+		for (Map.Entry<String, List<LisConfig>> entry : lisConfigMap.entrySet()) {
+			if (entry.getValue().size() > 0) {
+				retMap.put(entry.getKey(), EntityUtil.makeMapWithKeyValue(entry.getValue(), "itemName", "uniqueName"));
+			} else {
+				retMap.put(entry.getKey(), null);
+			}
+		}
+		return retMap;
+	}
+}

+ 33 - 2
icss-service/src/main/java/com/diagbot/facade/PushFacade.java

@@ -13,17 +13,22 @@ import com.diagbot.dto.PushKYJDTO;
 import com.diagbot.dto.QuestionDTO;
 import com.diagbot.entity.DeptInfo;
 import com.diagbot.entity.DeptVital;
+import com.diagbot.entity.LisConfig;
 import com.diagbot.entity.QuestionInfo;
 import com.diagbot.entity.VitalOrder;
 import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.enums.LisSourceEnum;
 import com.diagbot.enums.QuantitativeTypeEnum;
 import com.diagbot.enums.QuestionTypeEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
+import com.diagbot.util.BeanUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.FastJsonUtils;
 import com.diagbot.util.StringUtil;
 import com.diagbot.vo.LisKYJVO;
+import com.diagbot.vo.LisResult;
+import com.diagbot.vo.LisResultVO;
 import com.diagbot.vo.PushKYJVO;
 import com.diagbot.vo.PushVO;
 import com.diagbot.vo.QuestionVO;
@@ -31,6 +36,7 @@ import com.google.common.collect.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import javax.swing.*;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -61,6 +67,8 @@ public class PushFacade {
     private TreatmentFacade treatmentFacade;
     @Autowired
     private HighRiskServiceClient highRiskServiceClient;
+    @Autowired
+    private LisConfigFacade lisConfigFacade;
 
     /**
      * 推理接口
@@ -73,7 +81,7 @@ public class PushFacade {
         searchData.setAge(pushVO.getAge());
         searchData.setSymptom(pushVO.getSymptom());
         searchData.setVital(pushVO.getVital());
-        searchData.setLisArr(pushVO.getLis());
+
 
         searchData.setPacs(pushVO.getPacs());
         searchData.setPast(pushVO.getPast());
@@ -91,6 +99,25 @@ public class PushFacade {
                 break;
         }
 
+        //化验项映射,转公表
+        if (pushVO.getLis().size() > 0) {
+            Map<String, Map<String, String>> lisConfigMap = lisConfigFacade.getLisConfigMapByHospitalCode("A000");
+            for (LisResultVO lisResultVO : pushVO.getLis()) {
+                //source=0 icss页面数据,source=1 外部导入数据
+                if (!lisResultVO.getSource().equals(LisSourceEnum.Inner.getKey())) {
+                    continue;
+                }
+                if (StringUtil.isNotBlank(lisResultVO.getName()) && lisConfigMap.get(lisResultVO.getName()) != null) {
+                    Map<String, String> detailMap = lisConfigMap.get(lisResultVO.getName());
+                    if (StringUtil.isNotBlank(lisResultVO.getDetailName()) && StringUtil.isNotBlank(detailMap.get(lisResultVO.getDetailName()))) {
+                        lisResultVO.setUniqueName(detailMap.get(lisResultVO.getDetailName()));
+                    }
+                }
+            }
+        }
+
+        List<LisResult> lisResultList = BeanUtil.listCopyTo(pushVO.getLis(), LisResult.class);
+        searchData.setLisArr(lisResultList);
         searchData.setFeatureType(pushVO.getFeatureType());
         searchData.setSysCode("1");
         searchData.setLength(10);
@@ -281,7 +308,11 @@ public class PushFacade {
         pushVO.setLis(lis);*/
 
         //化验结果
-        pushVO.setLis(pushKYJVO.getLisResultList());
+        List<LisResultVO> lisResultVOList = BeanUtil.listCopyTo(pushKYJVO.getLisResultList(), LisResultVO.class);
+        for (LisResultVO lisResultVO : lisResultVOList) {
+            lisResultVO.setSource(LisSourceEnum.Outer.getKey());
+        }
+        pushVO.setLis(lisResultVOList);
 
         ResponseData responseData = pushAI(pushVO);
         PushKYJDTO pushKYJDTO = new PushKYJDTO();

+ 16 - 0
icss-service/src/main/java/com/diagbot/vo/LisResultVO.java

@@ -0,0 +1,16 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2018/12/26 16:29
+ */
+@Getter
+@Setter
+public class LisResultVO extends LisResult{
+    //数据来源
+    private Integer source;
+}

+ 1 - 1
icss-service/src/main/java/com/diagbot/vo/PushVO.java

@@ -24,7 +24,7 @@ public class PushVO {
     private String symptom;
     private String diag;
     private String vital;
-    private List<LisResult> lis;
+    private List<LisResultVO> lis;
     private String pacs;
     private String past;
     private String other;