소스 검색

化验、辅检、手术术语映射

kongwz 4 년 전
부모
커밋
eb8e6390c6
27개의 변경된 파일1161개의 추가작업 그리고 615개의 파일을 삭제
  1. 296 0
      src/main/java/com/diagbot/entity/MappingConfig.java
  2. 49 0
      src/main/java/com/diagbot/entity/wrapper/MappingConfigWrapper.java
  3. 193 114
      src/main/java/com/diagbot/facade/CommonFacade.java
  4. 0 139
      src/main/java/com/diagbot/facade/LisConfigFacade.java
  5. 163 0
      src/main/java/com/diagbot/facade/MappingConfigFacade.java
  6. 0 57
      src/main/java/com/diagbot/facade/OperationConfigFacade.java
  7. 0 89
      src/main/java/com/diagbot/facade/PacsConfigFacade.java
  8. 0 15
      src/main/java/com/diagbot/mapper/LisConfigMapper.java
  9. 45 0
      src/main/java/com/diagbot/mapper/MappingConfigMapper.java
  10. 0 15
      src/main/java/com/diagbot/mapper/OperationConfigMapper.java
  11. 0 15
      src/main/java/com/diagbot/mapper/PacsConfigMapper.java
  12. 1 1
      src/main/java/com/diagbot/model/ai/process/EntityProcessPacs.java
  13. 2 4
      src/main/java/com/diagbot/process/PushProcess.java
  14. 0 15
      src/main/java/com/diagbot/service/LisConfigService.java
  15. 45 0
      src/main/java/com/diagbot/service/MappingConfigService.java
  16. 0 15
      src/main/java/com/diagbot/service/OperationConfigService.java
  17. 0 15
      src/main/java/com/diagbot/service/PacsConfigService.java
  18. 2 0
      src/main/java/com/diagbot/service/impl/KlConceptServiceImpl.java
  19. 0 21
      src/main/java/com/diagbot/service/impl/LisConfigServiceImpl.java
  20. 60 0
      src/main/java/com/diagbot/service/impl/MappingConfigServiceImpl.java
  21. 0 21
      src/main/java/com/diagbot/service/impl/OperationConfigServiceImpl.java
  22. 0 21
      src/main/java/com/diagbot/service/impl/PacsConfigServiceImpl.java
  23. 74 0
      src/main/java/com/diagbot/vo/MappingConfigPageVO.java
  24. 0 20
      src/main/resources/mapper/LisConfigMapper.xml
  25. 231 0
      src/main/resources/mapper/MappingConfigMapper.xml
  26. 0 19
      src/main/resources/mapper/OperationConfigMapper.xml
  27. 0 19
      src/main/resources/mapper/PacsConfigMapper.xml

+ 296 - 0
src/main/java/com/diagbot/entity/MappingConfig.java

@@ -0,0 +1,296 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.diagbot.util.StringUtil;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Objects;
+
+/**
+ * <p>
+ * 医学术语映射表
+ * </p>
+ *
+ * @author zhaops
+ * @since 2021-06-09
+ */
+@TableName("tran_mapping_config")
+public class MappingConfig implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private Date gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    /**
+     * 医院id
+     */
+    private Long hospitalId;
+
+    /**
+     * 医学术语类型( 1-检验套餐、2-检验细项、3-辅检、4-诊断、5-药品、6-手术和操作、7-科室、8-输血、10-量表、11-护理、12-中医疾病、13-中医证候、14-麻醉)
+     */
+    private Integer type;
+
+    /**
+     * 医院术语名称
+     */
+    private String hisName;
+
+    /**
+     * 医院术语编码
+     */
+    private String hisCode;
+
+    /**
+     * 医院术语细项名称(检验细项)
+     */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private String hisDetailName;
+
+    /**
+     * 医学标准术语id
+     */
+    private Long conceptId;
+
+    /**
+     * 药品剂型id
+     */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private Long formConceptId;
+
+    /**
+     * 是否匹配(0-未匹配、1-已匹配)
+     */
+    private Integer isMatch;
+
+    /**
+     * 数据来源(1-标准词、2-同义词、3-编码、4-历史数据、5-相似词、99-数据迁移)
+     */
+    private Integer source;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getIsDeleted() {
+        return isDeleted;
+    }
+
+    public void setIsDeleted(String isDeleted) {
+        this.isDeleted = isDeleted;
+    }
+
+    public Date getGmtCreate() {
+        return gmtCreate;
+    }
+
+    public void setGmtCreate(Date gmtCreate) {
+        this.gmtCreate = gmtCreate;
+    }
+
+    public Date getGmtModified() {
+        return gmtModified;
+    }
+
+    public void setGmtModified(Date gmtModified) {
+        this.gmtModified = gmtModified;
+    }
+
+    public String getCreator() {
+        return creator;
+    }
+
+    public void setCreator(String creator) {
+        this.creator = creator;
+    }
+
+    public String getModifier() {
+        return modifier;
+    }
+
+    public void setModifier(String modifier) {
+        this.modifier = modifier;
+    }
+
+    public Long getHospitalId() {
+        return hospitalId;
+    }
+
+    public void setHospitalId(Long hospitalId) {
+        this.hospitalId = hospitalId;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public String getHisName() {
+        return hisName;
+    }
+
+    public void setHisName(String hisName) {
+        this.hisName = hisName;
+    }
+
+    public String getHisCode() {
+        return hisCode;
+    }
+
+    public void setHisCode(String hisCode) {
+        this.hisCode = hisCode;
+    }
+
+    public String getHisDetailName() {
+        return hisDetailName;
+    }
+
+    public void setHisDetailName(String hisDetailName) {
+        this.hisDetailName = hisDetailName;
+    }
+
+    public Long getConceptId() {
+        return conceptId;
+    }
+
+    public void setConceptId(Long conceptId) {
+        this.conceptId = conceptId;
+    }
+
+    public Long getFormConceptId() {
+        return formConceptId;
+    }
+
+    public void setFormConceptId(Long formConceptId) {
+        this.formConceptId = formConceptId;
+    }
+
+    public Integer getIsMatch() {
+        return isMatch;
+    }
+
+    public void setIsMatch(Integer isMatch) {
+        this.isMatch = isMatch;
+    }
+
+    public Integer getSource() {
+        return source;
+    }
+
+    public void setSource(Integer source) {
+        this.source = source;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    @Override
+    public String toString() {
+        return "MappingConfig{" +
+                "id=" + id +
+                ", isDeleted=" + isDeleted +
+                ", gmtCreate=" + gmtCreate +
+                ", gmtModified=" + gmtModified +
+                ", creator=" + creator +
+                ", modifier=" + modifier +
+                ", hospitalId=" + hospitalId +
+                ", type=" + type +
+                ", hisName=" + hisName +
+                ", hisCode=" + hisCode +
+                ", hisDetailName=" + hisDetailName +
+                ", conceptId=" + conceptId +
+                ", formConceptId=" + formConceptId +
+                ", isMatch=" + isMatch +
+                ", source=" + source +
+                ", remark=" + remark +
+                "}";
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
+        MappingConfig mappingConfig = (MappingConfig) o;
+        return Objects.equals(id, mappingConfig.id)
+                && Objects.equals(isDeleted, mappingConfig.isDeleted)
+                && Objects.equals(hospitalId, mappingConfig.hospitalId)
+                && Objects.equals(type, mappingConfig.type)
+                && Objects.equals(hisName, mappingConfig.hisName)
+                && Objects.equals(hisCode, mappingConfig.hisCode)
+                && Objects.equals(hisDetailName, mappingConfig.hisDetailName)
+                && Objects.equals(conceptId, mappingConfig.conceptId)
+                && Objects.equals(formConceptId, mappingConfig.formConceptId)
+                && Objects.equals(isMatch, mappingConfig.isMatch)
+                //&& Objects.equals(source, mappingConfig.source)
+                ;
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(id, isDeleted, hospitalId, type, hisName, hisCode, hisDetailName, conceptId, formConceptId, isMatch);
+    }
+
+    public static boolean nonNull(MappingConfig o) {
+        return !(o == null
+                || (o.hospitalId == null
+                && o.type == null
+                && StringUtil.isBlank(o.hisName)
+                && StringUtil.isBlank(o.hisCode)
+                && StringUtil.isBlank(o.hisDetailName)
+                && o.conceptId == null
+                && o.formConceptId == null
+                && o.isMatch == null
+                && o.source == null));
+    }
+}

+ 49 - 0
src/main/java/com/diagbot/entity/wrapper/MappingConfigWrapper.java

@@ -0,0 +1,49 @@
+package com.diagbot.entity.wrapper;
+
+import com.diagbot.entity.MappingConfig;
+import com.diagbot.util.StringUtil;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Objects;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/6/10 19:27
+ */
+@Getter
+@Setter
+public class MappingConfigWrapper extends MappingConfig {
+    private String uniqueName;
+    private String form;
+    private String code;
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
+        MappingConfigWrapper mappingConfigWrapper = (MappingConfigWrapper) o;
+        return super.equals(o)
+                && Objects.equals(uniqueName, mappingConfigWrapper.uniqueName)
+                && Objects.equals(form, mappingConfigWrapper.form)
+                && Objects.equals(code, mappingConfigWrapper.code);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(uniqueName, form, code) + super.hashCode();
+    }
+
+    public static boolean nonNull(MappingConfigWrapper o) {
+        return !(o == null
+                || (StringUtil.isBlank(o.uniqueName)
+                && StringUtil.isBlank(o.form)
+                && StringUtil.isBlank(o.code)))
+                || MappingConfig.nonNull(o);
+    }
+}

