|
@@ -1,6 +1,9 @@
|
|
|
package com.diagbot.facade;
|
|
|
|
|
|
import com.diagbot.aggregate.RuleTestAggregate;
|
|
|
+import com.diagbot.client.CdssCoreClient;
|
|
|
+import com.diagbot.dto.IndexBatchDTO;
|
|
|
+import com.diagbot.dto.RespDTO;
|
|
|
import com.diagbot.dto.RuleDTO;
|
|
|
import com.diagbot.entity.DiseaseConfig;
|
|
|
import com.diagbot.entity.DrugConfig;
|
|
@@ -8,12 +11,18 @@ import com.diagbot.entity.LisConfig;
|
|
|
import com.diagbot.entity.OperationConfig;
|
|
|
import com.diagbot.entity.PacsConfig;
|
|
|
import com.diagbot.entity.TransfusionConfig;
|
|
|
+import com.diagbot.entity.wrapper.MappingConfigWrapper;
|
|
|
+import com.diagbot.enums.ConceptTypeEnum;
|
|
|
import com.diagbot.exception.CommonErrorCode;
|
|
|
import com.diagbot.exception.CommonException;
|
|
|
+import com.diagbot.util.BeanUtil;
|
|
|
import com.diagbot.util.ExcelUtils;
|
|
|
+import com.diagbot.util.ListUtil;
|
|
|
+import com.diagbot.vo.ConceptVO;
|
|
|
import com.diagbot.vo.HospitalIdVO;
|
|
|
import com.diagbot.vo.RuleTestVO;
|
|
|
import com.diagbot.vo.RuleVO;
|
|
|
+import com.google.common.collect.Lists;
|
|
|
import io.github.lvyahui8.spring.aggregate.facade.DataBeanAggregateQueryFacade;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
@@ -31,23 +40,15 @@ import java.util.stream.Collectors;
|
|
|
*/
|
|
|
@Component
|
|
|
public class RuleTestFacade {
|
|
|
+ @Autowired
|
|
|
+ private CdssCoreClient cdssCoreClient;
|
|
|
@Autowired
|
|
|
private RuleTestAggregate ruleTestAggregate;
|
|
|
@Autowired
|
|
|
private DataBeanAggregateQueryFacade dataBeanAggregateQueryFacade;
|
|
|
|
|
|
@Autowired
|
|
|
- private LisConfigFacade lisConfigFacade;
|
|
|
- @Autowired
|
|
|
- private PacsConfigFacade pacsConfigFacade;
|
|
|
- @Autowired
|
|
|
- private DrugConfigFacade drugConfigFacade;
|
|
|
- @Autowired
|
|
|
- private DiseaseConfigFacade diseaseConfigFacade;
|
|
|
- @Autowired
|
|
|
- private OperationConfigFacade operationConfigFacade;
|
|
|
- @Autowired
|
|
|
- private TransfusionConfigFacade transfusionConfigFacade;
|
|
|
+ private MappingConfigFacade mappingConfigFacade;
|
|
|
|
|
|
@Autowired
|
|
|
private KlRuleFacade klRuleFacade;
|
|
@@ -242,33 +243,88 @@ public class RuleTestFacade {
|
|
|
|
|
|
List<RuleDTO> list = klRuleFacade.getRules(new RuleVO());
|
|
|
|
|
|
- List<LisConfig> lisConfigList = lisConfigFacade.getListByHospitalId(hospitalId);
|
|
|
- List<PacsConfig> pacsConfigList = pacsConfigFacade.getListByHospitalId(hospitalId);
|
|
|
- List<DrugConfig> drugConfigList = drugConfigFacade.getListByHospitalId(hospitalId);
|
|
|
- List<DiseaseConfig> diseaseConfigList = diseaseConfigFacade.getListByHospitalId(hospitalId);
|
|
|
- List<OperationConfig> operationConfigList = operationConfigFacade.getListByHospitalId(hospitalId);
|
|
|
- List<TransfusionConfig> transfusionConfigList = transfusionConfigFacade.getListByHospitalId(hospitalId);
|
|
|
+ List<MappingConfigWrapper> lisConfigList = mappingConfigFacade.getListByHospitalIdAndType(hospitalId, ConceptTypeEnum.LisPack.getKey());
|
|
|
+ List<MappingConfigWrapper> pacsConfigList = mappingConfigFacade.getListByHospitalIdAndType(hospitalId, ConceptTypeEnum.Pacs.getKey());
|
|
|
+ List<MappingConfigWrapper> drugConfigList = mappingConfigFacade.getListByHospitalIdAndType(hospitalId, ConceptTypeEnum.Drug.getKey());
|
|
|
+ List<MappingConfigWrapper> diseaseConfigList = mappingConfigFacade.getListByHospitalIdAndType(hospitalId, ConceptTypeEnum.Disease.getKey());
|
|
|
+ List<MappingConfigWrapper> operationConfigList = mappingConfigFacade.getListByHospitalIdAndType(hospitalId, ConceptTypeEnum.Operation.getKey());
|
|
|
+ List<MappingConfigWrapper> transfusionConfigList = mappingConfigFacade.getListByHospitalIdAndType(hospitalId, ConceptTypeEnum.Transfusion.getKey());
|
|
|
+
|
|
|
|
|
|
//诊断映射关系
|
|
|
- Map<String, Map<String, List<Long>>> diseaseConfigMap = diseaseConfigFacade.getUniqueConfigMap(hospitalId, null, null);
|
|
|
+ Map<String, Map<String, Map<String, List<String>>>> diseaseConfigMap
|
|
|
+ = mappingConfigFacade.groupByUniqueNameWithName(null, ConceptTypeEnum.Disease.getKey(), hospitalId);
|
|
|
+ //Map<String, Map<String, List<Long>>> diseaseConfigMap = diseaseConfigFacade.getUniqueConfigMap(hospitalId, null, null);
|
|
|
+
|
|
|
+ Map<String, List<Long>> usedMap = unUsedMappingFacade.usedConceptIds(list);
|
|
|
+
|
|
|
+ List<Long> lisIds = usedMap.get("lis");
|
|
|
+ List<Long> pacsIds = usedMap.get("pacs");
|
|
|
+ List<Long> diseaseIds = usedMap.get("disease");
|
|
|
+ List<Long> drugIds = usedMap.get("drug");
|
|
|
+ List<Long> operationIds = usedMap.get("operation");
|
|
|
+ List<Long> transfusionIds = usedMap.get("transfusion");
|
|
|
|
|
|
- Map<String, List<String>> usedMap = unUsedMappingFacade.usedNames(list);
|
|
|
+ List<String> lisNames = Lists.newLinkedList();
|
|
|
+ List<String> pacsNames = Lists.newLinkedList();
|
|
|
+ List<String> diseaseNames = Lists.newLinkedList();
|
|
|
+ List<String> drugNames = Lists.newLinkedList();
|
|
|
+ List<String> operationNames = Lists.newLinkedList();
|
|
|
+ List<String> transfusionNames = Lists.newLinkedList();
|
|
|
+
|
|
|
+ ConceptVO conceptVO = new ConceptVO();
|
|
|
+ conceptVO.setSource(-1);
|
|
|
+ conceptVO.setIds(lisIds);
|
|
|
+ RespDTO<List<IndexBatchDTO>> respDTO = cdssCoreClient.getConceptNames(conceptVO);
|
|
|
+ if (ListUtil.isNotEmpty(respDTO.data)) {
|
|
|
+ lisNames = respDTO.data.stream().map(IndexBatchDTO::getName).distinct().collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ conceptVO.setIds(pacsIds);
|
|
|
+ respDTO = cdssCoreClient.getConceptNames(conceptVO);
|
|
|
+ if (ListUtil.isNotEmpty(respDTO.data)) {
|
|
|
+ pacsNames = respDTO.data.stream().map(IndexBatchDTO::getName).distinct().collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ conceptVO.setIds(diseaseIds);
|
|
|
+ respDTO = cdssCoreClient.getConceptNames(conceptVO);
|
|
|
+ if (ListUtil.isNotEmpty(respDTO.data)) {
|
|
|
+ diseaseNames = respDTO.data.stream().map(IndexBatchDTO::getName).distinct().collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ conceptVO.setIds(drugIds);
|
|
|
+ respDTO = cdssCoreClient.getConceptNames(conceptVO);
|
|
|
+ if (ListUtil.isNotEmpty(respDTO.data)) {
|
|
|
+ drugNames = respDTO.data.stream().map(IndexBatchDTO::getName).distinct().collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ conceptVO.setIds(pacsIds);
|
|
|
+ respDTO = cdssCoreClient.getConceptNames(conceptVO);
|
|
|
+ if (ListUtil.isNotEmpty(respDTO.data)) {
|
|
|
+ pacsNames = respDTO.data.stream().map(IndexBatchDTO::getName).distinct().collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ conceptVO.setIds(operationIds);
|
|
|
+ respDTO = cdssCoreClient.getConceptNames(conceptVO);
|
|
|
+ if (ListUtil.isNotEmpty(respDTO.data)) {
|
|
|
+ operationNames = respDTO.data.stream().map(IndexBatchDTO::getName).distinct().collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ conceptVO.setIds(transfusionIds);
|
|
|
+ respDTO = cdssCoreClient.getConceptNames(conceptVO);
|
|
|
+ if (ListUtil.isNotEmpty(respDTO.data)) {
|
|
|
+ transfusionNames = respDTO.data.stream().map(IndexBatchDTO::getName).distinct().collect(Collectors.toList());
|
|
|
+ }
|
|
|
|
|
|
- List<String> lisNames = usedMap.get("lis");
|
|
|
- List<String> pacsNames = usedMap.get("pacs");
|
|
|
- List<String> diseaseNames = usedMap.get("disease");
|
|
|
- List<String> drugNames = usedMap.get("drug");
|
|
|
- List<String> operationNames = usedMap.get("operation");
|
|
|
- List<String> transfusionNames = usedMap.get("transfusion");
|
|
|
|
|
|
diseaseNames.addAll(diseaseConfigMap.keySet().stream().filter(i -> i.contains("流产")).collect(Collectors.toList()));
|
|
|
|
|
|
- List<LisConfig> unUsedLisConfigs = unUsedMappingFacade.unUsedMapping(lisConfigList, lisNames);
|
|
|
- List<PacsConfig> unUsedPacsConfigs = unUsedMappingFacade.unUsedMapping(pacsConfigList, pacsNames);
|
|
|
- List<DiseaseConfig> unUsedDiseaseConfigs = unUsedMappingFacade.unUsedMapping(diseaseConfigList, diseaseNames);
|
|
|
- List<DrugConfig> unUsedDrugConfigs = unUsedMappingFacade.unUsedMapping(drugConfigList, drugNames);
|
|
|
- List<OperationConfig> unUsedOperationConfig = unUsedMappingFacade.unUsedMapping(operationConfigList, operationNames);
|
|
|
- List<TransfusionConfig> unUsedTransfusionConfigs = unUsedMappingFacade.unUsedMapping(transfusionConfigList, transfusionNames);
|
|
|
+ List<LisConfig> unUsedLisConfigs
|
|
|
+ = BeanUtil.listCopyTo(unUsedMappingFacade.unUsedMapping(lisConfigList, lisNames), LisConfig.class);
|
|
|
+ List<PacsConfig> unUsedPacsConfigs
|
|
|
+ = BeanUtil.listCopyTo(unUsedMappingFacade.unUsedMapping(pacsConfigList, pacsNames), PacsConfig.class);
|
|
|
+ List<DiseaseConfig> unUsedDiseaseConfigs
|
|
|
+ = BeanUtil.listCopyTo(unUsedMappingFacade.unUsedMapping(diseaseConfigList, diseaseNames), DiseaseConfig.class);
|
|
|
+ List<DrugConfig> unUsedDrugConfigs
|
|
|
+ = BeanUtil.listCopyTo(unUsedMappingFacade.unUsedMapping(drugConfigList, drugNames), DrugConfig.class);
|
|
|
+ List<OperationConfig> unUsedOperationConfig
|
|
|
+ = BeanUtil.listCopyTo(unUsedMappingFacade.unUsedMapping(operationConfigList, operationNames), OperationConfig.class);
|
|
|
+ List<TransfusionConfig> unUsedTransfusionConfigs
|
|
|
+ = BeanUtil.listCopyTo(unUsedMappingFacade.unUsedMapping(transfusionConfigList, transfusionNames), TransfusionConfig.class);
|
|
|
|
|
|
String fileName = "规则未使用的映射关系.xls";
|
|
|
Map<String, Map<Class<?>, List<?>>> map = new HashMap<>();
|