|
@@ -6,6 +6,7 @@ import org.apache.commons.lang3.StringUtils;
|
|
import org.diagbot.entity.node.LIS;
|
|
import org.diagbot.entity.node.LIS;
|
|
import org.diagbot.entity.node.Symptom;
|
|
import org.diagbot.entity.node.Symptom;
|
|
import org.diagbot.mapper.KnowledgeMapper;
|
|
import org.diagbot.mapper.KnowledgeMapper;
|
|
|
|
+import org.diagbot.pub.Ciku;
|
|
import org.diagbot.pub.Label;
|
|
import org.diagbot.pub.Label;
|
|
import org.diagbot.pub.Type;
|
|
import org.diagbot.pub.Type;
|
|
import org.diagbot.pub.jdbc.MysqlJdbc;
|
|
import org.diagbot.pub.jdbc.MysqlJdbc;
|
|
@@ -1428,16 +1429,14 @@ public class KnowledgeServiceImpl implements KnowledgeService {
|
|
}else {
|
|
}else {
|
|
respDTO = RespDTO.onError("在数据库中没有找到"+disId+"对应的疾病!!");
|
|
respDTO = RespDTO.onError("在数据库中没有找到"+disId+"对应的疾病!!");
|
|
}
|
|
}
|
|
|
|
+ //把数据库中的所有词读进map缓存
|
|
|
|
+ Map<String, Map<String, String>> ciKu = this.allStandWord2Map();
|
|
//获取每个诊断依据的全部数据
|
|
//获取每个诊断依据的全部数据
|
|
List<Map<String, String>> allData = this.getAllData(disId);
|
|
List<Map<String, String>> allData = this.getAllData(disId);
|
|
//获取拟诊,确诊,警惕组合
|
|
//获取拟诊,确诊,警惕组合
|
|
Map<String, List<String>> allNiQueZhenCollection = this.getAllNiQueZhenCollection(disId);
|
|
Map<String, List<String>> allNiQueZhenCollection = this.getAllNiQueZhenCollection(disId);
|
|
this.saveNiQue2Neo(allData,allNiQueZhenCollection,disName,disId);
|
|
this.saveNiQue2Neo(allData,allNiQueZhenCollection,disName,disId);
|
|
- this.saveData2Neo4j(allData,disId,disName);
|
|
|
|
- System.out.println();
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
|
|
+ this.saveData2Neo4j(allData,disId,disName,ciKu);
|
|
return respDTO;
|
|
return respDTO;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1547,6 +1546,46 @@ public class KnowledgeServiceImpl implements KnowledgeService {
|
|
return queNiMap;
|
|
return queNiMap;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 加载所有词库
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public Map<String,Map<String,String>> allStandWord2Map(){
|
|
|
|
+ Map<String,Map<String,String>> ciKu = new HashMap<>();
|
|
|
|
+ conn = this.getConn();
|
|
|
|
+ Statement st = null;
|
|
|
|
+ ResultSet rs = null;
|
|
|
|
+ try {
|
|
|
|
+ String tongName, type, isConcept,stand;
|
|
|
|
+ String sql = "SELECT name, type_id,is_concept,IF(is_concept=1,a.name,(select lib_name from kl_concept b where b.id = a.concept_id) ) lib_name \n" +
|
|
|
|
+ "from kl_library_info a where a.is_deleted = 'N'\n" +
|
|
|
|
+ "and type_id in (1,5,12,13,14,16,17,18,35,70)";
|
|
|
|
+ st = conn.createStatement();
|
|
|
|
+ rs = st.executeQuery(sql);
|
|
|
|
+ Map<String,String> detail =null;
|
|
|
|
+ while (rs.next()) {
|
|
|
|
+ tongName = rs.getString(1);
|
|
|
|
+ type = rs.getString(2);
|
|
|
|
+ isConcept = rs.getString(3);
|
|
|
|
+ stand = rs.getString(4);
|
|
|
|
+ detail = new HashMap<>();
|
|
|
|
+ detail.put("isConcept",isConcept);
|
|
|
|
+ detail.put("stand",stand);
|
|
|
|
+ ciKu.put(tongName+","+type,detail);
|
|
|
|
+ }
|
|
|
|
+ }catch (Exception e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ } finally {
|
|
|
|
+ try {
|
|
|
|
+ rs.close();
|
|
|
|
+ st.close();
|
|
|
|
+ } catch (SQLException e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ }
|
|
|
|
+ return ciKu;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 获取疾病名
|
|
* 获取疾病名
|
|
* @param disId
|
|
* @param disId
|
|
@@ -1720,8 +1759,7 @@ public class KnowledgeServiceImpl implements KnowledgeService {
|
|
* @param disId
|
|
* @param disId
|
|
* @param disName
|
|
* @param disName
|
|
*/
|
|
*/
|
|
- public void saveData2Neo4j(List<Map<String, String>> allData,Long disId,String disName){
|
|
|
|
-// Map<String, Map<String, String>> standard_info_synonym_map = NlpCache.standard_info_synonym_map;
|
|
|
|
|
|
+ public void saveData2Neo4j(List<Map<String, String>> allData,Long disId,String disName,Map<String, Map<String, String>> ciKu){
|
|
for (Map<String,String> row:allData) {
|
|
for (Map<String,String> row:allData) {
|
|
String code = row.get("code");//编码
|
|
String code = row.get("code");//编码
|
|
String type = row.get("type");//类型
|
|
String type = row.get("type");//类型
|
|
@@ -1733,107 +1771,145 @@ public class KnowledgeServiceImpl implements KnowledgeService {
|
|
String[] split =null;
|
|
String[] split =null;
|
|
String[] lisResultSplit =null;
|
|
String[] lisResultSplit =null;
|
|
String[] pacsResultSplit =null;
|
|
String[] pacsResultSplit =null;
|
|
|
|
+ String standWord = null;String lisResult = null,pacsResult=null;
|
|
if(!"3".equals(type) && !"4".equals(type) && !"5".equals(type)){
|
|
if(!"3".equals(type) && !"4".equals(type) && !"5".equals(type)){
|
|
//添加词语之前,要找标准词
|
|
//添加词语之前,要找标准词
|
|
//添加standard
|
|
//添加standard
|
|
switch (type){
|
|
switch (type){
|
|
case "1": //症状
|
|
case "1": //症状
|
|
- diseaseRepository.mergeStandardSymptom(standard);
|
|
|
|
- diseaseRepository.mergeRelationStandard(disId,standard);
|
|
|
|
- diseaseRepository.mergeRelationStandardshuyu(disName+code,standard);
|
|
|
|
|
|
+ standWord = searchStandWord(standard, type, ciKu);
|
|
|
|
+ if(StringUtils.isNotEmpty(standWord)){
|
|
|
|
+ diseaseRepository.mergeStandardSymptom(standWord);
|
|
|
|
+ diseaseRepository.mergeRelationStandard(disId,standWord);
|
|
|
|
+ diseaseRepository.mergeRelationStandardshuyu(disName+code,standWord);
|
|
|
|
+ }
|
|
if(StringUtils.isNotEmpty(relation)){
|
|
if(StringUtils.isNotEmpty(relation)){
|
|
split = relation.split("、");
|
|
split = relation.split("、");
|
|
if(split!=null && split.length>0){
|
|
if(split!=null && split.length>0){
|
|
for (String ci:split) {
|
|
for (String ci:split) {
|
|
if(StringUtils.isNotEmpty(ci)){
|
|
if(StringUtils.isNotEmpty(ci)){
|
|
//找标准词
|
|
//找标准词
|
|
- diseaseRepository.mergeStandardSymptom(ci);
|
|
|
|
- diseaseRepository.mergeRelationStandardshuyu(disName+code,ci);
|
|
|
|
|
|
+ standWord = searchStandWord(ci,type,ciKu);
|
|
|
|
+ if(StringUtils.isNotEmpty(standWord)){
|
|
|
|
+ diseaseRepository.mergeStandardSymptom(standWord);
|
|
|
|
+ diseaseRepository.mergeRelationStandardshuyu(disName+code,standWord);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
case "2"://体征结果
|
|
case "2"://体征结果
|
|
- diseaseRepository.mergeStandardVital(standard);
|
|
|
|
- diseaseRepository.mergeRelationStandardVital(disId,standard);
|
|
|
|
- diseaseRepository.mergeRelationStandardVitalshuyu(disName+code,standard);
|
|
|
|
|
|
+ standWord = searchStandWord(standard,type,ciKu);
|
|
|
|
+ if(StringUtils.isNotEmpty(standWord)){
|
|
|
|
+ diseaseRepository.mergeStandardVital(standWord);
|
|
|
|
+ diseaseRepository.mergeRelationStandardVital(disId,standWord);
|
|
|
|
+ diseaseRepository.mergeRelationStandardVitalshuyu(disName+code,standWord);
|
|
|
|
+ }
|
|
if(StringUtils.isNotEmpty(relation)){
|
|
if(StringUtils.isNotEmpty(relation)){
|
|
split = relation.split("、");
|
|
split = relation.split("、");
|
|
if(split!=null && split.length>0){
|
|
if(split!=null && split.length>0){
|
|
for (String ci:split) {
|
|
for (String ci:split) {
|
|
if(StringUtils.isNotEmpty(ci)){
|
|
if(StringUtils.isNotEmpty(ci)){
|
|
//找标准词
|
|
//找标准词
|
|
- diseaseRepository.mergeStandardVital(ci);
|
|
|
|
- diseaseRepository.mergeRelationStandardVitalshuyu(disName+code,ci);
|
|
|
|
|
|
+ standWord = searchStandWord(ci,type,ciKu);
|
|
|
|
+ if(StringUtils.isNotEmpty(standWord)){
|
|
|
|
+ diseaseRepository.mergeStandardVital(standWord);
|
|
|
|
+ diseaseRepository.mergeRelationStandardVitalshuyu(disName+code,standWord);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
case "6"://病史
|
|
case "6"://病史
|
|
- diseaseRepository.mergeStandardHistory(standard);
|
|
|
|
- diseaseRepository.mergeRelationStandardHistory(disId,standard);
|
|
|
|
- diseaseRepository.mergeRelationStandardHistoryshuyu(disName+code,standard);
|
|
|
|
|
|
+ standWord = searchStandWord(standard,type,ciKu);
|
|
|
|
+ if(StringUtils.isNotEmpty(standWord)){
|
|
|
|
+ diseaseRepository.mergeStandardHistory(standWord);
|
|
|
|
+ diseaseRepository.mergeRelationStandardHistory(disId,standWord);
|
|
|
|
+ diseaseRepository.mergeRelationStandardHistoryshuyu(disName+code,standWord);
|
|
|
|
+ }
|
|
if(StringUtils.isNotEmpty(relation)){
|
|
if(StringUtils.isNotEmpty(relation)){
|
|
split = relation.split("、");
|
|
split = relation.split("、");
|
|
if(split!=null && split.length>0){
|
|
if(split!=null && split.length>0){
|
|
for (String ci:split) {
|
|
for (String ci:split) {
|
|
if(StringUtils.isNotEmpty(ci)){
|
|
if(StringUtils.isNotEmpty(ci)){
|
|
//找标准词
|
|
//找标准词
|
|
- diseaseRepository.mergeStandardHistory(ci);
|
|
|
|
- diseaseRepository.mergeRelationStandardHistoryshuyu(disName+code,ci);
|
|
|
|
|
|
+ standWord = searchStandWord(ci,type,ciKu);
|
|
|
|
+ if(StringUtils.isNotEmpty(standWord)){
|
|
|
|
+ diseaseRepository.mergeStandardHistory(standWord);
|
|
|
|
+ diseaseRepository.mergeRelationStandardHistoryshuyu(disName+code,standWord);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
case "7"://诱因
|
|
case "7"://诱因
|
|
- diseaseRepository.mergeStandardCause(standard);
|
|
|
|
- diseaseRepository.mergeRelationStandardCause(disId,standard);
|
|
|
|
- diseaseRepository.mergeRelationStandardCauseshuyu(disName+code,standard);
|
|
|
|
|
|
+ standWord = searchStandWord(standard,type,ciKu);
|
|
|
|
+ if(StringUtils.isNotEmpty(standWord)){
|
|
|
|
+ diseaseRepository.mergeStandardCause(standWord);
|
|
|
|
+ diseaseRepository.mergeRelationStandardCause(disId,standWord);
|
|
|
|
+ diseaseRepository.mergeRelationStandardCauseshuyu(disName+code,standWord);
|
|
|
|
+ }
|
|
if(StringUtils.isNotEmpty(relation)){
|
|
if(StringUtils.isNotEmpty(relation)){
|
|
split = relation.split("、");
|
|
split = relation.split("、");
|
|
if(split!=null && split.length>0){
|
|
if(split!=null && split.length>0){
|
|
for (String ci:split) {
|
|
for (String ci:split) {
|
|
if(StringUtils.isNotEmpty(ci)){
|
|
if(StringUtils.isNotEmpty(ci)){
|
|
//找标准词
|
|
//找标准词
|
|
- diseaseRepository.mergeStandardCause(ci);
|
|
|
|
- diseaseRepository.mergeRelationStandardCauseshuyu(disName+code,ci);
|
|
|
|
|
|
+ standWord = searchStandWord(ci,type,ciKu);
|
|
|
|
+ if(StringUtils.isNotEmpty(standWord)){
|
|
|
|
+ diseaseRepository.mergeStandardCause(standWord);
|
|
|
|
+ diseaseRepository.mergeRelationStandardCauseshuyu(disName+code,standWord);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
case "8"://病程
|
|
case "8"://病程
|
|
- diseaseRepository.mergeStandardPrognosis(standard);
|
|
|
|
- diseaseRepository.mergeRelationStandardPrognosis(disId,standard);
|
|
|
|
- diseaseRepository.mergeRelationStandardPrognosisshuyu(disName+code,standard);
|
|
|
|
|
|
+ standWord = searchStandWord(standard,type,ciKu);
|
|
|
|
+ if(StringUtils.isNotEmpty(standWord)){
|
|
|
|
+ diseaseRepository.mergeStandardPrognosis(standWord);
|
|
|
|
+ diseaseRepository.mergeRelationStandardPrognosis(disId,standWord);
|
|
|
|
+ diseaseRepository.mergeRelationStandardPrognosisshuyu(disName+code,standWord);
|
|
|
|
+ }
|
|
if(StringUtils.isNotEmpty(relation)){
|
|
if(StringUtils.isNotEmpty(relation)){
|
|
split = relation.split("、");
|
|
split = relation.split("、");
|
|
if(split!=null && split.length>0){
|
|
if(split!=null && split.length>0){
|
|
for (String ci:split) {
|
|
for (String ci:split) {
|
|
if(StringUtils.isNotEmpty(ci)){
|
|
if(StringUtils.isNotEmpty(ci)){
|
|
//找标准词
|
|
//找标准词
|
|
- diseaseRepository.mergeStandardPrognosis(ci);
|
|
|
|
- diseaseRepository.mergeRelationStandardPrognosisshuyu(disName+code,ci);
|
|
|
|
|
|
+ standWord = searchStandWord(ci,type,ciKu);
|
|
|
|
+ if(StringUtils.isNotEmpty(standWord)){
|
|
|
|
+ diseaseRepository.mergeStandardPrognosis(standWord);
|
|
|
|
+ diseaseRepository.mergeRelationStandardPrognosisshuyu(disName+code,standWord);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
case "9"://其他
|
|
case "9"://其他
|
|
- diseaseRepository.mergeStandardOther(standard);
|
|
|
|
- diseaseRepository.mergeRelationStandardOther(disId,standard);
|
|
|
|
- diseaseRepository.mergeRelationStandardOthershuyu(disName+code,standard);
|
|
|
|
|
|
+ standWord = searchStandWord(standard,type,ciKu);
|
|
|
|
+ if(StringUtils.isNotEmpty(standWord)){
|
|
|
|
+ diseaseRepository.mergeStandardOther(standard);
|
|
|
|
+ diseaseRepository.mergeRelationStandardOther(disId,standard);
|
|
|
|
+ diseaseRepository.mergeRelationStandardOthershuyu(disName+code,standard);
|
|
|
|
+ }
|
|
if(StringUtils.isNotEmpty(relation)){
|
|
if(StringUtils.isNotEmpty(relation)){
|
|
split = relation.split("、");
|
|
split = relation.split("、");
|
|
if(split!=null && split.length>0){
|
|
if(split!=null && split.length>0){
|
|
for (String ci:split) {
|
|
for (String ci:split) {
|
|
if(StringUtils.isNotEmpty(ci)){
|
|
if(StringUtils.isNotEmpty(ci)){
|
|
//找标准词
|
|
//找标准词
|
|
- diseaseRepository.mergeStandardOther(ci);
|
|
|
|
- diseaseRepository.mergeRelationStandardOthershuyu(disName+code,ci);
|
|
|
|
|
|
+ standWord = searchStandWord(ci,type,ciKu);
|
|
|
|
+ if(StringUtils.isNotEmpty(standWord)){
|
|
|
|
+ diseaseRepository.mergeStandardOther(standWord);
|
|
|
|
+ diseaseRepository.mergeRelationStandardOthershuyu(disName+code,standWord);
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -1859,14 +1935,22 @@ public class KnowledgeServiceImpl implements KnowledgeService {
|
|
} else if("3".equals(type)){ //处理化验
|
|
} else if("3".equals(type)){ //处理化验
|
|
String lis = "";
|
|
String lis = "";
|
|
//查找化验大项的标准词
|
|
//查找化验大项的标准词
|
|
- if(StringUtils.isNotEmpty(relation) && standard.equals(relation)){
|
|
|
|
- lis = standard;
|
|
|
|
- }else if(StringUtils.isNotEmpty(standard) && StringUtils.isEmpty(relation)){
|
|
|
|
- lis = standard;
|
|
|
|
- }else if(StringUtils.isNotEmpty(standard)&& StringUtils.isNotEmpty(relation)&&!standard.equals(relation)){
|
|
|
|
- //查找化验小项的标准词
|
|
|
|
- lis = standard+"--"+relation;
|
|
|
|
|
|
+ standWord = searchStandWord(standard,type,ciKu);
|
|
|
|
+ if(StringUtils.isNotEmpty(standWord)){
|
|
|
|
+ if(StringUtils.isNotEmpty(relation) && standard.equals(relation)){
|
|
|
|
+ lis = standWord;
|
|
|
|
+ }else if(StringUtils.isNotEmpty(standard) && StringUtils.isEmpty(relation)){
|
|
|
|
+ lis = standWord;
|
|
|
|
+ }else if(StringUtils.isNotEmpty(standard)&& StringUtils.isNotEmpty(relation)&&!standard.equals(relation)){
|
|
|
|
+ type = "subLis";
|
|
|
|
+ if(StringUtils.isNotEmpty(searchStandWord(relation,type,ciKu))){
|
|
|
|
+ //查找化验小项的标准词
|
|
|
|
+ lis = standWord+"--"+searchStandWord(relation,type,ciKu);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
+
|
|
//创建公表名
|
|
//创建公表名
|
|
diseaseRepository.mergePublicLIS(lis);
|
|
diseaseRepository.mergePublicLIS(lis);
|
|
//疾病推荐化验公表名
|
|
//疾病推荐化验公表名
|
|
@@ -1876,35 +1960,46 @@ public class KnowledgeServiceImpl implements KnowledgeService {
|
|
lisResultSplit = result.split("、");
|
|
lisResultSplit = result.split("、");
|
|
if(lisResultSplit != null && lisResultSplit.length>0){
|
|
if(lisResultSplit != null && lisResultSplit.length>0){
|
|
//化验结果找标准词
|
|
//化验结果找标准词
|
|
- for (String lisResult:lisResultSplit) {
|
|
|
|
- if(StringUtils.isNotEmpty(lisResult)){
|
|
|
|
- //创建化验结果节点
|
|
|
|
- diseaseRepository.mergeLISRESULT(lisResult);
|
|
|
|
- //公表名和化验结果创建关系
|
|
|
|
- diseaseRepository.mergeRelationPublicLIS(lis,lisResult);
|
|
|
|
- //化验结果和对应的codeCondition创建关系
|
|
|
|
- diseaseRepository.mergeRelationCondiLisRes(disName+code,lisResult);
|
|
|
|
|
|
+ for (String lisRs:lisResultSplit) {
|
|
|
|
+ if(StringUtils.isNotEmpty(lisRs)){
|
|
|
|
+ lisResult = searchStandWord(lisRs,"resultLis",ciKu);
|
|
|
|
+ if(StringUtils.isNotEmpty(lisResult)){
|
|
|
|
+ //创建化验结果节点
|
|
|
|
+ diseaseRepository.mergeLISRESULT(lisResult);
|
|
|
|
+ //公表名和化验结果创建关系
|
|
|
|
+ diseaseRepository.mergeRelationPublicLIS(lis,lisResult);
|
|
|
|
+ //化验结果和对应的codeCondition创建关系
|
|
|
|
+ diseaseRepository.mergeRelationCondiLisRes(disName+code,lisResult);
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}else if("4".equals(type)){ //辅检
|
|
}else if("4".equals(type)){ //辅检
|
|
//查找辅检的标准词
|
|
//查找辅检的标准词
|
|
- //创建辅检标准词的节点
|
|
|
|
- diseaseRepository.mergePacs(standard);
|
|
|
|
- //疾病推荐辅检
|
|
|
|
- diseaseRepository.mergeRelationDis2Pacs(disId,standard);
|
|
|
|
|
|
+ standWord = searchStandWord(standard,type,ciKu);
|
|
|
|
+ if(StringUtils.isNotEmpty(standWord)){
|
|
|
|
+ //创建辅检标准词的节点
|
|
|
|
+ diseaseRepository.mergePacs(standWord);
|
|
|
|
+ //疾病推荐辅检
|
|
|
|
+ diseaseRepository.mergeRelationDis2Pacs(disId,standWord);
|
|
|
|
+ }
|
|
if(StringUtils.isNotEmpty(relation)){
|
|
if(StringUtils.isNotEmpty(relation)){
|
|
pacsResultSplit = relation.split("、");
|
|
pacsResultSplit = relation.split("、");
|
|
if(pacsResultSplit != null && pacsResultSplit.length>0){
|
|
if(pacsResultSplit != null && pacsResultSplit.length>0){
|
|
for (String pacs:pacsResultSplit) {
|
|
for (String pacs:pacsResultSplit) {
|
|
//查找辅检结果的标准词
|
|
//查找辅检结果的标准词
|
|
if(StringUtils.isNotEmpty(pacs)){
|
|
if(StringUtils.isNotEmpty(pacs)){
|
|
- diseaseRepository.mergePacsResult(pacs);
|
|
|
|
- //创建辅检和辅检结果关系
|
|
|
|
- diseaseRepository.mergeRelationPacsResult(standard,pacs);
|
|
|
|
- //创建辅检结果和对应的pacsCondition的关系
|
|
|
|
- diseaseRepository.mergeRelationCondiPacsRes(disName+code,pacs);
|
|
|
|
|
|
+ pacsResult = searchStandWord(pacs,"resultPacs",ciKu);
|
|
|
|
+ if(StringUtils.isNotEmpty(pacsResult)){
|
|
|
|
+ diseaseRepository.mergePacsResult(pacsResult);
|
|
|
|
+ //创建辅检和辅检结果关系
|
|
|
|
+ diseaseRepository.mergeRelationPacsResult(standWord,pacsResult);
|
|
|
|
+ //创建辅检结果和对应的pacsCondition的关系
|
|
|
|
+ diseaseRepository.mergeRelationCondiPacsRes(disName+code,pacsResult);
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -1914,6 +2009,33 @@ public class KnowledgeServiceImpl implements KnowledgeService {
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 查找标准词
|
|
|
|
+ * @param type
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public String searchStandWord(String word,String type,Map<String, Map<String, String>> ciKu){
|
|
|
|
+ String stand = null;
|
|
|
|
+ Map<String, String> detaiMap =null;
|
|
|
|
+ String label = Ciku.getLabel(type);
|
|
|
|
+ String[] labelSplits = label.split(",");
|
|
|
|
+ if(labelSplits.length == 1){
|
|
|
|
+ detaiMap = ciKu.get(word + "," + label);
|
|
|
|
+ if(detaiMap != null){
|
|
|
|
+ stand = detaiMap.get("stand");
|
|
|
|
+ }
|
|
|
|
+ }else if(labelSplits.length == 2){
|
|
|
|
+ detaiMap = ciKu.get(word + "," + labelSplits[0]);
|
|
|
|
+ if(detaiMap == null){
|
|
|
|
+ detaiMap = ciKu.get(word + "," + labelSplits[1]);
|
|
|
|
+ }
|
|
|
|
+ if(detaiMap != null){
|
|
|
|
+ stand = detaiMap.get("stand");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return stand;
|
|
|
|
+ }
|
|
/**
|
|
/**
|
|
* 在图谱中删除诊断依据
|
|
* 在图谱中删除诊断依据
|
|
* @param singleDisease
|
|
* @param singleDisease
|