|
@@ -40,7 +40,8 @@ public class NeoFacade {
|
|
|
MedicineCodeRepository medicineCodeRepository;
|
|
|
@Autowired
|
|
|
ChiefPresentSimilarityServiceClient chiefPresentSimilarityServiceClient;
|
|
|
-
|
|
|
+ @Autowired
|
|
|
+ NeoFacade self;
|
|
|
|
|
|
/**
|
|
|
* 返回药品缓存信息
|
|
@@ -74,7 +75,6 @@ public class NeoFacade {
|
|
|
// TODO 测试数据
|
|
|
res.put("泰舒达类", Arrays.asList("泰舒达"));
|
|
|
res.put("青霉素类", Arrays.asList("青霉素"));
|
|
|
-
|
|
|
return res;
|
|
|
}
|
|
|
|
|
@@ -87,31 +87,10 @@ public class NeoFacade {
|
|
|
@Cacheable(value = "cache", key = "'similarCache'")
|
|
|
public Map<String, List<String>> getSimilarCache() {
|
|
|
Map<String, List<String>> res = new HashMap<>();
|
|
|
-
|
|
|
- Iterator<Medicine_Code> iterator = medicineCodeRepository.findAll().iterator();
|
|
|
- Medicine_Code current;
|
|
|
- String med_code, med_type;
|
|
|
- List<OralMedicine> sets;
|
|
|
-
|
|
|
- while (iterator.hasNext()) {
|
|
|
- current = iterator.next();
|
|
|
- if (current.getMedicine_related_chem().size()>0) {
|
|
|
- sets = new ArrayList<>(current.getMedicine_related_chem());
|
|
|
- med_code = current.getName();
|
|
|
- med_type = sets.get(0).getName();
|
|
|
- if (res.get(med_type)==null) {
|
|
|
- res.put(med_type, new ArrayList<>());
|
|
|
- }
|
|
|
- if (res.get(med_type).indexOf(med_code)==-1) {
|
|
|
- res.get(med_type).add(med_code);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
+ // 临床表现,诊断,化验,辅检,药品,查体,手术
|
|
|
// TODO 测试数据
|
|
|
- res.put("泰舒达类", Arrays.asList("泰舒达"));
|
|
|
- res.put("青霉素类", Arrays.asList("青霉素"));
|
|
|
-
|
|
|
+ res.put(StandConvertEnum.clinical.getName(), Arrays.asList("胸痛","咳嗽"));
|
|
|
+ res.put(StandConvertEnum.disease.getName(), Arrays.asList("高血压", "糖尿病"));
|
|
|
return res;
|
|
|
}
|
|
|
|
|
@@ -288,12 +267,14 @@ public class NeoFacade {
|
|
|
*/
|
|
|
public Map<String, Map<String, String>> standConvert(StandConvert standConvert) {
|
|
|
Map<String, Map<String, String>> map = new LinkedHashMap<>();
|
|
|
-
|
|
|
+ Map<String, List<String>> similarMap = self.getSimilarCache();
|
|
|
/* 文本相似度模型 */
|
|
|
ModelAI modelAI = new ModelAI();
|
|
|
|
|
|
+ // 临床表现数据
|
|
|
List<String> list = standConvert.getClinicalList();
|
|
|
- Map<String, String> clinicalMap = getStandConvertTypeMap(modelAI, list, "chief_present");
|
|
|
+ Map<String, String> clinicalMap = getStandConvertTypeMap(modelAI, list,
|
|
|
+ similarMap.get(StandConvertEnum.clinical.getName()), "chief_present");
|
|
|
map.put(StandConvertEnum.clinical.getName(), clinicalMap);
|
|
|
|
|
|
return map;
|
|
@@ -303,14 +284,15 @@ public class NeoFacade {
|
|
|
* 获取指定类型的map数据
|
|
|
*
|
|
|
* @param modelAI
|
|
|
- * @param list
|
|
|
- * @param modelName
|
|
|
+ * @param text 文本内容
|
|
|
+ * @param cacheList 模型列表
|
|
|
+ * @param modelName 模块名称
|
|
|
* @return
|
|
|
*/
|
|
|
- public Map<String, String> getStandConvertTypeMap(ModelAI modelAI, List<String> list, String modelName) {
|
|
|
+ public Map<String, String> getStandConvertTypeMap(ModelAI modelAI, List<String> text, List<String> cacheList, String modelName) {
|
|
|
Map<String, String> map = new LinkedHashMap<>();
|
|
|
- for (String s : list) {
|
|
|
- JSONArray jsonArray = modelAI.loadSimilarAI(s, list,
|
|
|
+ for (String s : text) {
|
|
|
+ JSONArray jsonArray = modelAI.loadSimilarAI(s, cacheList,
|
|
|
false, modelName, chiefPresentSimilarityServiceClient);
|
|
|
putMap(jsonArray, s, map);
|
|
|
}
|