+ 193 - 114
src/main/java/com/diagbot/facade/CommonFacade.java

@@ -4,62 +4,33 @@ import com.diagbot.biz.push.entity.Item;
 import com.diagbot.biz.push.entity.Lis;
 import com.diagbot.client.CRFServiceClient;
 import com.diagbot.client.StandConvertServiceClient;
-import com.diagbot.dto.BillMsg;
-import com.diagbot.dto.RuleDTO;
-import com.diagbot.dto.RuleExtDTO;
-import com.diagbot.dto.StandConvertCrfBatchDTO;
-import com.diagbot.dto.StandConvertCrfDTO;
-import com.diagbot.dto.WordCrfDTO;
+import com.diagbot.dto.*;
+import com.diagbot.enums.ConceptTypeEnum;
 import com.diagbot.enums.LexiconEnum;
 import com.diagbot.enums.RedisEnum;
 import com.diagbot.enums.StandConvertEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.model.ai.AIAnalyze;
-import com.diagbot.model.entity.BodyPart;
-import com.diagbot.model.entity.Clinical;
-import com.diagbot.model.entity.Modification;
 import com.diagbot.model.entity.Operation;
-import com.diagbot.model.entity.Pacs;
-import com.diagbot.model.entity.Vital;
-import com.diagbot.model.label.ChiefLabel;
-import com.diagbot.model.label.DiagLabel;
-import com.diagbot.model.label.PacsLabel;
-import com.diagbot.model.label.PastLabel;
-import com.diagbot.model.label.PresentLabel;
-import com.diagbot.model.label.VitalLabel;
+import com.diagbot.model.entity.*;
+import com.diagbot.model.label.*;
 import com.diagbot.rule.CommonRule;
-import com.diagbot.util.BeanUtil;
-import com.diagbot.util.CoreUtil;
-import com.diagbot.util.ListUtil;
-import com.diagbot.util.RedisUtil;
-import com.diagbot.util.ReflectUtil;
-import com.diagbot.util.StringUtil;
-import com.diagbot.vo.NeoPushVO;
-import com.diagbot.vo.RuleVO;
-import com.diagbot.vo.SearchData;
-import com.diagbot.vo.StandConvert;
-import com.diagbot.vo.StandConvertCrfVO;
-import com.diagbot.vo.neoPushEntity.ChiefPushVo;
+import com.diagbot.util.*;
+import com.diagbot.vo.*;
 import com.diagbot.vo.neoPushEntity.Diag;
-import com.diagbot.vo.neoPushEntity.DiagVo;
 import com.diagbot.vo.neoPushEntity.Drug;
-import com.diagbot.vo.neoPushEntity.LisPushVo;
-import com.diagbot.vo.neoPushEntity.PacsPushVo;
-import com.diagbot.vo.neoPushEntity.PresentPushVo;
-import com.diagbot.vo.neoPushEntity.Symptom;
+import com.diagbot.vo.neoPushEntity.*;
 import com.google.common.collect.Lists;
 import org.apache.commons.beanutils.BeanUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
