|
@@ -71,6 +71,44 @@ public class NeoFacade {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ // TODO 测试数据
|
|
|
+ res.put("泰舒达类", Arrays.asList("泰舒达"));
|
|
|
+ res.put("青霉素类", Arrays.asList("青霉素"));
|
|
|
+
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 返回文本相似度匹配需要的词性列表
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @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("青霉素"));
|
|
|
|
|
@@ -248,15 +286,15 @@ public class NeoFacade {
|
|
|
*
|
|
|
* @return Map<String, Map<String, String>> -->Map<类型, Map<原始词, 标准词>>
|
|
|
*/
|
|
|
- public Map<Integer, Map<String, String>> standConvert(StandConvert standConvert) {
|
|
|
- Map<Integer, Map<String, String>> map = new LinkedHashMap<>();
|
|
|
+ public Map<String, Map<String, String>> standConvert(StandConvert standConvert) {
|
|
|
+ Map<String, 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);
|
|
|
+ Map<String, String> clinicalMap = getStandConvertTypeMap(modelAI, list, "chief_present");
|
|
|
+ map.put(StandConvertEnum.clinical.getName(), clinicalMap);
|
|
|
|
|
|
return map;
|
|
|
}
|
|
@@ -272,7 +310,7 @@ public class NeoFacade {
|
|
|
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,
|
|
|
+ JSONArray jsonArray = modelAI.loadSimilarAI(s, list,
|
|
|
false, modelName, chiefPresentSimilarityServiceClient);
|
|
|
putMap(jsonArray, s, map);
|
|
|
}
|