|
@@ -20,6 +20,7 @@ import com.diagbot.util.EntityUtil;
|
|
|
import com.diagbot.util.ListUtil;
|
|
|
import com.diagbot.util.StringUtil;
|
|
|
import com.diagbot.vo.ConceptVO;
|
|
|
+import com.diagbot.vo.FilterVO;
|
|
|
import com.diagbot.vo.KllisDetailVO;
|
|
|
import com.diagbot.vo.SearchConceptVO;
|
|
|
import com.google.common.collect.Lists;
|
|
@@ -153,12 +154,9 @@ public class KlConceptFacade extends KlConceptServiceImpl {
|
|
|
.in("icd10_code", conceptVO.getNames()));
|
|
|
if (ListUtil.isNotEmpty(diseases)) {
|
|
|
conceptIds = diseases.stream().map(KlDisease::getConceptId).distinct().collect(Collectors.toList());
|
|
|
- codeMap = diseases.stream().collect(Collectors.toMap(KlDisease::getConceptId,
|
|
|
- v -> {
|
|
|
- List<String> codes = Lists.newArrayList();
|
|
|
- codes.add(v.getIcd10Code());
|
|
|
- return codes;
|
|
|
- }));
|
|
|
+ codeMap = diseases.stream()
|
|
|
+ .collect(Collectors.groupingBy(KlDisease::getConceptId,
|
|
|
+ Collectors.mapping(KlDisease::getIcd10Code, Collectors.toList())));
|
|
|
}
|
|
|
} else if (type.equals(LexiconEnum.Operation.getKey())) {
|
|
|
List<KlOperation> operations = klOperationFacade.list(new QueryWrapper<KlOperation>()
|
|
@@ -166,12 +164,9 @@ public class KlConceptFacade extends KlConceptServiceImpl {
|
|
|
.in("operation_code", conceptVO.getNames()));
|
|
|
if (ListUtil.isNotEmpty(operations)) {
|
|
|
conceptIds = operations.stream().map(KlOperation::getConceptId).distinct().collect(Collectors.toList());
|
|
|
- codeMap = operations.stream().collect(Collectors.toMap(KlOperation::getConceptId,
|
|
|
- v -> {
|
|
|
- List<String> codes = Lists.newArrayList();
|
|
|
- codes.add(v.getOperationCode());
|
|
|
- return codes;
|
|
|
- }));
|
|
|
+ codeMap = operations.stream()
|
|
|
+ .collect(Collectors.groupingBy(KlOperation::getConceptId,
|
|
|
+ Collectors.mapping(KlOperation::getOperationCode, Collectors.toList())));
|
|
|
}
|
|
|
} else if (type.equals(LexiconEnum.Tcmdisease.getKey())) {
|
|
|
List<TcmDisease> tcmDiseases = tcmDiseaseFacade.list(new QueryWrapper<TcmDisease>()
|
|
@@ -179,12 +174,8 @@ public class KlConceptFacade extends KlConceptServiceImpl {
|
|
|
.in("code", conceptVO.getNames()));
|
|
|
if (ListUtil.isNotEmpty(tcmDiseases)) {
|
|
|
conceptIds = tcmDiseases.stream().map(TcmDisease::getConceptId).distinct().collect(Collectors.toList());
|
|
|
- codeMap = tcmDiseases.stream().collect(Collectors.toMap(TcmDisease::getConceptId,
|
|
|
- v -> {
|
|
|
- List<String> codes = Lists.newArrayList();
|
|
|
- codes.add(v.getCode());
|
|
|
- return codes;
|
|
|
- }));
|
|
|
+ codeMap = tcmDiseases.stream().collect(Collectors.groupingBy(TcmDisease::getConceptId,
|
|
|
+ Collectors.mapping(TcmDisease::getCode, Collectors.toList())));
|
|
|
}
|
|
|
} else if (type.equals(LexiconEnum.Tcmsyndrome.getKey())) {
|
|
|
List<TcmSyndrome> tcmSyndromes = tcmSyndromeFacade.list(new QueryWrapper<TcmSyndrome>()
|
|
@@ -192,12 +183,8 @@ public class KlConceptFacade extends KlConceptServiceImpl {
|
|
|
.in("code", conceptVO.getNames()));
|
|
|
if (ListUtil.isNotEmpty(tcmSyndromes)) {
|
|
|
conceptIds = tcmSyndromes.stream().map(TcmSyndrome::getConceptId).distinct().collect(Collectors.toList());
|
|
|
- codeMap = tcmSyndromes.stream().collect(Collectors.toMap(TcmSyndrome::getConceptId,
|
|
|
- v -> {
|
|
|
- List<String> codes = Lists.newArrayList();
|
|
|
- codes.add(v.getCode());
|
|
|
- return codes;
|
|
|
- }));
|
|
|
+ codeMap = tcmSyndromes.stream().collect(Collectors.groupingBy(TcmSyndrome::getConceptId,
|
|
|
+ Collectors.mapping(TcmSyndrome::getCode, Collectors.toList())));
|
|
|
}
|
|
|
}
|
|
|
List<KlConcept> concepts = this.list(new QueryWrapper<KlConcept>()
|
|
@@ -283,7 +270,39 @@ public class KlConceptFacade extends KlConceptServiceImpl {
|
|
|
return retList;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 术语模糊检索
|
|
|
+ *
|
|
|
+ * @param filterVO
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public List<IndexBatchDTO> filter(FilterVO filterVO) {
|
|
|
+ List<IndexBatchDTO> retList = Lists.newArrayList();
|
|
|
+ List<KlConcept> klConcepts = this.list(new QueryWrapper<KlConcept>()
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
+ .eq("status", StatusEnum.Enable.getKey())
|
|
|
+ .like("lib_name", filterVO.getInputStr()));
|
|
|
+ for (KlConcept concept : klConcepts) {
|
|
|
+ IndexBatchDTO indexBatchDTO = new IndexBatchDTO();
|
|
|
+ indexBatchDTO.setId(concept.getId());
|
|
|
+ indexBatchDTO.setName(concept.getLibName());
|
|
|
+ Integer type = convertType(concept.getLibType(), true);
|
|
|
+ if (type != null) {
|
|
|
+ indexBatchDTO.setType(type);
|
|
|
+ retList.add(indexBatchDTO);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return retList;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
+ /**
|
|
|
+ * 类型互转
|
|
|
+ *
|
|
|
+ * @param type
|
|
|
+ * @param reverse
|
|
|
+ * @return
|
|
|
+ */
|
|
|
public Integer convertType(Integer type, Boolean reverse) {
|
|
|
Integer retType = null;
|
|
|
//type: 类型:1-化验大项、2-化验小项、3-辅检、4-诊断、5-药品、6-手术和操作、7-科室、8-输血、10-量表、11-护理、12-中医诊断、13-中医证候
|
|
@@ -312,6 +331,10 @@ public class KlConceptFacade extends KlConceptServiceImpl {
|
|
|
retType = ConceptTypeEnum.Tcmdisease.getKey();
|
|
|
} else if (type.equals(LexiconEnum.Tcmsyndrome.getKey())) {
|
|
|
retType = ConceptTypeEnum.Tcmsyndrome.getKey();
|
|
|
+ } else if (type.equals(LexiconEnum.Anesthesia.getKey())) {
|
|
|
+ retType = ConceptTypeEnum.Anesthesia.getKey();
|
|
|
+ } else if (type.equals(LexiconEnum.Form.getKey())) {
|
|
|
+ retType = ConceptTypeEnum.Form.getKey();
|
|
|
}
|
|
|
} else {
|
|
|
switch (type) {
|
|
@@ -351,6 +374,11 @@ public class KlConceptFacade extends KlConceptServiceImpl {
|
|
|
case 13:
|
|
|
retType = LexiconEnum.Tcmsyndrome.getKey();
|
|
|
break;
|
|
|
+ case 14:
|
|
|
+ retType = LexiconEnum.Anesthesia.getKey();
|
|
|
+ break;
|
|
|
+ case 15:
|
|
|
+ retType = LexiconEnum.Form.getKey();
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
@@ -389,4 +417,4 @@ public class KlConceptFacade extends KlConceptServiceImpl {
|
|
|
Map<String, KllisDetailDTO> res = EntityUtil.makeEntityMap(list, "libName");
|
|
|
return res;
|
|
|
}
|
|
|
-}
|
|
|
+}
|