|
@@ -1,12 +1,26 @@
|
|
package com.diagbot.facade;
|
|
package com.diagbot.facade;
|
|
|
|
|
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
|
+import com.diagbot.client.ChiefPresentSimilarityServiceClient;
|
|
import com.diagbot.dto.BillNeoDTO;
|
|
import com.diagbot.dto.BillNeoDTO;
|
|
import com.diagbot.dto.DrugBillNeoDTO;
|
|
import com.diagbot.dto.DrugBillNeoDTO;
|
|
import com.diagbot.dto.LisBillNeoDTO;
|
|
import com.diagbot.dto.LisBillNeoDTO;
|
|
import com.diagbot.dto.PacsBillNeoDTO;
|
|
import com.diagbot.dto.PacsBillNeoDTO;
|
|
import com.diagbot.dto.PushDTO;
|
|
import com.diagbot.dto.PushDTO;
|
|
-import com.diagbot.entity.node.*;
|
|
|
|
-import com.diagbot.repository.*;
|
|
|
|
|
|
+import com.diagbot.entity.node.Disease;
|
|
|
|
+import com.diagbot.entity.node.LIS;
|
|
|
|
+import com.diagbot.entity.node.Medicine;
|
|
|
|
+import com.diagbot.entity.node.PACS;
|
|
|
|
+import com.diagbot.enums.StandConvertEnum;
|
|
|
|
+import com.diagbot.model.ai.ModelAI;
|
|
|
|
+import com.diagbot.repository.DiseaseNode;
|
|
|
|
+import com.diagbot.repository.DiseaseRepository;
|
|
|
|
+import com.diagbot.repository.LISNode;
|
|
|
|
+import com.diagbot.repository.LisRepository;
|
|
|
|
+import com.diagbot.repository.MedicineNode;
|
|
|
|
+import com.diagbot.repository.MedicineRepository;
|
|
|
|
+import com.diagbot.repository.PACSNode;
|
|
|
|
+import com.diagbot.repository.PacsRepository;
|
|
import com.diagbot.vo.BillNeoVO;
|
|
import com.diagbot.vo.BillNeoVO;
|
|
import com.diagbot.vo.PushNeoVO;
|
|
import com.diagbot.vo.PushNeoVO;
|
|
import com.diagbot.vo.StandConvert;
|
|
import com.diagbot.vo.StandConvert;
|
|
@@ -14,7 +28,12 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.cache.annotation.Cacheable;
|
|
import org.springframework.cache.annotation.Cacheable;
|
|
import org.springframework.stereotype.Component;
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
-import java.util.*;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
+import java.util.Arrays;
|
|
|
|
+import java.util.HashMap;
|
|
|
|
+import java.util.LinkedHashMap;
|
|
|
|
+import java.util.List;
|
|
|
|
+import java.util.Map;
|
|
|
|
|
|
/**
|
|
/**
|
|
* @Description: 图谱facade
|
|
* @Description: 图谱facade
|
|
@@ -34,6 +53,8 @@ public class NeoFacade {
|
|
DiseaseRepository diseaseRepository;
|
|
DiseaseRepository diseaseRepository;
|
|
@Autowired
|
|
@Autowired
|
|
MedicineCodeRepository medicineCodeRepository;
|
|
MedicineCodeRepository medicineCodeRepository;
|
|
|
|
+ @Autowired
|
|
|
|
+ ChiefPresentSimilarityServiceClient chiefPresentSimilarityServiceClient;
|
|
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -243,8 +264,53 @@ public class NeoFacade {
|
|
* @return Map<String, Map<String, String>> -->Map<类型, Map<原始词, 标准词>>
|
|
* @return Map<String, Map<String, String>> -->Map<类型, Map<原始词, 标准词>>
|
|
*/
|
|
*/
|
|
public Map<Integer, Map<String, String>> standConvert(StandConvert standConvert) {
|
|
public Map<Integer, Map<String, String>> standConvert(StandConvert standConvert) {
|
|
- // TODO 待处理业务
|
|
|
|
- return new HashMap<>();
|
|
|
|
|
|
+ Map<Integer, Map<String, String>> map = new LinkedHashMap<>();
|
|
|
|
+
|
|
|
|
+ /* 文本相似度模型 */
|
|
|
|
+ ModelAI modelAI = new ModelAI();
|
|
|
|
+
|
|
|
|
+ List<String> list = standConvert.getClinicalList();
|
|
|
|
+ Map<String, String > clinicalMap = getStandConvertTypeMap(modelAI, list, "chief_present");
|
|
|
|
+ map.put(StandConvertEnum.clinical.getKey(), clinicalMap);
|
|
|
|
+
|
|
|
|
+ return map;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 获取指定类型的map数据
|
|
|
|
+ *
|
|
|
|
+ * @param modelAI
|
|
|
|
+ * @param list
|
|
|
|
+ * @param modelName
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public Map<String, String> getStandConvertTypeMap(ModelAI modelAI, List<String> list, String modelName) {
|
|
|
|
+ Map<String, String> map = new LinkedHashMap<>();
|
|
|
|
+ for (String s : list) {
|
|
|
|
+ JSONArray jsonArray = modelAI.loadChiefPresentSimilarAI(s, list,
|
|
|
|
+ false, modelName, chiefPresentSimilarityServiceClient);
|
|
|
|
+ putMap(jsonArray, s, map);
|
|
|
|
+ }
|
|
|
|
+ return map;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 提取方法
|
|
|
|
+ * @param jsonArray
|
|
|
|
+ * @param originName
|
|
|
|
+ * @param map
|
|
|
|
+ */
|
|
|
|
+ public void putMap(JSONArray jsonArray, String originName, Map<String, String> map) {
|
|
|
|
+ if (jsonArray.size() == 2) {
|
|
|
|
+ double likeRate = jsonArray.getDoubleValue(1);
|
|
|
|
+ // System.out.println(originName + " " + likeRate);
|
|
|
|
+ if (likeRate > 0.9) {
|
|
|
|
+ String standName = jsonArray.getString(0);
|
|
|
|
+ map.put(originName, standName);
|
|
|
|
+ } else {
|
|
|
|
+ map.put(originName, originName);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|