|
@@ -6,6 +6,7 @@ import com.diagbot.dto.IndexBatchDTO;
|
|
|
import com.diagbot.dto.KllisDetailDTO;
|
|
|
import com.diagbot.entity.KlConcept;
|
|
|
import com.diagbot.entity.KlDisease;
|
|
|
+import com.diagbot.entity.KlLibraryInfo;
|
|
|
import com.diagbot.entity.TcmDisease;
|
|
|
import com.diagbot.entity.TcmSyndrome;
|
|
|
import com.diagbot.enums.IsDeleteEnum;
|
|
@@ -43,6 +44,8 @@ public class KlConceptFacade extends KlConceptServiceImpl {
|
|
|
private TcmDiseaseFacade tcmDiseaseFacade;
|
|
|
@Autowired
|
|
|
private TcmSyndromeFacade tcmSyndromeFacade;
|
|
|
+ @Autowired
|
|
|
+ private KlLibraryInfoFacade klLibraryInfoFacade;
|
|
|
|
|
|
/**
|
|
|
* 批量校验标准术语
|
|
@@ -58,31 +61,77 @@ public class KlConceptFacade extends KlConceptServiceImpl {
|
|
|
//type: 类型:1-化验大项、2-化验小项、3-辅检、4-诊断、5-药品、6-手术和操作、7-科室、8-输血、10-量表、11-护理、12-中医诊断、13-中医证候
|
|
|
Integer type = convertType(conceptVO.getType());
|
|
|
|
|
|
- QueryWrapper<KlConcept> queryWrapper = new QueryWrapper<>();
|
|
|
- queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
- .in("lib_name", conceptVO.getNames());
|
|
|
- if (conceptVO.getType().equals(3)) {
|
|
|
- //辅检同时检索辅检项目和辅检子项
|
|
|
- queryWrapper.in("lib_type", Arrays.asList(LexiconEnum.PacsName.getKey(), LexiconEnum.PacsSubName.getKey()));
|
|
|
+ if (conceptVO.getSynonyms() != null && conceptVO.getSynonyms() == 1) {
|
|
|
+ QueryWrapper<KlLibraryInfo> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
+ .eq("is_concept", 0)
|
|
|
+ .in("name", conceptVO.getNames());
|
|
|
+ if (conceptVO.getType().equals(3)) {
|
|
|
+ //辅检同时检索辅检项目和辅检子项
|
|
|
+ queryWrapper.in("type_id", Arrays.asList(LexiconEnum.PacsName.getKey(), LexiconEnum.PacsSubName.getKey()));
|
|
|
+ } else {
|
|
|
+ queryWrapper.eq("type_id", type);
|
|
|
+ }
|
|
|
+ List<KlLibraryInfo> libratyInfos = klLibraryInfoFacade.list(queryWrapper);
|
|
|
+ if (ListUtil.isEmpty(libratyInfos)) {
|
|
|
+ return retList;
|
|
|
+ }
|
|
|
+ Map<Long, List<KlLibraryInfo>> libraryInfoMap
|
|
|
+ = libratyInfos.stream().collect(Collectors.groupingBy(KlLibraryInfo::getConceptId));
|
|
|
+ List<Long> synonymsRelatedConceptIds
|
|
|
+ = libratyInfos.stream().map(KlLibraryInfo::getConceptId).collect(Collectors.toList());
|
|
|
+ List<KlConcept> synonymsRelatedConcepts = this.list(new QueryWrapper<KlConcept>()
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
+ .eq("status", StatusEnum.Enable.getKey())
|
|
|
+ .in("id", synonymsRelatedConceptIds));
|
|
|
+ Map<Long, KlConcept> conceptMap
|
|
|
+ = synonymsRelatedConcepts.stream().collect(Collectors.toMap(KlConcept::getId, v -> v));
|
|
|
+
|
|
|
+ if (conceptMap != null && conceptMap.size() > 0) {
|
|
|
+ for (Map.Entry<Long, KlConcept> entry : conceptMap.entrySet()) {
|
|
|
+ KlConcept concept = entry.getValue();
|
|
|
+ if (libraryInfoMap.containsKey(entry.getKey())) {
|
|
|
+ for (KlLibraryInfo libraryInfo : libraryInfoMap.get(entry.getKey())) {
|
|
|
+ if (!conceptVO.getNames().contains(libraryInfo.getName())) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ IndexBatchDTO indexBatchDTO = new IndexBatchDTO();
|
|
|
+ indexBatchDTO.setId(concept.getId());
|
|
|
+ indexBatchDTO.setName(concept.getLibName());
|
|
|
+ indexBatchDTO.setSynonyms(libraryInfo.getName());
|
|
|
+ retList.add(indexBatchDTO);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
} else {
|
|
|
- queryWrapper.eq("lib_type", type);
|
|
|
- }
|
|
|
- List<KlConcept> concepts = this.list(queryWrapper);
|
|
|
+ QueryWrapper<KlConcept> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
|
|
|
+ .eq("status", StatusEnum.Enable.getKey())
|
|
|
+ .in("lib_name", conceptVO.getNames());
|
|
|
+ if (conceptVO.getType().equals(3)) {
|
|
|
+ //辅检同时检索辅检项目和辅检子项
|
|
|
+ queryWrapper.in("lib_type", Arrays.asList(LexiconEnum.PacsName.getKey(), LexiconEnum.PacsSubName.getKey()));
|
|
|
+ } else {
|
|
|
+ queryWrapper.eq("lib_type", type);
|
|
|
+ }
|
|
|
+ List<KlConcept> concepts = this.list(queryWrapper);
|
|
|
|
|
|
- if (ListUtil.isNotEmpty(concepts)) {
|
|
|
- for (KlConcept concept : concepts) {
|
|
|
- IndexBatchDTO dto = new IndexBatchDTO();
|
|
|
- dto.setId(concept.getId());
|
|
|
- dto.setName(concept.getLibName());
|
|
|
- retList.add(dto);
|
|
|
+ if (ListUtil.isNotEmpty(concepts)) {
|
|
|
+ for (KlConcept concept : concepts) {
|
|
|
+ IndexBatchDTO dto = new IndexBatchDTO();
|
|
|
+ dto.setId(concept.getId());
|
|
|
+ dto.setName(concept.getLibName());
|
|
|
+ retList.add(dto);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (ListUtil.isEmpty(retList)) {
|
|
|
return retList;
|
|
|
}
|
|
|
+ //关联编码
|
|
|
List<Long> conceptIds = retList.stream().map(IndexBatchDTO::getId).collect(Collectors.toList());
|
|
|
-
|
|
|
if (type.equals(LexiconEnum.Disease.getKey())) {
|
|
|
List<KlDisease> diseases = klDiseaseFacade.list(new QueryWrapper<KlDisease>()
|
|
|
.eq("is_deleted", IsDeleteEnum.N.getKey())
|