Browse Source

1、医生药品限制使用提醒
2、传染病级别和上报时限修改

yuchengwei 6 months ago
parent
commit
a8c767e3b0

+ 4 - 0
src/main/java/com/diagbot/dto/WordCrfDTO.java

@@ -4,6 +4,7 @@ import com.diagbot.biz.push.entity.Item;
 import com.diagbot.biz.push.entity.Lis;
 import com.diagbot.biz.push.entity.Pacs;
 import com.diagbot.biz.push.entity.Scale;
+import com.diagbot.model.entity.Doctor;
 import com.diagbot.model.label.ChiefLabel;
 import com.diagbot.model.label.DiagLabel;
 import com.diagbot.model.label.FamilyLabel;
@@ -120,4 +121,7 @@ public class WordCrfDTO {
     private List<Item> diagSource = new ArrayList<>();
     // 【药品数据来源】
     private List<Item> drugSource = new ArrayList<>();
+
+    // 医生
+    private Doctor doctor;
 }

+ 39 - 0
src/main/java/com/diagbot/entity/KlDisease.java

@@ -64,6 +64,21 @@ public class KlDisease implements Serializable {
      */
     private String remark;
 
+    /**
+     * 传染病分类
+     */
+    private String infectClassification;
+
+    /**
+     * 传染病上报时限
+     */
+    private String  infectDeadline;
+
+    /**
+     * 是否传染(0:否,1:是)
+     */
+    private Integer isInfect;
+
     public Long getId() {
         return id;
     }
@@ -136,6 +151,30 @@ public class KlDisease implements Serializable {
         this.remark = remark;
     }
 
+    public String getInfectClassification() {
+        return infectClassification;
+    }
+
+    public void setInfectClassification(String infectClassification) {
+        this.infectClassification = infectClassification;
+    }
+
+    public String getInfectDeadline() {
+        return infectDeadline;
+    }
+
+    public void setInfectDeadline(String infectDeadline) {
+        this.infectDeadline = infectDeadline;
+    }
+
+    public Integer getIsInfect() {
+        return isInfect;
+    }
+
+    public void setIsInfect(Integer isInfect) {
+        this.isInfect = isInfect;
+    }
+
     @Override
     public String toString() {
         return "KlDisease{" +

+ 5 - 0
src/main/java/com/diagbot/entity/KlDrug.java

@@ -67,6 +67,11 @@ public class KlDrug implements Serializable {
      */
     private String drugC;
 
+    /**
+     * 药品级别
+     */
+    private Integer drugGrade;
+
     /**
      * 备注
      */

+ 5 - 0
src/main/java/com/diagbot/facade/KlConceptFacade.java

@@ -545,4 +545,9 @@ public class KlConceptFacade extends KlConceptServiceImpl {
         List<GetAllForRelationDTO> getAllForRelationDTOS = this.searchCollectionConcept(searchCollectionConceptVO);
         return getAllForRelationDTOS;
     }
+
+    public List<GetAllForRelationDTO> searchCollectionConceptFacNew(SearchCollectionConceptVO searchCollectionConceptVO) {
+        searchCollectionConceptVO.setNames(searchCollectionConceptVO.getNames().stream().filter(StringUtil::isNotBlank).collect(Collectors.toList()));
+        return this.searchCollectionConceptNew(searchCollectionConceptVO);
+    }
 }

+ 1 - 3
src/main/java/com/diagbot/facade/KlDrugFacade.java

@@ -2,9 +2,7 @@ package com.diagbot.facade;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.entity.KlDrug;
-import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.service.impl.KlDrugServiceImpl;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import java.util.List;
@@ -18,7 +16,7 @@ import java.util.List;
 @Component
 public class KlDrugFacade extends KlDrugServiceImpl {
     public List<KlDrug> getKlDrugsByConceptIds(List<Object> collect) {
-        return this.list(new QueryWrapper<KlDrug>().eq("is_deleted", IsDeleteEnum.N.getKey())
+        return this.list(new QueryWrapper<KlDrug>()
                 .in("concept_id", collect));
     }
 }

+ 6 - 0
src/main/java/com/diagbot/facade/OtherTipFacade.java

@@ -43,6 +43,12 @@ public class OtherTipFacade {
         // 特殊规则——超过基层医院诊治范围
         otherTipProcess.processGrassroots(wordCrfDTO, res);
 
+        // 特殊规则——已开药物是否与医生级别相符
+        otherTipProcess.processDrugAndDoctorMatch(wordCrfDTO, res);
+
+        // 特殊规则——传染病发病周期提示
+        otherTipProcess.processInfectiousDisease(wordCrfDTO, res);
+
         // 结果去重处理
         commonFacade.dealMsg(res.getOtherList());
     }

+ 2 - 0
src/main/java/com/diagbot/mapper/KlConceptMapper.java

@@ -35,6 +35,8 @@ public interface KlConceptMapper extends BaseMapper<KlConcept> {
 
     List<GetAllForRelationDTO> searchCollectionConcept(SearchCollectionConceptVO searchCollectionConceptVO);
 
+    List<GetAllForRelationDTO> searchCollectionConceptNew(SearchCollectionConceptVO searchCollectionConceptVO);
+
     IPage<DiseaseIndexDTO> findDiseaeByCode(@Param("diseaseIndexPageVO") DiseaseIndexPageVO diseaseIndexPageVO);
 
     IPage<DiseaseIndexDTO> diseaseIndex(@Param("diseaseIndexPageVO") DiseaseIndexPageVO diseaseIndexPageVO);

+ 5 - 1
src/main/java/com/diagbot/mapper/KlDiseaseMapper.java

@@ -1,7 +1,10 @@
 package com.diagbot.mapper;
 
-import com.diagbot.entity.KlDisease;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.entity.KlDisease;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +16,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface KlDiseaseMapper extends BaseMapper<KlDisease> {
 
+    List<KlDisease> getKlDiagsByConceptIdsNew(@Param("conceptIds") List<Long> collect);
 }

+ 5 - 2
src/main/java/com/diagbot/mapper/KlDrugMapper.java

@@ -1,7 +1,10 @@
 package com.diagbot.mapper;
 
-import com.diagbot.entity.KlDrug;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.entity.KlDrug;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -12,5 +15,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  **/
 
 public interface KlDrugMapper extends BaseMapper<KlDrug> {
-
+    List<KlDrug> getKlDrugsByConceptIdsNew(@Param("conceptIds") List<Long> collect);
 }

+ 37 - 0
src/main/java/com/diagbot/model/entity/Doctor.java

@@ -0,0 +1,37 @@
+package com.diagbot.model.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 医生信息
+ */
+@Getter
+@Setter
+public class Doctor {
+
+    /**
+     * 医生ID
+     */
+    private Long id;
+
+    /**
+     * 医生科室ID
+     */
+    private Long deptId;
+
+    /**
+     * 医生姓名
+     */
+    private String name;
+
+    /**
+     * 医生职称(0-无,1-医师,2-主治医师,3-副主任医师,4-主任医师)
+     */
+    private String professionalTitle;
+
+    /**
+     * 医生职业资格 0/1
+     */
+    private Integer professionalPhysicianQualification;
+}

+ 149 - 11
src/main/java/com/diagbot/process/OtherTipProcess.java

@@ -4,16 +4,13 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.biz.push.entity.Item;
 import com.diagbot.biz.push.entity.Lis;
 import com.diagbot.biz.push.entity.Scale;
-import com.diagbot.dto.BillMsg;
-import com.diagbot.dto.IndicationDTO;
-import com.diagbot.dto.RuleBaseDTO;
-import com.diagbot.dto.RuleConditionDTO;
-import com.diagbot.dto.RuleExtDTO;
-import com.diagbot.dto.WordCrfDTO;
+import com.diagbot.dto.*;
 import com.diagbot.entity.KlDiagHospital;
+import com.diagbot.entity.KlDisease;
+import com.diagbot.entity.KlDrug;
 import com.diagbot.enums.*;
-import com.diagbot.facade.CommonFacade;
-import com.diagbot.facade.KlDiagHospitalFacade;
+import com.diagbot.facade.*;
+import com.diagbot.model.entity.Doctor;
 import com.diagbot.model.entity.PacsNum;
 import com.diagbot.model.label.PacsLabel;
 import com.diagbot.rule.AgeRule;
@@ -28,14 +25,15 @@ import com.diagbot.util.MsgUtil;
 import com.diagbot.util.RedisUtil;
 import com.diagbot.util.ReflectUtil;
 import com.diagbot.util.StringUtil;
+import com.diagbot.vo.Drug;
 import com.diagbot.vo.RuleVO;
+import com.diagbot.vo.SearchCollectionConceptVO;
 import com.google.common.collect.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @Description: 其他提示总入口
@@ -63,6 +61,15 @@ public class OtherTipProcess {
     @Autowired
     private KlDiagHospitalFacade klDiagHospitalFacade;
 
+    @Autowired
+    private KlConceptFacade klConceptFacade;
+
+    @Autowired
+    private KlDrugFacade klDrugFacade;
+
+    @Autowired
+    private KlDiseaseFacade klDiseaseFacade;
+
     /**
      * 处理业务——化验
      *
@@ -309,6 +316,137 @@ public class OtherTipProcess {
         }
     }
 
+    /**
+     * 处理业务——已开药物是否与医生级别相符
+     *
+     * @param wordCrfDTO
+     * @param res
+     */
+    public void processDrugAndDoctorMatch(WordCrfDTO wordCrfDTO, IndicationDTO res) {
+        List<BillMsg> otherList = res.getOtherList();
+        // 诊断
+        List<Drug> drugOrderList = wordCrfDTO.getDrugOrder();
+        Doctor doctor = wordCrfDTO.getDoctor();
+        if (ListUtil.isEmpty(drugOrderList) || doctor == null) {
+            return;
+        }
+
+        Map<String, String> drugNameMap = drugOrderList.stream().collect(Collectors.toMap(Drug::getUniqueName, Drug::getName));
+
+        List<String> uniqueNames = drugOrderList.stream().map(Drug::getUniqueName).collect(Collectors.toList());
+
+        SearchCollectionConceptVO searchCollectionConceptVO = new SearchCollectionConceptVO();
+        searchCollectionConceptVO.setNames(uniqueNames);
+        List<GetAllForRelationDTO> getAllForRelationDTOS = klConceptFacade.searchCollectionConceptFacNew(searchCollectionConceptVO);
+
+        if (ListUtil.isEmpty(getAllForRelationDTOS)) {
+            return;
+        }
+
+        Map<Long,String> drugConceptIdNameMap = getAllForRelationDTOS.stream()
+                .collect(Collectors.toMap(GetAllForRelationDTO::getConceptId ,GetAllForRelationDTO::getConceptName));
+
+
+
+        List<Long> conceptIds = getAllForRelationDTOS.stream().map(GetAllForRelationDTO::getConceptId).collect(Collectors.toList());
+
+        List<KlDrug> klDrugs = klDrugFacade.getKlDrugsByConceptIdsNew(conceptIds);
+
+        if (ListUtil.isEmpty(klDrugs)) {
+            return;
+        }
+        Map<Integer, List<KlDrug>> drugGradeListMap = klDrugs.stream().filter(e -> e.getDrugGrade() != null).collect(Collectors.groupingBy(KlDrug::getDrugGrade));
+
+        if (Objects.equals(doctor.getProfessionalTitle(), "无") || Objects.equals(doctor.getProfessionalTitle(), "医师")){
+            if (drugGradeListMap.keySet().containsAll(Arrays.asList(1,2))){
+                List<Long> limitConceptIds = drugGradeListMap.get(1).stream().map(KlDrug::getConceptId).collect(Collectors.toList());
+                List<String> limitUniqueNames = limitConceptIds.stream().map(drugConceptIdNameMap::get).collect(Collectors.toList());
+                String limitName = limitUniqueNames.stream().map(drugNameMap::get).collect(Collectors.joining("、"));
+
+                List<Long> specialConceptIds = drugGradeListMap.get(2).stream().map(KlDrug::getConceptId).collect(Collectors.toList());
+                List<String> specialUniqueNames = specialConceptIds.stream().map(drugConceptIdNameMap::get).collect(Collectors.toList());
+                String specialName = specialUniqueNames.stream().map(drugNameMap::get).collect(Collectors.joining("、"));
+                String msg = "1、" +limitName + "为限制使用级药品,仅主治医师及以上级别可使用\n";
+                msg += "2、" + specialName + "为特殊使用级药品,仅副主任及以上级别可使用";
+                BillMsg billMsg = MsgUtil.getCommonOtherMsg(TypeEnum.other.getName(), msg, null, null, null);
+                CoreUtil.addBeanToList(otherList, billMsg);
+            }else if (drugGradeListMap.containsKey(1)){
+                List<Long> limitConceptIds = drugGradeListMap.get(1).stream().map(KlDrug::getConceptId).collect(Collectors.toList());
+                List<String> limitUniqueNames = limitConceptIds.stream().map(drugConceptIdNameMap::get).collect(Collectors.toList());
+                String limitName = limitUniqueNames.stream().map(drugNameMap::get).collect(Collectors.joining("、"));
+
+                String msg = limitName + "为限制使用级药品,仅主治医师及以上级别可使用";
+                BillMsg billMsg = MsgUtil.getCommonOtherMsg(TypeEnum.other.getName(), msg, null, null, null);
+                CoreUtil.addBeanToList(otherList, billMsg);
+            }else if (drugGradeListMap.containsKey(2)){
+                specialDrugTip(drugGradeListMap, drugConceptIdNameMap, drugNameMap, otherList);
+            }
+        }
+
+        if (Objects.equals(doctor.getProfessionalTitle(), "主治医师") && drugGradeListMap.containsKey(2)){
+            specialDrugTip(drugGradeListMap, drugConceptIdNameMap, drugNameMap, otherList);
+        }
+
+
+    }
+
+    /**
+     * 处理业务——传染病周期提示
+     *
+     * @param wordCrfDTO
+     * @param res
+     */
+    public void processInfectiousDisease(WordCrfDTO wordCrfDTO, IndicationDTO res) {
+        List<BillMsg> otherList = res.getOtherList();
+        // 诊断
+        List<Item> diagItems = wordCrfDTO.getDiag();
+        if (ListUtil.isEmpty(diagItems)) {
+            return;
+        }
+
+        Map<String, String> diagNameMap = diagItems.stream().collect(Collectors.toMap(Item::getUniqueName, Item::getName));
+
+        List<String> uniqueNames = diagItems.stream().map(Item::getUniqueName).collect(Collectors.toList());
+
+        SearchCollectionConceptVO searchCollectionConceptVO = new SearchCollectionConceptVO();
+        searchCollectionConceptVO.setNames(uniqueNames);
+        List<GetAllForRelationDTO> getAllForRelationDTOS = klConceptFacade.searchCollectionConceptFacNew(searchCollectionConceptVO);
+
+        if (ListUtil.isEmpty(getAllForRelationDTOS)) {
+            return;
+        }
+
+        Map<Long,String> diagConceptIdNameMap = getAllForRelationDTOS.stream()
+                .collect(Collectors.toMap(GetAllForRelationDTO::getConceptId ,GetAllForRelationDTO::getConceptName));
+
+        List<Long> conceptIds = getAllForRelationDTOS.stream().map(GetAllForRelationDTO::getConceptId).collect(Collectors.toList());
+
+        List<KlDisease> klDiseases = klDiseaseFacade.getKlDiagsByConceptIds(conceptIds);
+
+        if (ListUtil.isEmpty(klDiseases)) {
+            return;
+        }
+
+        for (KlDisease klDisease : klDiseases) {
+            if (klDisease.getIsInfect() == 1){
+                String diseaseName = diagNameMap.get(diagConceptIdNameMap.get(klDisease.getConceptId()));
+                String msg = diseaseName + "是" + klDisease.getInfectClassification() + "传染病," + klDisease.getInfectDeadline();
+                BillMsg billMsg = MsgUtil.getCommonOtherMsg(TypeEnum.other.getName(), msg, null, null, null);
+                CoreUtil.addBeanToList(otherList, billMsg);
+            }
+        }
+
+    }
+
+    private static void specialDrugTip(Map<Integer, List<KlDrug>> drugGradeListMap, Map<Long, String> drugConceptIdNameMap, Map<String, String> drugNameMap, List<BillMsg> otherList) {
+        List<Long> specialConceptIds = drugGradeListMap.get(2).stream().map(KlDrug::getConceptId).collect(Collectors.toList());
+        List<String> specialUniqueNames = specialConceptIds.stream().map(drugConceptIdNameMap::get).collect(Collectors.toList());
+        String specialName = specialUniqueNames.stream().map(drugNameMap::get).collect(Collectors.joining("、"));
+        String msg = specialName + "为特殊使用级药品,仅副主任及以上级别可使用";
+        BillMsg billMsg = MsgUtil.getCommonOtherMsg(TypeEnum.other.getName(), msg, null, null, null);
+        CoreUtil.addBeanToList(otherList, billMsg);
+    }
+
     /**
      * 是否有效医嘱(6天)
      *

+ 3 - 0
src/main/java/com/diagbot/service/KlConceptService.java

@@ -38,6 +38,9 @@ public interface KlConceptService extends IService<KlConcept> {
     //查找(集合模块术语)
     List<GetAllForRelationDTO> searchCollectionConcept(SearchCollectionConceptVO searchCollectionConceptVO);
 
+    //查找(集合模块术语)
+    List<GetAllForRelationDTO> searchCollectionConceptNew(SearchCollectionConceptVO searchCollectionConceptVO);
+
     //通过编码查询疾病
     IPage<DiseaseIndexDTO> findDiseaeByCode(@Param("diseaseIndexPageVO") DiseaseIndexPageVO diseaseIndexPageVO);
 

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

@@ -65,6 +65,11 @@ public class KlConceptServiceImpl extends ServiceImpl<KlConceptMapper, KlConcept
         return baseMapper.searchCollectionConcept(searchCollectionConceptVO);
     }
 
+    @Override
+    public List<GetAllForRelationDTO> searchCollectionConceptNew(SearchCollectionConceptVO searchCollectionConceptVO) {
+        return baseMapper.searchCollectionConceptNew(searchCollectionConceptVO);
+    }
+
     //通过编码查询疾病
     @Override
     public IPage<DiseaseIndexDTO> findDiseaeByCode(@Param("diseaseIndexPageVO") DiseaseIndexPageVO diseaseIndexPageVO) {

+ 7 - 0
src/main/java/com/diagbot/service/impl/KlDiseaseServiceImpl.java

@@ -1,11 +1,15 @@
 package com.diagbot.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.entity.KlDisease;
+import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.mapper.KlDiseaseMapper;
 import com.diagbot.service.KlDiseaseService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * <p>
  * 疾病表 服务实现类
@@ -17,4 +21,7 @@ import org.springframework.stereotype.Service;
 @Service
 public class KlDiseaseServiceImpl extends ServiceImpl<KlDiseaseMapper, KlDisease> implements KlDiseaseService {
 
+    public List<KlDisease> getKlDiagsByConceptIds(List<Long> collect) {
+        return this.baseMapper.getKlDiagsByConceptIdsNew(collect);
+    }
 }

+ 5 - 0
src/main/java/com/diagbot/service/impl/KlDrugServiceImpl.java

@@ -6,6 +6,8 @@ import com.diagbot.mapper.KlDrugMapper;
 import com.diagbot.service.KlDrugService;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * <p>
  * 药品表 服务实现类
@@ -17,4 +19,7 @@ import org.springframework.stereotype.Service;
 @Service
 public class KlDrugServiceImpl extends ServiceImpl<KlDrugMapper, KlDrug> implements KlDrugService {
 
+    public List<KlDrug> getKlDrugsByConceptIdsNew(List<Long> collect) {
+        return this.baseMapper.getKlDrugsByConceptIdsNew(collect);
+    }
 }

+ 6 - 0
src/main/java/com/diagbot/vo/SearchData.java

@@ -4,6 +4,7 @@ import com.diagbot.biz.push.entity.Item;
 import com.diagbot.biz.push.entity.Lis;
 import com.diagbot.biz.push.entity.Pacs;
 import com.diagbot.biz.push.entity.Scale;
+import com.diagbot.model.entity.Doctor;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
 import lombok.Setter;
@@ -185,4 +186,9 @@ public class SearchData extends HospitalBaseVO {
      * 量表结果
      */
     private List<Scale> scale = new ArrayList<>();
+
+    /**
+     * 医生
+     */
+    private Doctor doctor;
 }

+ 14 - 0
src/main/resources/mapper/KlConceptMapper.xml

@@ -982,6 +982,20 @@
         LIMIT 100
     </select>
 
+    <select id="searchCollectionConceptNew" parameterType="com.diagbot.vo.SearchCollectionConceptVO"
+            resultType="com.diagbot.dto.GetAllForRelationDTO">
+        select kc.id AS conceptId,
+        kc.lib_name AS conceptName,
+        kc.lib_type AS libType,
+        kc.lib_name AS conceptNameType
+        from kl_concept kc
+        where kc.status = 1
+        and kc.lib_name in
+        <foreach collection="names" item="name" open="(" separator="," close=")">
+            #{name}
+        </foreach>
+    </select>
+
     <select id="indexByApproval" resultType="com.diagbot.dto.IndexBatchDTO">
         SELECT
         t1.approvalNum,

+ 11 - 0
src/main/resources/mapper/KlDiseaseMapper.xml

@@ -13,6 +13,17 @@
         <result column="concept_id" property="conceptId" />
         <result column="icd10_code" property="icd10Code" />
         <result column="remark" property="remark" />
+        <result column="is_infect" property="isInfect"/>
+        <result column="infect_classification" property="infectClassification"/>
+        <result column="infect_deadline" property="infectDeadline"/>
+
     </resultMap>
 
+    <select id="getKlDiagsByConceptIdsNew" resultMap="BaseResultMap">
+        select * from kl_disease WHERE concept_id IN
+        <foreach collection="conceptIds" item="conceptId" open="(" separator="," close=")">
+            #{conceptId,jdbcType=BIGINT}
+        </foreach>
+    </select>
+
 </mapper>

+ 27 - 0
src/main/resources/mapper/KlDrugMapper.xml

@@ -0,0 +1,27 @@
+<?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.KlDrugMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.KlDrug">
+        <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="concept_id" property="conceptId" />
+        <result column="drug" property="drug" />
+        <result column="drug_c" property="drugC" />
+        <result column="drug_grade" property="drugGrade" />
+        <result column="remark" property="remark" />
+    </resultMap>
+
+    <select id="getKlDrugsByConceptIdsNew" resultMap="BaseResultMap">
+        select * from kl_drug WHERE concept_id IN
+        <foreach collection="conceptIds" item="conceptId" open="(" separator="," close=")">
+            #{conceptId,jdbcType=BIGINT}
+        </foreach>
+    </select>
+
+</mapper>