+
+import java.lang.reflect.Method;
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -72,9 +43,7 @@ public class CommonFacade {
     @Autowired
     CRFServiceClient crfServiceClient;
     @Autowired
-    LisConfigFacade lisConfigFacade;
-    @Autowired
-    PacsConfigFacade pacsConfigFacade;
+    MappingConfigFacade mappingConfigFacade;
     @Autowired
     TranOperationConfigFacade tranOperationConfigFacade;
     @Autowired
@@ -428,9 +397,9 @@ public class CommonFacade {
         //        // 3、开单辅检项目
         //        CoreUtil.setPropertyList(wordCrfDTO.getPacsOrder(), "name", "uniqueName", map.get(StandConvertEnum.pacs.toString()));
 
-        CoreUtil.setUninameFromDetail(wordCrfDTO.getLis(), "detailName");
-        CoreUtil.setUninameFromDetail(wordCrfDTO.getLisOrder(), "name");
-
+//        CoreUtil.setUninameFromDetail(wordCrfDTO.getLis(), "detailName");
+//        CoreUtil.setUninameFromDetail(wordCrfDTO.getLisOrder(), "name");
+        lisGetAndSet(wordCrfDTO);
         pacsGetAndSet(wordCrfDTO);
 
         // 【体征回填】
@@ -673,38 +642,44 @@ public class CommonFacade {
         CoreUtil.addList(operationList, CoreUtil.getPropertyList(wordCrfDTO.getPresentLabel().getOperations()));
         // 3、既往史手术
         CoreUtil.addList(operationList, CoreUtil.getPropertyList(wordCrfDTO.getPastLabel().getOperations()));
-        // 4、开单手术
-        CoreUtil.addList(operationList, CoreUtil.filterUniqueList(wordCrfDTO.getOperationOrder()));
-        // 5、结构化手术
-        CoreUtil.addList(operationList, CoreUtil.filterUniqueList(wordCrfDTO.getOperation()));
-        // 6、选中手术
-        if (wordCrfDTO.getOperationName() != null && StringUtils.isBlank(wordCrfDTO.getOperationName().getUniqueName())) {
-            operationList.add(wordCrfDTO.getOperationName().getName());
-        }
+//        // 4、开单手术
+//        CoreUtil.addList(operationList, CoreUtil.filterUniqueList(wordCrfDTO.getOperationOrder()));
+//        // 5、结构化手术
+//        CoreUtil.addList(operationList, CoreUtil.filterUniqueList(wordCrfDTO.getOperation()));
+//        // 6、选中手术
+//        if (wordCrfDTO.getOperationName() != null && StringUtils.isBlank(wordCrfDTO.getOperationName().getUniqueName())) {
+//            operationList.add(wordCrfDTO.getOperationName().getName());
+//        }
         operationList = operationList
                 .stream()
                 .distinct()
                 .collect(Collectors.toList());
 
-        Map<String, Map<String, Long>> configMap = new LinkedHashMap<>();
+//        Map<String, Map<String, Long>> configMap = new LinkedHashMap<>();
         if (ListUtil.isNotEmpty(operationList)) {
-            configMap = tranOperationConfigFacade.getConfigMap(wordCrfDTO.getHospitalId(), operationList, null);
+//            configMap = tranOperationConfigFacade.getConfigMap(wordCrfDTO.getHospitalId(), operationList, null);
+            Map<String, Map<String, Map<String, List<String>>>> operstionMap = mappingConfigFacade.groupByHisNameWithName(operationList, ConceptTypeEnum.Operation.getKey(), wordCrfDTO.getHospitalId());
             // 1、主诉手术
-            setListProperty(wordCrfDTO.getChiefLabel(), "operations", "standName", configMap);
+//            setListProperty(wordCrfDTO.getChiefLabel(), "operations", "standName", configMap);
+            setListProperty(wordCrfDTO.getChiefLabel(), "operations", ConceptTypeEnum.Operation.getKey(),"StandName",operstionMap);
             // 2、现病史手术
-            setListProperty(wordCrfDTO.getPresentLabel(), "operations", "standName", configMap);
+//            setListProperty(wordCrfDTO.getPresentLabel(), "operations", "standName", configMap);
+            setListProperty(wordCrfDTO.getPresentLabel(),"operations", ConceptTypeEnum.Operation.getKey(),"StandName",operstionMap);
             // 3、既往史手术
-            setListProperty(wordCrfDTO.getPastLabel(), "operations", "standName", configMap);
-            // 4、开单手术
-            setListProperty(wordCrfDTO, "operation", "uniqueName", configMap);
-            // 5、结构化手术
-            setListProperty(wordCrfDTO, "operationOrder", "uniqueName", configMap);
-            // 6、选中手术
-            if (wordCrfDTO.getOperationName() != null &&
-                    StringUtil.isNotBlank(wordCrfDTO.getOperationName().getName()) &&
-                    StringUtil.isBlank(wordCrfDTO.getOperationName().getUniqueName())) {
-                wordCrfDTO.getOperationName().setUniqueName(wordCrfDTO.getOperationName().getName());
-            }
+//            setListProperty(wordCrfDTO.getPastLabel(), "operations", "standName", configMap);
+            setListProperty(wordCrfDTO.getPastLabel(),"operations", ConceptTypeEnum.Operation.getKey(),"StandName",operstionMap);
+//            // 4、结构化手术
+////            setListProperty(wordCrfDTO, "operation", "uniqueName", configMap);
+//            setListProperty(wordCrfDTO, "operation", ConceptTypeEnum.Operation.getKey(),"UniqueName",operstionMap);
+//            // 5、手术
+////            setListProperty(wordCrfDTO, "operationOrder", "uniqueName", configMap);
+//            setListProperty(wordCrfDTO, "operationOrder", ConceptTypeEnum.Operation.getKey(),"UniqueName",operstionMap);
+//            // 6、选中手术
+//            if (wordCrfDTO.getOperationName() != null &&
+//                    StringUtil.isNotBlank(wordCrfDTO.getOperationName().getName()) &&
+//                    StringUtil.isBlank(wordCrfDTO.getOperationName().getUniqueName())) {
+//                wordCrfDTO.getOperationName().setUniqueName(wordCrfDTO.getOperationName().getName());
+//            }
         }
     }
 
@@ -717,24 +692,49 @@ public class CommonFacade {
         // 【所有辅检】
         List<String> pacsList = new ArrayList<>();
         // 1、结构化
-        CoreUtil.addList(pacsList, CoreUtil.getPropertyList(wordCrfDTO.getPacs()));
-        // 2、开单
-        CoreUtil.addList(pacsList, CoreUtil.getPropertyList(wordCrfDTO.getPacsOrder()));
+//        CoreUtil.addList(pacsList, CoreUtil.getPropertyList(wordCrfDTO.getPacs()));
+//        // 2、开单
+//        CoreUtil.addList(pacsList, CoreUtil.getPropertyList(wordCrfDTO.getPacsOrder()));
+        PacsLabel pacsLabel = wordCrfDTO.getPacsLabel();
+        if(pacsLabel != null){
+            pacsList = pacsLabel.getItem().stream()
+                    .map(x -> x.getName())
+                    .collect(Collectors.toList());
+        }
+
+        if (ListUtil.isNotEmpty(pacsList)) {
+            Map<String, Map<String, Map<String, List<String>>>> pacsMap = mappingConfigFacade.groupByHisNameWithName(pacsList, ConceptTypeEnum.Pacs.getKey(), wordCrfDTO.getHospitalId());
+            setListProperty(wordCrfDTO, "pacs", ConceptTypeEnum.Pacs.getKey(),"UniqueName",pacsMap);
+            setListProperty(pacsLabel, "item", ConceptTypeEnum.Pacs.getKey(),"UniqueName",pacsMap);
+        }
+    }
 
-        pacsList = pacsList
+    /**
+     * 化验映射(关闭同义词转换)
+     *
+     * @param wordCrfDTO
+     */
+    public void lisGetAndSet(WordCrfDTO wordCrfDTO) {
+        //化验公表转换
+        List<String> lisHisNameList = Lists.newArrayList();
+        // 【所有化验】
+        List<Lis> lisList = wordCrfDTO.getLis();
+        if(ListUtil.isNotEmpty(lisList)){
+            lisHisNameList.addAll(lisList
+                    .stream()
+                    .filter(i -> StringUtil.isNotBlank(i.getName()) || StringUtil.isNotBlank(i.getUniqueName()))
+                    .map(i -> i.getName())
+                    .collect(Collectors.toList()));
+        }
+        lisHisNameList = lisHisNameList
                 .stream()
                 .distinct()
                 .collect(Collectors.toList());
-
-        Map<String, Map<String, Long>> configMap = new LinkedHashMap<>();
-        if (ListUtil.isNotEmpty(pacsList)) {
-            configMap = pacsConfigFacade.getConfigMap(wordCrfDTO.getHospitalId(), pacsList, null);
-
-            // 4、结构化
-            setListProperty(wordCrfDTO, "pacs", "uniqueName", configMap);
-            // 5、开单
-            setListProperty(wordCrfDTO, "pacsOrder", "uniqueName", configMap);
+        if (ListUtil.isNotEmpty(lisHisNameList)) {
+            Map<String, Map<String, Map<String, List<String>>>> lisConfigMap = mappingConfigFacade.groupByHisNameWithName(lisHisNameList, ConceptTypeEnum.LisPack.getKey(), wordCrfDTO.getHospitalId());
+            setListProperty(wordCrfDTO, "lis", ConceptTypeEnum.LisPack.getKey(),"UniqueName",lisConfigMap);
         }
+
     }
 
     /**
@@ -751,6 +751,12 @@ public class CommonFacade {
         ReflectUtil.setProperty(obj, listProperty, newList);
     }
 
+    public <T> void setListProperty(Object obj, String listProperty,Integer type,String propertyName, Map<String, Map<String, Map<String, List<String>>>> configMap) {
+        Object tList = CoreUtil.getFieldValue(obj, listProperty);
+        List<T> newList = convertStandName((List) tList,type, propertyName,configMap);
+        ReflectUtil.setProperty(obj, listProperty, newList);
+    }
+
     /**
      * 标准名称转换
      *
@@ -800,6 +806,94 @@ public class CommonFacade {
         return retList;
     }
 
+    /**
+     * 标准名称转换
+     *
+     * @param list
+     * @param configMap
+     * @param type
+     * @param <T>
+     * @return
+     */
+    public <T> List<T> convertStandName(List<T> list,Integer type,String propertyName, Map<String, Map<String, Map<String, List<String>>>> configMap) {
+        List<T> retList = new ArrayList<>();
+        if (ListUtil.isEmpty(list)) {
+            return list;
+        }
+        if (configMap == null || configMap.size() == 0) {
+            return list;
+        }
+
+        try {
+            for (T item : list) {
+                String name = item.getClass().getMethod("getName").invoke(item).toString();
+                if (StringUtil.isBlank(name)) {
+                    retList.add(item);
+                    continue;
+                }
+
+//                String uniqueName = item.getClass().getMethod("getUniqueName").invoke(item).toString();
+                String uniqueName = item.getClass().getMethod("get"+propertyName).invoke(item).toString();
+                if (StringUtil.isNotBlank(uniqueName)) {
+                    retList.add(item);
+                    continue;
+                }
+
+                String hisDetailName = "";
+                if(type.equals(ConceptTypeEnum.LisPack.getKey())) {
+                    hisDetailName = item.getClass().getMethod("getDetailName").invoke(item).toString();
+                    if (StringUtil.isBlank(hisDetailName)) {
+                        hisDetailName = "";
+                    }
+                }
+
+                if (configMap.containsKey(name)) {
+                    Map<String, Map<String, List<String>>> subMap = configMap.get(name);
+                    if (subMap.containsKey(hisDetailName)) {
+                        if (type.equals(ConceptTypeEnum.Drug.getKey())) {
+                            for (Map.Entry<String, List<String>> thirdEntry : subMap.get(hisDetailName).entrySet()) {
+                                if (ListUtil.isNotEmpty(thirdEntry.getValue())) {
+                                    for (String form : thirdEntry.getValue()) {
+                                        T o = (T) item.getClass().newInstance();
+                                        BeanUtil.copyProperties(item, o);
+                                        Method setUniqueName = o.getClass().getMethod("set"+propertyName, String.class);
+                                        setUniqueName.invoke(o, thirdEntry.getKey());
+                                        Method setForm = o.getClass().getMethod("setForm", String.class);
+                                        setForm.invoke(o, form);
+                                        retList.add(o);
+                                    }
+                                } else {
+                                    T o = (T) item.getClass().newInstance();
+                                    BeanUtil.copyProperties(item, o);
+                                    Method setUniqueName = o.getClass().getMethod("set"+propertyName, String.class);
+                                    setUniqueName.invoke(o, thirdEntry.getKey());
+                                    retList.add(o);
+                                }
+                            }
+
+                        } else {
+                            List<String> standNames = new ArrayList<>(subMap.get(hisDetailName).keySet());
+                            for (String stdName : standNames) {
+                                T o = (T) item.getClass().newInstance();
+                                BeanUtil.copyProperties(item, o);
+                                Method setUniqueName = o.getClass().getMethod("set"+propertyName, String.class);
+                                setUniqueName.invoke(o, stdName);
+                                retList.add(o);
+                            }
+                        }
+                    } else {
+                        retList.add(item);
+                    }
+                } else {
+                    retList.add(item);
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return retList;
+    }
+
     /**
      * 生成给图谱的入参(推送)
      */
@@ -959,9 +1053,9 @@ public class CommonFacade {
         /**************************化验结构化处理开始*****************************/
         List<Lis> lisList = new ArrayList<>();
         // 处理主诉化验
-        getLisStruct(wordCrfDTO.getChiefLabel().getLises(), lisList, wordCrfDTO.getHospitalId());
+        getLisStruct(wordCrfDTO.getChiefLabel().getLises(), lisList);
         // 处理现病史化验
-        getLisStruct(wordCrfDTO.getPresentLabel().getLises(), lisList, wordCrfDTO.getHospitalId());
+        getLisStruct(wordCrfDTO.getPresentLabel().getLises(), lisList);
         // 统一放置化验结构
         if (ListUtil.isNotEmpty(lisList)) {
             wordCrfDTO.getLis().addAll(lisList);
@@ -975,6 +1069,16 @@ public class CommonFacade {
         getPacsStruct(pacsLabel, wordCrfDTO.getChiefLabel().getPacsLabel());
         // 处理现病史辅检
         getPacsStruct(pacsLabel, wordCrfDTO.getPresentLabel().getPacsLabel());
+        //结构化pacs
+        List<com.diagbot.biz.push.entity.Pacs> pacs = wordCrfDTO.getPacs();
+        if(ListUtil.isNotEmpty(pacs)){
+            pacs.forEach(p ->{
+                Item item = new Item();
+                item.setName(p.getName()==null?"":p.getName());
+                item.setUniqueName(p.getUniqueName()==null?"":p.getUniqueName());
+                pacsLabel.getItem().add(item);
+            });
+        }
         // 辅检结果去重
         if (ListUtil.isNotEmpty(pacsLabel.getRes())) {
             dealMsgWithItem(pacsLabel.getRes());
@@ -1007,8 +1111,8 @@ public class CommonFacade {
         if (ListUtil.isNotEmpty(res.getDisease())) {
             for (Pacs pacs : res.getDisease()) {
                 Item item = new Item();
-                item.setName(pacs.getName());
-                item.setUniqueName(pacs.getStandName());
+                item.setName(pacs.getName()==null?"":pacs.getName());
+                item.setUniqueName(pacs.getStandName()==null?"":pacs.getStandName());
                 pacsResList.add(item);
             }
         }
@@ -1048,43 +1152,18 @@ public class CommonFacade {
      *
      * @param lises
      * @param lisList
-     * @param hospitalId
+     *
      */
-    public void getLisStruct(List<com.diagbot.model.entity.Lis> lises, List<Lis> lisList, Long hospitalId) {
+    public void getLisStruct(List<com.diagbot.model.entity.Lis> lises, List<Lis> lisList) {
         if (ListUtil.isNotEmpty(lises)) {
-            List<String> lisNames = lises.stream().map(x -> x.getBigItem().getName()).distinct().collect(Collectors.toList());
-            Map<String, Map<String, Map<String, Long>>> configMap = lisConfigFacade.getConfigMap(hospitalId, lisNames, null);
-            if (configMap.size() > 0) {
                 lises.stream().forEach(x -> {
                     String bigName = x.getBigItem().getName();//大项名
                     String detailName = x.getName();//小项名
                     String value = x.getPd().getValue();
                     String unit = x.getPd().getUnit();
-                    if (configMap.containsKey(bigName)) {
-                        Map<String, Map<String, Long>> uniqueDetailMap = configMap.get(bigName);
-                        if (uniqueDetailMap.containsKey(detailName)) {
-                            List<String> uniques = uniqueDetailMap.get(detailName).keySet().stream().collect(Collectors.toList());//所有的公表项
-                            if (ListUtil.isNotEmpty(uniques)) {
-                                List<Lis> lisStream = uniques.stream().map(z -> {
-                                    return getLis(bigName, detailName, value, unit, z);
-                                }).collect(Collectors.toList());
-                                lisList.addAll(lisStream);
-                            }
-                        } else {
-                            Lis lis = getLis(bigName, detailName, value, unit, null);
-                            lisList.add(lis);
-                        }
-                    } else {
-                        Lis lis = getLis(bigName, detailName, value, unit, null);
-                        lisList.add(lis);
-                    }
+                    String standName = x.getStandName();
+                    lisList.add(getLis(bigName,detailName,value,unit,standName));
                 });
-            } else {
-                lises.stream().forEach(x -> {
-                    Lis lis = getLis(x.getBigItem().getName(), x.getName(), x.getPd().getValue(), x.getPd().getUnit(), null);
-                    lisList.add(lis);
-                });
-            }
         }
     }
 

+ 0 - 139
src/main/java/com/diagbot/facade/LisConfigFacade.java

@@ -1,139 +0,0 @@
-package com.diagbot.facade;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
-import com.diagbot.dto.WordCrfDTO;
-import com.diagbot.entity.LisConfig;
-import com.diagbot.enums.IsDeleteEnum;
-import com.diagbot.service.impl.LisConfigServiceImpl;
-import com.diagbot.util.CoreUtil;
-import com.diagbot.util.EntityUtil;
-import com.diagbot.util.ListUtil;
-import com.google.common.collect.Lists;
-import org.springframework.stereotype.Component;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-/**
- * @Description:
- * @Author:zhaops
- * @time: 2020/7/29 15:03
- */
-@Component
-public class LisConfigFacade extends LisConfigServiceImpl {
-
-    /**
-     * 获取映射关系-id
-     * Map<hisName,Map<hisDetailName,Map<uniqueName,id>>>
-     *
-     * @param hospitalId
-     * @param hisNames
-     * @param uniqueNames
-     * @return
-     */
-    public Map<String, Map<String, Map<String, Long>>> getConfigMap(Long hospitalId, List<String> hisNames, List<String> uniqueNames) {
-        Map<String, Map<String, Map<String, Long>>> retMap = new HashMap<>();
-        QueryWrapper<LisConfig> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
-                .eq("hospital_id", hospitalId);
-        if (ListUtil.isNotEmpty(hisNames)) {
-            queryWrapper.in("his_name", hisNames);
-        }
-        if (ListUtil.isNotEmpty(uniqueNames)) {
-            queryWrapper.in("unique_name", uniqueNames);
-        }
-        List<LisConfig> records = this.list(queryWrapper);
-        if (ListUtil.isEmpty(records)) {
-            return retMap;
-        }
-
-        records.forEach(lisConfig -> {
-            if (lisConfig.getHisDetailName() == null) {
-                lisConfig.setHisDetailName("");
-            }
-        });
-
-        Map<String, List<LisConfig>> hisNameMap = EntityUtil.makeEntityListMap(records, "hisName");
-        for (Map.Entry<String, List<LisConfig>> entry : hisNameMap.entrySet()) {
-            if (ListUtil.isNotEmpty(entry.getValue())) {
-                Map<String, Map<String, Long>> detailNameMap = new HashMap<>();
-                //his名称映射到标准词,1:n
-                Map<String, List<LisConfig>> hisDetailNameMap
-                        = EntityUtil.makeEntityListMap(entry.getValue(), "hisDetailName");
-                for (Map.Entry<String, List<LisConfig>> detailEntry : hisDetailNameMap.entrySet()) {
-                    if (ListUtil.isNotEmpty(detailEntry.getValue())) {
-                        detailNameMap.put(detailEntry.getKey(),
-                                EntityUtil.makeMapWithKeyValue(detailEntry.getValue(), "uniqueName", "id"));
-                    }
-                }
-                retMap.put(entry.getKey(), detailNameMap);
-            }
-        }
-        return retMap;
-    }
-
-    /**
-     * 已映射
-     *
-     * @param name
-     * @return
-     */
-    public Boolean isMapping(String name) {
-        QueryWrapper<LisConfig> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
-                .eq("unique_name", name);
-        List<LisConfig> records = this.list(queryWrapper);
-        if (ListUtil.isNotEmpty(records)) {
-            return true;
-        } else {
-            return false;
-        }
-    }
-
-    /**
-     * 标准术语名称修改
-     *
-     * @param oldName
-     * @param newName
-     * @return
-     */
-    public Boolean updateUniqueName(String oldName, String newName) {
-        UpdateWrapper<LisConfig> updateWrapper = new UpdateWrapper<>();
-        updateWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
-                .eq("unique_name", oldName)
-                .set("unique_name", newName);
-        this.update(updateWrapper);
-        return true;
-    }
-
-    /**
-     * 获取过滤化验套餐名= 映射套餐名称 + 结构化套餐名称
-     *
-     * @param wordCrfDTO
-     * @return
-     */
-    public List<String> getMappingLisItem(WordCrfDTO wordCrfDTO) {
-        if (ListUtil.isNotEmpty(wordCrfDTO.getLis())) {
-            // 医院化验套餐名
-            List<String> itemList = wordCrfDTO.getLis().stream().map(r -> r.getName()).collect(Collectors.toList());
-            // 获取标准套餐名
-            List<LisConfig> records = this.list(new QueryWrapper<LisConfig>()
-                    .eq("is_deleted", IsDeleteEnum.N.getKey())
-                    .eq("hospital_id", wordCrfDTO.getHospitalId())
-                    .in("his_name", itemList)
-                    .apply("(his_detail_name is null or his_detail_name = '')")
-            );
-            // 获取映射套餐名称
-            List<String> uniqueName = records.stream().map(r -> r.getUniqueName()).collect(Collectors.toList());
-            // 追加医院套餐名称
-            uniqueName.addAll(itemList);
-            // 去重
-            uniqueName = CoreUtil.removeRepeat(uniqueName);
-            return uniqueName;
-        }
-        return Lists.newArrayList();
-    }
-}

+ 163 - 0
src/main/java/com/diagbot/facade/MappingConfigFacade.java

@@ -0,0 +1,163 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.IndexBatchDTO;
+import com.diagbot.entity.MappingConfig;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.service.MappingConfigService;
+import com.diagbot.service.impl.MappingConfigServiceImpl;
+import com.diagbot.util.ListUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.vo.ConceptVO;
+import com.google.common.collect.Lists;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Component;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/6/9 14:19
+ */
+@Component
+public class MappingConfigFacade extends MappingConfigServiceImpl {
+
+    private static Pattern pattern = Pattern.compile("\\s*|\t|\r|\n");
+
+    @Autowired
+    @Qualifier("mappingConfigServiceImpl")
+    private MappingConfigService mappingConfigService;
+
+    @Autowired
+    private KlConceptFacade klConceptFacade;
+
+
+    /**
+     * 根据医院名称分组-返回id
+     *
+     * @param hisNames
+     * @param type
+     * @return
+     */
+    public Map<String, Map<String, Map<Long, List<Long>>>> groupByHisNameWithId(List<String> hisNames, Integer type, Long hospitalId) {
+        Map<String, Map<String, Map<Long, List<Long>>>> retMap = new HashMap<>();
+        QueryWrapper<MappingConfig> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("is_match", 1)
+                .eq("type", type);
+        if (hospitalId != null) {
+            queryWrapper.eq("hospital_id", hospitalId);
+        }
+        if (ListUtil.isNotEmpty(hisNames)) {
+            queryWrapper.in("his_name", hisNames);
+        }
+        List<MappingConfig> list = this.list(queryWrapper);
+
+        if (ListUtil.isEmpty(list)) {
+            return retMap;
+        }
+
+        for (MappingConfig item : list) {
+            if (StringUtil.isBlank(item.getHisDetailName())) {
+                item.setHisDetailName("");
+            }
+        }
+
+        Map<String, List<MappingConfig>> hisMap = list.stream().collect(Collectors.groupingBy(MappingConfig::getHisName));
+        for (Map.Entry<String, List<MappingConfig>> entry : hisMap.entrySet()) {
+            Map<String, Map<Long, List<Long>>> subMap = new HashMap<>();
+            Map<String, List<MappingConfig>> detailMap = entry.getValue().stream()
+                    .collect(Collectors.groupingBy(MappingConfig::getHisDetailName));
+            for (Map.Entry<String, List<MappingConfig>> subEntry : detailMap.entrySet()) {
+                subMap.put(subEntry.getKey(), subEntry.getValue().stream().collect(Collectors.groupingBy(MappingConfig::getConceptId,
+                        Collectors.mapping(MappingConfig::getFormConceptId, Collectors.toList()))));
+            }
+            retMap.put(entry.getKey(), subMap);
+        }
+        return retMap;
+    }
+
+    /**
+     * 根据医院名称分组-返回名称
+     *
+     * @param hisNames
+     * @param type
+     * @param hospitalId
+     * @return
+     */
+    public Map<String, Map<String, Map<String, List<String>>>> groupByHisNameWithName(List<String> hisNames, Integer type, Long hospitalId) {
+        Map<String, Map<String, Map<String, List<String>>>> retMap = new HashMap<>();
+        Map<String, Map<String, Map<Long, List<Long>>>> idMap = groupByHisNameWithId(hisNames, type, hospitalId);
+
+        //conceptIds
+        List<Long> ids = idMap.values()
+                .stream()
+                .flatMap(i -> i.values().stream())
+                .map(i -> i.keySet())
+                .flatMap(Collection::stream)
+                .filter(i -> i != null)
+                .distinct()
+                .collect(Collectors.toList());
+
+        //formConceptId
+        ids.addAll(idMap.values()
+                .stream()
+                .flatMap(i -> i.values().stream())
+                .flatMap(i -> i.values().stream())
+                .flatMap(Collection::stream)
+                .filter(i -> i != null)
+                .distinct()
+                .collect(Collectors.toList()));
+
+        ConceptVO conceptVO = new ConceptVO();
+        conceptVO.setSource(-1);
+        conceptVO.setType(type);
+        conceptVO.setIds(ids);
+        List<IndexBatchDTO> respDTO = klConceptFacade.getConceptNames(conceptVO);
+        List<IndexBatchDTO> indexList = respDTO;
+        if (ListUtil.isNotEmpty(indexList)) {
+            Map<Long, List<IndexBatchDTO>> indexMap
+                    = indexList.stream().collect(Collectors.groupingBy(IndexBatchDTO::getId));
+            for (Map.Entry<String, Map<String, Map<Long, List<Long>>>> entry : idMap.entrySet()) {
+                Map<String, Map<String, List<String>>> subMap = new HashMap<>();
+                for (Map.Entry<String, Map<Long, List<Long>>> subEntry : entry.getValue().entrySet()) {
+                    Map<String, List<String>> thirdMap = new HashMap<>();
+                    List<String> uniqueNames = Lists.newArrayList();
+                    List<String> forms = Lists.newArrayList();
+                    for (Long conceptId : subEntry.getValue().keySet()) {
+                        uniqueNames.addAll(indexMap.get(conceptId).stream().map(IndexBatchDTO::getName).collect(Collectors.toList()));
+                    }
+                    List<Long> formConceptIds = subEntry.getValue().values()
+                            .stream()
+                            .flatMap(Collection::stream)
+                            .distinct()
+                            .collect(Collectors.toList());
+                    for (Long formConceptId : formConceptIds) {
+                        if (formConceptId == null) {
+                            forms.add("");
+                        } else {
+                            forms.addAll(indexMap.get(formConceptId).stream().map(IndexBatchDTO::getName).collect(Collectors.toList()));
+                        }
+                    }
+                    forms = forms.stream().distinct().collect(Collectors.toList());
+                    for (String uniqueName : uniqueNames) {
+                        thirdMap.put(uniqueName, forms);
+                    }
+
+                    subMap.put(subEntry.getKey(), thirdMap);
+                }
+                retMap.put(entry.getKey(), subMap);
+            }
+        }
+        return retMap;
+    }
+
+
+}

+ 0 - 57
src/main/java/com/diagbot/facade/OperationConfigFacade.java

@@ -1,57 +0,0 @@
-package com.diagbot.facade;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
-import com.diagbot.entity.OperationConfig;
-import com.diagbot.enums.IsDeleteEnum;
-import com.diagbot.service.OperationConfigService;
-import com.diagbot.util.ListUtil;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-
-/**
- * @Description:
- * @Author:zhaops
- * @time: 2020/7/29 15:05
- */
-@Component
-public class OperationConfigFacade {
-    @Autowired
-    private OperationConfigService operationConfigService;
-
-    /**
-     * 已映射
-     *
-     * @param name
-     * @return
-     */
-    public Boolean isMapping(String name) {
-        QueryWrapper<OperationConfig> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
-                .eq("unique_name", name);
-        List<OperationConfig> records = operationConfigService.list(queryWrapper);
-        if (ListUtil.isNotEmpty(records)) {
-            return true;
-        } else {
-            return false;
-        }
-    }
-
-    /**
-     * 标准术语名称修改
-     *
-     * @param oldName
-     * @param newName
-     * @return
-     */
-    public Boolean updateUniqueName(String oldName, String newName) {
-        UpdateWrapper<OperationConfig> updateWrapper = new UpdateWrapper<>();
-        updateWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
-                .eq("unique_name", oldName)
-                .set("unique_name", newName);
-        operationConfigService.update(updateWrapper);
-        return true;
-    }
-}

+ 0 - 89
src/main/java/com/diagbot/facade/PacsConfigFacade.java

@@ -1,89 +0,0 @@
-package com.diagbot.facade;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
-import com.diagbot.entity.PacsConfig;
-import com.diagbot.enums.IsDeleteEnum;
-import com.diagbot.service.impl.PacsConfigServiceImpl;
-import com.diagbot.util.EntityUtil;
-import com.diagbot.util.ListUtil;
-import org.springframework.stereotype.Component;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * @Description:
- * @Author:zhaops
- * @time: 2020/7/29 15:03
- */
-@Component
-public class PacsConfigFacade extends PacsConfigServiceImpl {
-
-    /**
-     * 获取映射关系-公表名
-     *
-     * @param hospitalId
-     * @param hisNames
-     * @param uniqueNames
-     * @return
-     */
-    public Map<String, Map<String, Long>> getConfigMap(Long hospitalId, List<String> hisNames, List<String> uniqueNames) {
-        Map<String, Map<String, Long>> retMap = new HashMap<>();
-        QueryWrapper<PacsConfig> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
-                .eq("hospital_id", hospitalId);
-        if (ListUtil.isNotEmpty(hisNames)) {
-            queryWrapper.in("his_name", hisNames);
-        }
-        if (ListUtil.isNotEmpty(uniqueNames)) {
-            queryWrapper.in("unique_name", uniqueNames);
-        }
-        List<PacsConfig> records = this.list(queryWrapper);
-        if (ListUtil.isEmpty(records)) {
-            return retMap;
-        }
-        Map<String, List<PacsConfig>> configMap = EntityUtil.makeEntityListMap(records, "hisName");
-        for (Map.Entry<String, List<PacsConfig>> entry : configMap.entrySet()) {
-            if (ListUtil.isNotEmpty(entry.getValue())) {
-                retMap.put(entry.getKey(), EntityUtil.makeMapWithKeyValue(entry.getValue(), "uniqueName", "id"));
-            }
-        }
-        return retMap;
-    }
-
-    /**
-     * 已映射
-     *
-     * @param name
-     * @return
-     */
-    public Boolean isMapping(String name) {
-        QueryWrapper<PacsConfig> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
-                .eq("unique_name", name);
-        List<PacsConfig> records = this.list(queryWrapper);
-        if (ListUtil.isNotEmpty(records)) {
-            return true;
-        } else {
-            return false;
-        }
-    }
-
-    /**
-     * 标准术语名称修改
-     *
-     * @param oldName
-     * @param newName
-     * @return
-     */
-    public Boolean updateUniqueName(String oldName, String newName) {
-        UpdateWrapper<PacsConfig> updateWrapper = new UpdateWrapper<>();
-        updateWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
-                .eq("unique_name", oldName)
-                .set("unique_name", newName);
-        this.update(updateWrapper);
-        return true;
-    }
-}

+ 0 - 15
src/main/java/com/diagbot/mapper/LisConfigMapper.java

@@ -1,15 +0,0 @@
-package com.diagbot.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.diagbot.entity.LisConfig;
-
-/**
- * <p>
- * 化验公表映射 Mapper 接口
- * </p>
- *
- * @author zhaops
- * @since 2020-07-28
- */
-public interface LisConfigMapper extends BaseMapper<LisConfig> {
-}

+ 45 - 0
src/main/java/com/diagbot/mapper/MappingConfigMapper.java

@@ -0,0 +1,45 @@
+package com.diagbot.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.entity.MappingConfig;
+import com.diagbot.entity.wrapper.MappingConfigWrapper;
+import com.diagbot.vo.MappingConfigPageVO;
+import com.diagbot.vo.RetrievalVO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 医学术语映射表 Mapper 接口
+ * </p>
+ *
+ * @author zhaops
+ * @since 2021-06-09
+ */
+public interface MappingConfigMapper extends BaseMapper<MappingConfig> {
+    /**
+     * 分页查询
+     *
+     * @param mappingConfigPageVO
+     * @return
+     */
+    IPage<MappingConfigWrapper> getPage(@Param("mappingConfigPageVO") MappingConfigPageVO mappingConfigPageVO);
+
+    /**
+     * 医院术语检索
+     *
+     * @param retrievalVO
+     * @return
+     */
+    List<MappingConfig> hisNameIndex(RetrievalVO retrievalVO);
+
+    /**
+     * 医院术语-细项检索
+     *
+     * @param retrievalVO
+     * @return
+     */
+    List<MappingConfig> hisDetailNameIndex(RetrievalVO retrievalVO);
+}

+ 0 - 15
src/main/java/com/diagbot/mapper/OperationConfigMapper.java

@@ -1,15 +0,0 @@
-package com.diagbot.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.diagbot.entity.OperationConfig;
-
-/**
- * <p>
- * 手术映射表 Mapper 接口
- * </p>
- *
- * @author zhaops
- * @since 2020-07-28
- */
-public interface OperationConfigMapper extends BaseMapper<OperationConfig> {
-}

+ 0 - 15
src/main/java/com/diagbot/mapper/PacsConfigMapper.java

@@ -1,15 +0,0 @@
-package com.diagbot.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.diagbot.entity.PacsConfig;
-
-/**
- * <p>
- * 检查公表映射 Mapper 接口
- * </p>
- *
- * @author zhaops
- * @since 2020-07-28
- */
-public interface PacsConfigMapper extends BaseMapper<PacsConfig> {
-}

+ 1 - 1
src/main/java/com/diagbot/model/ai/process/EntityProcessPacs.java

@@ -33,7 +33,7 @@ public class EntityProcessPacs extends EntityProcess {
             collect = pacsAll.stream().map(x -> {
                 Item item = new Item();
                 item.setName(x.getText());
-                item.setUniqueName(x.getText());
+                item.setUniqueName("");//设置为空,后期走映射
                 return item;
             }).collect(Collectors.toList());
         }

+ 2 - 4
src/main/java/com/diagbot/process/PushProcess.java

@@ -30,7 +30,6 @@ import com.diagbot.facade.CommonFacade;
 import com.diagbot.facade.ConceptInfoFacade;
 import com.diagbot.facade.KlDiagnoseFacade;
 import com.diagbot.facade.KlRelationFacade;
-import com.diagbot.facade.LisConfigFacade;
 import com.diagbot.facade.NeoFacade;
 import com.diagbot.facade.TranLisConfigIcssFacade;
 import com.diagbot.model.entity.Clinical;
@@ -107,8 +106,7 @@ public class PushProcess {
     GroupRule groupRule;
     @Autowired
     ConceptInfoFacade conceptInfoFacade;
-    @Autowired
-    LisConfigFacade lisConfigFacade;
+
 
     public PushDTO processIcss(PushVO pushVo) {
 
@@ -650,7 +648,7 @@ public class PushProcess {
         dealFilter(filterMap, StandConvertEnum.disease.toString(),
                 CoreUtil.getByPropertyName(wordCrfDTO.getDiag(), "name", "uniqueName"));
         // 化验——获取过滤化验套餐名
-        dealFilter(filterMap, StandConvertEnum.lis.toString(), lisConfigFacade.getMappingLisItem(wordCrfDTO));
+//        dealFilter(filterMap, StandConvertEnum.lis.toString(), lisConfigFacade.getMappingLisItem(wordCrfDTO));
         return filterMap;
     }
 

+ 0 - 15
src/main/java/com/diagbot/service/LisConfigService.java

@@ -1,15 +0,0 @@
-package com.diagbot.service;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.diagbot.entity.LisConfig;
-
-/**
- * <p>
- * 化验公表映射 服务类
- * </p>
- *
- * @author zhaops
- * @since 2020-07-28
- */
-public interface LisConfigService extends IService<LisConfig> {
-}

+ 45 - 0
src/main/java/com/diagbot/service/MappingConfigService.java

@@ -0,0 +1,45 @@
+package com.diagbot.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.entity.MappingConfig;
+import com.diagbot.entity.wrapper.MappingConfigWrapper;
+import com.diagbot.vo.MappingConfigPageVO;
+import com.diagbot.vo.RetrievalVO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 医学术语映射表 服务类
+ * </p>
+ *
+ * @author zhaops
+ * @since 2021-06-09
+ */
+public interface MappingConfigService extends IService<MappingConfig> {
+    /**
+     * 分页查询
+     *
+     * @param mappingConfigPageVO
+     * @return
+     */
+    IPage<MappingConfigWrapper> getPage(@Param("mappingConfigPageVO") MappingConfigPageVO mappingConfigPageVO);
+
+    /**
+     * 医院术语检索
+     *
+     * @param retrievalVO
+     * @return
+     */
+    List<MappingConfig> hisNameIndex(RetrievalVO retrievalVO);
+
+    /**
+     * 医院术语-细项检索
+     *
+     * @param retrievalVO
+     * @return
+     */
+    List<MappingConfig> hisDetailNameIndex(RetrievalVO retrievalVO);
+}

+ 0 - 15
src/main/java/com/diagbot/service/OperationConfigService.java

@@ -1,15 +0,0 @@
-package com.diagbot.service;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.diagbot.entity.OperationConfig;
-
-/**
- * <p>
- * 手术映射表 服务类
- * </p>
- *
- * @author zhaops
- * @since 2020-07-28
- */
-public interface OperationConfigService extends IService<OperationConfig> {
-}

+ 0 - 15
src/main/java/com/diagbot/service/PacsConfigService.java

@@ -1,15 +0,0 @@
-package com.diagbot.service;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.diagbot.entity.PacsConfig;
-
-/**
- * <p>
- * 检查公表映射 服务类
- * </p>
- *
- * @author zhaops
- * @since 2020-07-28
- */
-public interface PacsConfigService extends IService<PacsConfig> {
-}

+ 2 - 0
src/main/java/com/diagbot/service/impl/KlConceptServiceImpl.java

@@ -1,5 +1,6 @@
 package com.diagbot.service.impl;
 
+import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.diagbot.dto.IndexDTO;
 import com.diagbot.dto.KllisDetailDTO;
@@ -23,6 +24,7 @@ import java.util.List;
  * @since 2021-01-21
  */
 @Service
+@DS("med")
 public class KlConceptServiceImpl extends ServiceImpl<KlConceptMapper, KlConcept> implements KlConceptService {
 
     @Override

+ 0 - 21
src/main/java/com/diagbot/service/impl/LisConfigServiceImpl.java

@@ -1,21 +0,0 @@
-package com.diagbot.service.impl;
-
-import com.baomidou.dynamic.datasource.annotation.DS;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.diagbot.entity.LisConfig;
-import com.diagbot.mapper.LisConfigMapper;
-import com.diagbot.service.LisConfigService;
-import org.springframework.stereotype.Service;
-
-/**
- * <p>
- * 化验公表映射 服务实现类
- * </p>
- *
- * @author zhaops
- * @since 2020-07-28
- */
-@Service
-@DS("cdss")
-public class LisConfigServiceImpl extends ServiceImpl<LisConfigMapper, LisConfig> implements LisConfigService {
-}

+ 60 - 0
src/main/java/com/diagbot/service/impl/MappingConfigServiceImpl.java

@@ -0,0 +1,60 @@
+package com.diagbot.service.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.entity.MappingConfig;
+import com.diagbot.entity.wrapper.MappingConfigWrapper;
+import com.diagbot.mapper.MappingConfigMapper;
+import com.diagbot.service.MappingConfigService;
+import com.diagbot.vo.MappingConfigPageVO;
+import com.diagbot.vo.RetrievalVO;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 医学术语映射表 服务实现类
+ * </p>
+ *
+ * @author zhaops
+ * @since 2021-06-09
+ */
+@Service
+@DS("cdss")
+public class MappingConfigServiceImpl extends ServiceImpl<MappingConfigMapper, MappingConfig> implements MappingConfigService {
+    /**
+     * 分页查询
+     *
+     * @param mappingConfigPageVO
+     * @return
+     */
+    @Override
+    public IPage<MappingConfigWrapper> getPage(@Param("mappingConfigPageVO") MappingConfigPageVO mappingConfigPageVO) {
+        return baseMapper.getPage(mappingConfigPageVO);
+    }
+
+    /**
+     * 医院术语检索
+     *
+     * @param retrievalVO
+     * @return
+     */
+    @Override
+    public List<MappingConfig> hisNameIndex(RetrievalVO retrievalVO) {
+        return baseMapper.hisNameIndex(retrievalVO);
+    }
+
+    /**
+     * 医院术语-细项检索
+     *
+     * @param retrievalVO
+     * @return
+     */
+    @Override
+    public List<MappingConfig> hisDetailNameIndex(RetrievalVO retrievalVO) {
+        return baseMapper.hisDetailNameIndex(retrievalVO);
+    }
+}

+ 0 - 21
src/main/java/com/diagbot/service/impl/OperationConfigServiceImpl.java

@@ -1,21 +0,0 @@
-package com.diagbot.service.impl;
-
-import com.baomidou.dynamic.datasource.annotation.DS;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.diagbot.entity.OperationConfig;
-import com.diagbot.mapper.OperationConfigMapper;
-import com.diagbot.service.OperationConfigService;
-import org.springframework.stereotype.Service;
-
-/**
- * <p>
- * 手术映射表 服务实现类
- * </p>
- *
- * @author zhaops
- * @since 2020-07-28
- */
-@Service
-@DS("cdss")
-public class OperationConfigServiceImpl extends ServiceImpl<OperationConfigMapper, OperationConfig> implements OperationConfigService {
-}

+ 0 - 21
src/main/java/com/diagbot/service/impl/PacsConfigServiceImpl.java

@@ -1,21 +0,0 @@
-package com.diagbot.service.impl;
-
-import com.baomidou.dynamic.datasource.annotation.DS;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.diagbot.entity.PacsConfig;
-import com.diagbot.mapper.PacsConfigMapper;
-import com.diagbot.service.PacsConfigService;
-import org.springframework.stereotype.Service;
-
-/**
- * <p>
- * 检查公表映射 服务实现类
- * </p>
- *
- * @author zhaops
- * @since 2020-07-28
- */
-@Service
-@DS("cdss")
-public class PacsConfigServiceImpl extends ServiceImpl<PacsConfigMapper, PacsConfig> implements PacsConfigService {
-}

+ 74 - 0
src/main/java/com/diagbot/vo/MappingConfigPageVO.java

@@ -0,0 +1,74 @@
+package com.diagbot.vo;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/6/10 15:35
+ */
+@Getter
+@Setter
+public class MappingConfigPageVO extends Page {
+    /**
+     * 医院id
+     */
+    @ApiModelProperty(hidden = true)
+    private Long hospitalId;
+    /**
+     * 医学术语类型( 1-检验套餐、2-检验细项、3-辅检、4-诊断、5-药品、6-手术和操作、7-科室、8-输血、10-量表、11-护理、12-中医疾病、13-中医证候、14-麻醉)
+     */
+    @NotNull(message = "请输入术语类型:1-化验、3-辅检、4-诊断、5-药品、6-手术和操作、7-科室、8-输血、10-量表、11-护理、12-中医诊断、13-中医证候、14-麻醉")
+    private Integer type;
+
+    /**
+     * 医院术语名称
+     */
+    private String hisName;
+
+    /**
+     * 医院术语编码
+     */
+    private String hisCode;
+
+    /**
+     * 医院术语细项名称(检验细项)
+     */
+    private String hisDetailName;
+
+    /**
+     * 医学标准术语名称
+     */
+    private String uniqueName;
+    @ApiModelProperty(hidden = true)
+    private List<Long> conceptIds;
+
+    /**
+     * 药品剂型
+     */
+    private String form;
+    @ApiModelProperty(hidden = true)
+    private List<Long> formConceptIds;
+
+    /**
+     * 是否匹配(0-未匹配、1-已匹配、2-多条匹配)
+     */
+    private Integer isMatch;
+
+    /**
+     * 数据来源(1-标准词、2-同义词、3-编码、4-历史数据、5-相似词、99-数据迁移)
+     */
+    private Integer source;
+
+    /**
+     * 一对多关系查询
+     */
+    @ApiModelProperty(hidden = true)
+    private Integer isMultiple;
+}

+ 0 - 20
src/main/resources/mapper/LisConfigMapper.xml

@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.diagbot.mapper.LisConfigMapper">
-
-    <!-- 通用查询映射结果 -->
-    <resultMap id="BaseResultMap" type="com.diagbot.entity.LisConfig">
-        <id column="id" property="id" />
-        <result column="is_deleted" property="isDeleted" />
-        <result column="gmt_create" property="gmtCreate" />
-        <result column="gmt_modified" property="gmtModified" />
-        <result column="creator" property="creator" />
-        <result column="modifier" property="modifier" />
-        <result column="hospital_id" property="hospitalId" />
-        <result column="his_name" property="hisName" />
-        <result column="his_detail_name" property="hisDetailName" />
-        <result column="unique_name" property="uniqueName" />
-        <result column="unique_code" property="uniqueCode" />
-    </resultMap>
-
-</mapper>

+ 231 - 0
src/main/resources/mapper/MappingConfigMapper.xml

@@ -0,0 +1,231 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.diagbot.mapper.MappingConfigMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.MappingConfig">
+        <id column="id" property="id" />
+        <result column="is_deleted" property="isDeleted" />
+        <result column="gmt_create" property="gmtCreate" />
+        <result column="gmt_modified" property="gmtModified" />
+        <result column="creator" property="creator" />
+        <result column="modifier" property="modifier" />
+        <result column="hospital_id" property="hospitalId" />
+        <result column="type" property="type" />
+        <result column="his_name" property="hisName" />
+        <result column="his_code" property="hisCode" />
+        <result column="his_detail_name" property="hisDetailName" />
+        <result column="concept_id" property="conceptId" />
+        <result column="form_concept_id" property="formConceptId" />
+        <result column="is_match" property="isMatch" />
+        <result column="source" property="source" />
+        <result column="remark" property="remark" />
+    </resultMap>
+
+    <!-- 分页查询 -->
+    <select id="getPage" resultType="com.diagbot.entity.wrapper.MappingConfigWrapper">
+        select t1.*
+        from
+        (select a.*
+        from tran_mapping_config a
+        where a.is_deleted='N'
+        <if test="mappingConfigPageVO.hospitalId!=null">
+            and a.hospital_id=#{mappingConfigPageVO.hospitalId}
+        </if>
+        <if test="mappingConfigPageVO.type!=null">
+            and a.type=#{mappingConfigPageVO.type}
+        </if>
+        <if test="mappingConfigPageVO.hisName!=null and mappingConfigPageVO.hisName!=''">
+            and a.his_name like concat("%",#{mappingConfigPageVO.hisName},"%")
+        </if>
+        <if test="mappingConfigPageVO.hisCode!=null and mappingConfigPageVO.hisCode!=''">
+            and a.his_code like concat("%",#{mappingConfigPageVO.hisCode},"%")
+        </if>
+        <if test="mappingConfigPageVO.hisDetailName!=null and mappingConfigPageVO.hisDetailName!=''">
+            and a.his_detail_name like concat("%",#{mappingConfigPageVO.hisDetailName},"%")
+        </if>
+        <if test="mappingConfigPageVO.conceptIds!=null and mappingConfigPageVO.conceptIds.size()>0">
+            and a.concept_id in
+            <foreach item="conceptId" collection="mappingConfigPageVO.conceptIds" open="(" separator="," close=")">
+                #{conceptId}
+            </foreach>
+        </if>
+        <if test="mappingConfigPageVO.formConceptIds!=null and mappingConfigPageVO.formConceptIds.size()>0">
+            and a.form_concept_id in
+            <foreach item="formConceptId" collection="mappingConfigPageVO.formConceptIds" open="(" separator=","
+                     close=")">
+                #{formConceptId}
+            </foreach>
+        </if>
+        <if test="mappingConfigPageVO.isMatch!=null">
+            and a.is_match=#{mappingConfigPageVO.isMatch}
+        </if>
+        )t1
+        <if test="mappingConfigPageVO.isMultiple!=null and mappingConfigPageVO.isMultiple=1">
+            ,(select a.his_name,a.his_detail_name,count(*)
+            from tran_mapping_config a
+            where a.is_deleted='N'
+            <if test="mappingConfigPageVO.hospitalId!=null">
+                and a.hospital_id=#{mappingConfigPageVO.hospitalId}
+            </if>
+            <if test="mappingConfigPageVO.type!=null">
+                and a.type=#{mappingConfigPageVO.type}
+            </if>
+            <if test="mappingConfigPageVO.hisName!=null and mappingConfigPageVO.hisName!=''">
+                and a.his_name like concat("%",#{mappingConfigPageVO.hisName},"%")
+            </if>
+            <if test="mappingConfigPageVO.hisCode!=null and mappingConfigPageVO.hisCode!=''">
+                and a.his_code like concat("%",#{mappingConfigPageVO.hisCode},"%")
+            </if>
+            <if test="mappingConfigPageVO.hisDetailName!=null and mappingConfigPageVO.hisDetailName!=''">
+                and a.his_detail_name like concat("%",#{mappingConfigPageVO.hisDetailName},"%")
+            </if>
+            <if test="mappingConfigPageVO.conceptIds!=null and mappingConfigPageVO.conceptIds.size()>0">
+                and a.concept_id in
+                <foreach item="conceptId" collection="mappingConfigPageVO.conceptIds" open="(" separator="," close=")">
+                    #{conceptId}
+                </foreach>
+            </if>
+            <if test="mappingConfigPageVO.formConceptIds!=null and mappingConfigPageVO.formConceptIds.size()>0">
+                and a.form_concept_id in
+                <foreach item="formConceptId" collection="mappingConfigPageVO.formConceptIds" open="(" separator=","
+                         close=")">
+                    #{formConceptId}
+                </foreach>
+            </if>
+            group by a.his_name
+            <if test="mappingConfigPageVO.type!=null and mappingConfigPageVO.type=1">
+                ,a.his_detail_name
+            </if>
+            having count(*)>1
+            ) t2
+            where t1.his_name=t2.his_name
+            <if test="mappingConfigPageVO.type!=null and mappingConfigPageVO.type=1">
+                and t1.his_detail_name=t2.his_detail_name
+            </if>
+        </if>
+        order by
+        <if test="mappingConfigPageVO.isMultiple!=null and mappingConfigPageVO.isMultiple=1">
+            t1.his_name asc,
+            <if test="mappingConfigPageVO.type!=null and mappingConfigPageVO.type=1">
+                t1.his_detail_name asc,
+            </if>
+        </if>
+        t1.is_match asc,t1.gmt_modified desc
+    </select>
+
+    <select id="hisNameIndex" resultType="com.diagbot.entity.MappingConfig"
+            parameterType="com.diagbot.vo.RetrievalVO">
+        SELECT DISTINCT u.his_name
+        FROM(
+        SELECT
+        DISTINCT his_name
+        FROM
+        `tran_mapping_config`
+        WHERE
+        is_deleted = "N"
+        AND (his_detail_name IS NULL OR his_detail_name = '')
+        <if test="hospitalId!=null">
+            and hospital_id=#{hospitalId}
+        </if>
+        <if test="type!=null">
+            and type=#{type}
+        </if>
+        <if test="inputStr!=null and inputStr!=''">
+            and his_name = #{inputStr}
+        </if>
+        UNION
+        SELECT
+        DISTINCT his_name
+        FROM
+        `tran_mapping_config`
+        WHERE
+        is_deleted = "N"
+        AND (his_detail_name IS NULL OR his_detail_name = '')
+        <if test="hospitalId!=null">
+            and hospital_id=#{hospitalId}
+        </if>
+        <if test="type!=null">
+            and type=#{type}
+        </if>
+        <if test="inputStr!=null and inputStr!=''">
+            and his_name like concat(#{inputStr},"%")
+        </if>
+        UNION
+        SELECT
+        DISTINCT his_name
+        FROM
+        `tran_mapping_config`
+        WHERE
+        is_deleted = "N"
+        AND (his_detail_name IS NULL OR his_detail_name = '')
+        <if test="hospitalId!=null">
+            and hospital_id=#{hospitalId}
+        </if>
+        <if test="type!=null">
+            and type=#{type}
+        </if>
+        <if test="inputStr!=null and inputStr!=''">
+            and his_name like concat("%",#{inputStr},"%")
+        </if>
+        ) u LIMIT 100
+    </select>
+
+    <select id="hisDetailNameIndex" resultType="com.diagbot.entity.MappingConfig"
+            parameterType="com.diagbot.vo.RetrievalVO">
+        SELECT DISTINCT u.his_name,u.his_detail_name,max(u.concept_id) as concept_id
+        FROM(
+        SELECT
+        DISTINCT his_name,his_detail_name,concept_id
+        FROM
+        `tran_mapping_config`
+        WHERE
+        is_deleted = "N"
+        <if test="hospitalId!=null">
+            and hospital_id=#{hospitalId}
+        </if>
+        <if test="type!=null">
+            and type=#{type}
+        </if>
+        <if test="inputStr!=null and inputStr!=''">
+            and his_detail_name = #{inputStr}
+        </if>
+        UNION
+        SELECT
+        DISTINCT his_name,his_detail_name,concept_id
+        FROM
+        `tran_mapping_config`
+        WHERE
+        is_deleted = "N"
+        <if test="hospitalId!=null">
+            and hospital_id=#{hospitalId}
+        </if>
+        <if test="type!=null">
+            and type=#{type}
+        </if>
+        <if test="inputStr!=null and inputStr!=''">
+            and his_detail_name like concat(#{inputStr},"%")
+        </if>
+        UNION
+        SELECT
+        DISTINCT his_name,his_detail_name,concept_id
+        FROM
+        `tran_mapping_config`
+        WHERE
+        is_deleted = "N"
+        <if test="hospitalId!=null">
+            and hospital_id=#{hospitalId}
+        </if>
+        <if test="type!=null">
+            and type=#{type}
+        </if>
+        <if test="inputStr!=null and inputStr!=''">
+            and his_detail_name like concat("%",#{inputStr},"%")
+        </if>
+        ) u
+        GROUP BY
+        u.his_name,
+        u.his_detail_name
+        LIMIT 100
+    </select>
+</mapper>

+ 0 - 19
src/main/resources/mapper/OperationConfigMapper.xml

@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.diagbot.mapper.OperationConfigMapper">
-
-    <!-- 通用查询映射结果 -->
-    <resultMap id="BaseResultMap" type="com.diagbot.entity.OperationConfig">
-        <id column="id" property="id" />
-        <result column="is_deleted" property="isDeleted" />
-        <result column="gmt_create" property="gmtCreate" />
-        <result column="gmt_modified" property="gmtModified" />
-        <result column="creator" property="creator" />
-        <result column="modifier" property="modifier" />
-        <result column="hospital_id" property="hospitalId" />
-        <result column="his_name" property="hisName" />
-        <result column="unique_name" property="uniqueName" />
-        <result column="unique_code" property="uniqueCode" />
-    </resultMap>
-
-</mapper>

+ 0 - 19
src/main/resources/mapper/PacsConfigMapper.xml

@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.diagbot.mapper.PacsConfigMapper">
-
-    <!-- 通用查询映射结果 -->
-    <resultMap id="BaseResultMap" type="com.diagbot.entity.PacsConfig">
-        <id column="id" property="id" />
-        <result column="is_deleted" property="isDeleted" />
-        <result column="gmt_create" property="gmtCreate" />
-        <result column="gmt_modified" property="gmtModified" />
-        <result column="creator" property="creator" />
-        <result column="modifier" property="modifier" />
-        <result column="hospital_id" property="hospitalId" />
-        <result column="his_name" property="hisName" />
-        <result column="unique_name" property="uniqueName" />
-        <result column="unique_code" property="uniqueCode" />
-    </resultMap>
-
-</mapper>