Browse Source

药品搜索及展示增加分类信息

SGTY 10 months ago
parent
commit
7c3053350a

+ 1 - 0
cdssman-service/src/main/java/com/diagbot/dto/DiseaseAllDetailDTO.java

@@ -19,4 +19,5 @@ public class DiseaseAllDetailDTO implements Serializable {
     private String rname;
     private Long eid;
     private String itemName;
+    private String drugC;
 }

+ 6 - 0
cdssman-service/src/main/java/com/diagbot/dto/GetAllForRelationDTO.java

@@ -31,6 +31,12 @@ public class GetAllForRelationDTO {
 	@ApiModelProperty(value="概念id")
 	private Integer libType;
 
+	/**
+	 * 药品分类
+	 */
+	@ApiModelProperty(value="药品分类")
+	private String drugC;
+
 	/**
 	 * 概念名称(类型)
 	 */

+ 8 - 0
cdssman-service/src/main/java/com/diagbot/entity/KlConcept.java

@@ -2,6 +2,8 @@ package com.diagbot.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
 import java.time.LocalDateTime;
 import java.io.Serializable;
 import java.util.Date;
@@ -14,6 +16,7 @@ import java.util.Date;
  * @author wangfeng
  * @since 2021-03-01
  */
+@Data
 public class KlConcept implements Serializable {
 
     private static final long serialVersionUID = 1L;
@@ -69,6 +72,11 @@ public class KlConcept implements Serializable {
      */
     private Integer status;
 
+    /**
+     * 药品分类
+     */
+    private String drugC;
+
     public Long getId() {
         return id;
     }

+ 5 - 1
cdssman-service/src/main/java/com/diagbot/facade/KlDiseaseFacade.java

@@ -107,7 +107,7 @@ public class KlDiseaseFacade extends KlDiseaseServiceImpl {
      * @return
      */
     public DiseaseTreeDetailDTO getDetail(GetDiseaseDetailVO getDiseaseDetailVO) {
-        List<Integer> relations = Arrays.asList(501, 502, 503, 504, 505, 506, 507, 508, 509,510,516);
+        List<Integer> relations = Arrays.asList(501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 516);
         List<KlLexiconRelationship> klLexiconRelationships = klLexiconRelationshipFacade.list(new QueryWrapper<KlLexiconRelationship>()
                 .eq("is_deleted", IsDeleteEnum.N.getKey())
                 .in("code", relations)
@@ -131,6 +131,8 @@ public class KlDiseaseFacade extends KlDiseaseServiceImpl {
                     List<KlConcept> details = diseaseSubDetailDTO.getDetails();
                     diseaseSubDetailDTO.setDetails(details);
                     KlConcept klConcept = new KlConcept();
+                    String DrugClass = StringUtil.isNotBlank(x.getDrugC()) ? x.getDrugC() : "其他";
+                    klConcept.setDrugC(DrugClass);
                     klConcept.setId(x.getEid());
                     klConcept.setLibName(x.getItemName());
                     details.add(klConcept);
@@ -144,6 +146,8 @@ public class KlDiseaseFacade extends KlDiseaseServiceImpl {
                     List<KlConcept> details = Lists.newArrayList();
                     diseaseSubDetailDTO.setDetails(details);
                     KlConcept klConcept = new KlConcept();
+                    String DrugClass = StringUtil.isNotBlank(x.getDrugC()) ? x.getDrugC() : "其他";
+                    klConcept.setDrugC(DrugClass);
                     klConcept.setId(x.getEid());
                     klConcept.setLibName(x.getItemName());
                     details.add(klConcept);

+ 40 - 28
cdssman-service/src/main/resources/mapper/KlDiseaseMapper.xml

@@ -115,34 +115,46 @@
 
     <select id="getDiseaseAllDetaill" resultType="com.diagbot.dto.DiseaseAllDetailDTO">
         SELECT
-        kr.start_id as sid,
-        klc1.lib_name as disName,
-        kr.relation_id as rid,
-        klex.name as rname,
-        kr.end_id as eid,
-        klc2.lib_name as itemName
-        FROM
-        kl_relation kr,
-        kl_relation_order kro,
-        kl_concept klc1,
-        kl_concept klc2,
-        kl_lexicon_relationship klex
-        WHERE
-        kr.id = kro.t_relation_id
-        AND klc1.id = kr.start_id
-        AND klc2.id = kr.end_id
-        AND kr.relation_id = klex. CODE
-        <if test="disName != null and disName !=''">
-            AND klc1.lib_name = #{disName}
-        </if>
-        <!--<if test="types!=null and types.size() > 0">
-            AND kr.relation_id IN
-            <foreach collection="types" item="item" index="index" open="(" separator="," close=")">
-                #{item}
-            </foreach>
-        </if>-->
-        AND kr.relation_id IN (501,502,503,504,505,506,507,508,509,510,516)
+            t1.sid,
+            t1.disName,
+            t1.rid,
+            t1.rname,
+            t1.eid,
+            t1.itemName,
+            t2.drug_c
+        FROM(
+            SELECT
+                kr.start_id as sid,
+                klc1.lib_name as disName,
+                kr.relation_id as rid,
+                klex.name as rname,
+                kr.end_id as eid,
+                kro.order_no as order_no,
+                klc2.lib_name as itemName
+            FROM
+                kl_relation kr,
+                kl_relation_order kro,
+                kl_concept klc1,
+                kl_concept klc2,
+                kl_lexicon_relationship klex
+            WHERE
+                kr.id = kro.t_relation_id
+            AND klc1.id = kr.start_id
+            AND klc2.id = kr.end_id
+            AND kr.relation_id = klex. CODE
+            <if test="disName != null and disName !=''">
+                AND klc1.lib_name = #{disName}
+            </if>
+            <!--<if test="types!=null and types.size() > 0">
+                AND kr.relation_id IN
+                <foreach collection="types" item="item" index="index" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>-->
+            AND kr.relation_id IN (501,502,503,504,505,506,507,508,509,510,516)
+        )t1
+        LEFT JOIN kl_drug t2 ON t1.eid = t2.concept_id
         ORDER BY
-        rid,kro.order_no
+            rid,t1.order_no
     </select>
 </mapper>