Browse Source

静态知识维护

zhaops 4 năm trước cách đây
mục cha
commit
e3e2f7c233

+ 43 - 0
src/main/java/com/diagbot/dto/KlConceptDetailDTO.java

@@ -0,0 +1,43 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/2/24 13:39
+ */
+@Getter
+@Setter
+public class KlConceptDetailDTO {
+    /**
+     * 提示概念id
+     */
+    private Long conceptId;
+
+    /**
+     * 提示明细标题
+     */
+    private String title;
+
+    /**
+     * 提示明细内容
+     */
+    private String content;
+
+    /**
+     * 纯文本
+     */
+    private String text;
+
+    /**
+     * 提示明细序号
+     */
+    private Integer orderNo;
+
+    /**
+     * 内容类型(多选):1-化验、辅检、手术和操作、诊断、药品静态信息,2-注意事项,3-临床路径,4-治疗方案
+     */
+    private String contentType;
+}

+ 61 - 0
src/main/java/com/diagbot/dto/KlConceptStaticDTO.java

@@ -0,0 +1,61 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/2/24 13:38
+ */
+@Getter
+@Setter
+public class KlConceptStaticDTO {
+    /**
+     * 术语id
+     */
+    private Long id;
+    /**
+     * 术语名称
+     */
+    private String name;
+    /**
+     * 关联标题
+     */
+    private String title;
+    /**
+     * 术语类型(词性)
+     */
+    private Integer type;
+    /**
+     * 术语类型(词性)
+     */
+    private String typeName;
+    /**
+     * 临床路径名称
+     */
+    private String clinicalPathwayName;
+    /**
+     * 注意事项名称
+     */
+    private String noticeName;
+    /**
+     * 修改时间
+     */
+    private Date gmtModified;
+    /**
+     * 修改人
+     */
+    private String modifier;
+    /**
+     * 启用状态
+     */
+    private Integer status;
+    /**
+     * 明细
+     */
+    List<KlConceptDetailDTO> details;
+}

+ 82 - 29
src/main/java/com/diagbot/facade/KlConceptStaticFacade.java

@@ -1,6 +1,9 @@
 package com.diagbot.facade;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.DictionaryInfoDTO;
+import com.diagbot.dto.KlConceptStaticDTO;
 import com.diagbot.dto.StaticKnowledgeDTO;
 import com.diagbot.dto.StaticKnowledgeDetailDTO;
 import com.diagbot.entity.KlConcept;
@@ -14,8 +17,10 @@ import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.service.impl.KlConceptStaticServiceImpl;
 import com.diagbot.util.BeanUtil;
+import com.diagbot.util.EntityUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.StringUtil;
+import com.diagbot.vo.KlConceptStaticPageVO;
 import com.diagbot.vo.StaticKnowledgeVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -43,14 +48,14 @@ public class KlConceptStaticFacade extends KlConceptStaticServiceImpl {
     private DictionaryFacade dictionaryFacade;
 
     /**
-     * 页面获取静态知识
+     * 获取静态知识
      *
      * @param staticKnowledgeVO
      * @return
      */
     public StaticKnowledgeDTO getStaticKnowledge(StaticKnowledgeVO staticKnowledgeVO) {
         StaticKnowledgeDTO staticKnowledgeDTO = new StaticKnowledgeDTO();
-        Integer type = convertType(staticKnowledgeVO.getType());
+        Integer type = convertType(staticKnowledgeVO.getType(), 1);
         if (type == null) {
             throw new CommonException(CommonErrorCode.PARAM_IS_ERROR, "请输入正确类型(1-诊断、2-药品、3-检验套餐、4-检验细项、5-检查、6-检查子项、7-手术和操作)");
         }
@@ -167,40 +172,88 @@ public class KlConceptStaticFacade extends KlConceptStaticServiceImpl {
 
         staticKnowledgeDTO.setId(concept.getId());
         staticKnowledgeDTO.setName(concept.getLibName());
-        staticKnowledgeDTO.setType(concept.getLibType().toString());
+        Integer retType = convertType(concept.getLibType(), 2);
+        staticKnowledgeDTO.setType(retType == null ? "" : retType.toString());
         staticKnowledgeDTO.setClinicalPathwayName(staticInfo.getClinicalPathwayName());
         staticKnowledgeDTO.setNoticeName(staticInfo.getNoticeName());
         staticKnowledgeDTO.setDetails(detailMap);
         return staticKnowledgeDTO;
     }
 
-    public Integer convertType(Integer type) {
+    /**
+     * 分页查询
+     *
+     * @param klConceptStaticPageVO
+     * @return
+     */
+    public IPage<KlConceptStaticDTO> getPage(KlConceptStaticPageVO klConceptStaticPageVO) {
+        Integer type = convertType(klConceptStaticPageVO.getType(), 1);
+        klConceptStaticPageVO.setType(type);
+
+        List<DictionaryInfoDTO> dicTypeName = dictionaryFacade.getListByGroupType(13);
+        Map<String, String> dicTypeNameMap
+                = EntityUtil.makeMapWithKeyValue(dicTypeName, "val", "name");
+
+        IPage<KlConceptStaticDTO> page = super.getPage(klConceptStaticPageVO);
+        List<KlConceptStaticDTO> records = page.getRecords();
+        if (ListUtil.isNotEmpty(records)) {
+            records.forEach(record -> {
+                String typeName = LexiconEnum.getName(record.getType());
+                record.setTypeName(dicTypeNameMap.get(typeName));
+                Integer retType = convertType(record.getType(), 2);
+                record.setType(retType);
+            });
+        }
+        page.setRecords(records);
+        return page;
+    }
+
+
+    public Integer convertType(Integer type, Integer flag) {
         Integer retType = null;
-        //1-诊断、2-药品、3-检验套餐、4-检验细项、5-检查、6-检查子项、7-手术和操作
-        switch (type) {
-            case 1:
-                retType = LexiconEnum.Disease.getKey();
-                break;
-            case 2:
-                retType = LexiconEnum.Medicine.getKey();
-                break;
-            case 3:
-                retType = LexiconEnum.LisName.getKey();
-                break;
-            case 4:
-                retType = LexiconEnum.LisSubName.getKey();
-                break;
-            case 5:
-                retType = LexiconEnum.PacsName.getKey();
-                break;
-            case 6:
-                retType = LexiconEnum.PacsSubName.getKey();
-                break;
-            case 7:
-                retType = LexiconEnum.Operation.getKey();
-                break;
-            default:
-                break;
+        if (flag.equals(1)) {
+            //1-诊断、2-药品、3-检验套餐、4-检验细项、5-检查、6-检查子项、7-手术和操作
+            switch (type) {
+                case 1:
+                    retType = LexiconEnum.Disease.getKey();
+                    break;
+                case 2:
+                    retType = LexiconEnum.Medicine.getKey();
+                    break;
+                case 3:
+                    retType = LexiconEnum.LisName.getKey();
+                    break;
+                case 4:
+                    retType = LexiconEnum.LisSubName.getKey();
+                    break;
+                case 5:
+                    retType = LexiconEnum.PacsName.getKey();
+                    break;
+                case 6:
+                    retType = LexiconEnum.PacsSubName.getKey();
+                    break;
+                case 7:
+                    retType = LexiconEnum.Operation.getKey();
+                    break;
+                default:
+                    break;
+            }
+        } else if (flag.equals(2)) {
+            if (type.equals(LexiconEnum.Disease.getKey())) {
+                retType = 1;
+            } else if (type.equals(LexiconEnum.Medicine.getKey())) {
+                retType = 2;
+            } else if (type.equals(LexiconEnum.LisName.getKey())) {
+                retType = 3;
+            } else if (type.equals(LexiconEnum.LisSubName.getKey())) {
+                retType = 4;
+            } else if (type.equals(LexiconEnum.PacsName.getKey())) {
+                retType = 5;
+            } else if (type.equals(LexiconEnum.PacsSubName.getKey())) {
+                retType = 6;
+            } else if (type.equals(LexiconEnum.Operation.getKey())) {
+                retType = 7;
+            }
         }
         return retType;
     }

+ 6 - 1
src/main/java/com/diagbot/mapper/KlConceptStaticMapper.java

@@ -1,7 +1,11 @@
 package com.diagbot.mapper;
 
-import com.diagbot.entity.KlConceptStatic;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.KlConceptStaticDTO;
+import com.diagbot.entity.KlConceptStatic;
+import com.diagbot.vo.KlConceptStaticPageVO;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -13,4 +17,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface KlConceptStaticMapper extends BaseMapper<KlConceptStatic> {
 
+    IPage<KlConceptStaticDTO> getPage(@Param("klConceptStaticPageVO") KlConceptStaticPageVO klConceptStaticPageVO);
 }

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

@@ -1,5 +1,6 @@
 package com.diagbot.service;
 
+import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.diagbot.entity.DictionaryInfo;
 
@@ -11,6 +12,7 @@ import com.diagbot.entity.DictionaryInfo;
  * @author zhoutg
  * @since 2018-12-25
  */
+@DS("master")
 public interface DictionaryInfoService extends IService<DictionaryInfo> {
 
 }

+ 6 - 1
src/main/java/com/diagbot/service/KlConceptStaticService.java

@@ -1,8 +1,12 @@
 package com.diagbot.service;
 
 import com.baomidou.dynamic.datasource.annotation.DS;
-import com.diagbot.entity.KlConceptStatic;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.dto.KlConceptStaticDTO;
+import com.diagbot.entity.KlConceptStatic;
+import com.diagbot.vo.KlConceptStaticPageVO;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -15,4 +19,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
 @DS("med")
 public interface KlConceptStaticService extends IService<KlConceptStatic> {
 
+    IPage<KlConceptStaticDTO> getPage(@Param("klConceptStaticPageVO") KlConceptStaticPageVO klConceptStaticPageVO);
 }

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

@@ -1,9 +1,13 @@
 package com.diagbot.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.KlConceptStaticDTO;
 import com.diagbot.entity.KlConceptStatic;
 import com.diagbot.mapper.KlConceptStaticMapper;
 import com.diagbot.service.KlConceptStaticService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.vo.KlConceptStaticPageVO;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Service;
 
 /**
@@ -17,4 +21,7 @@ import org.springframework.stereotype.Service;
 @Service
 public class KlConceptStaticServiceImpl extends ServiceImpl<KlConceptStaticMapper, KlConceptStatic> implements KlConceptStaticService {
 
+    public IPage<KlConceptStaticDTO> getPage(@Param("klConceptStaticPageVO") KlConceptStaticPageVO klConceptStaticPageVO) {
+        return baseMapper.getPage(klConceptStaticPageVO);
+    }
 }

+ 33 - 0
src/main/java/com/diagbot/vo/KlConceptStaticPageVO.java

@@ -0,0 +1,33 @@
+package com.diagbot.vo;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2021/2/24 13:41
+ */
+@Getter
+@Setter
+public class KlConceptStaticPageVO extends Page {
+    /**
+     * 标准术语
+     */
+    private String name;
+    /**
+     * 术语类型
+     */
+    private Integer type;
+    /**
+     * 术语类型
+     */
+    @ApiModelProperty(hidden = true)
+    private String typeName;
+    /**
+     * 启用状态
+     */
+    private Integer status;
+}

+ 14 - 0
src/main/java/com/diagbot/web/KlConceptStaticController.java

@@ -1,9 +1,12 @@
 package com.diagbot.web;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.KlConceptStaticDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.StaticKnowledgeDTO;
 import com.diagbot.facade.KlConceptStaticFacade;
+import com.diagbot.vo.KlConceptStaticPageVO;
 import com.diagbot.vo.StaticKnowledgeVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -37,4 +40,15 @@ public class KlConceptStaticController {
         StaticKnowledgeDTO data = klConceptStaticFacade.getStaticKnowledge(staticKnowledgeVO);
         return RespDTO.onSuc(data);
     }
+
+    @ApiOperation(value = "获取静态知识列表[zhaops]",
+            notes = "type: 类型:1-诊断、2-药品、3-检验套餐、4-检验细项、5-检查、6-检查子项、7-手术和操作 <br>" +
+                    "name: 术语名称<br>" +
+                    "isDeleted: 启用状态:N-启用中、Y-已删除<br>")
+    @PostMapping("/getPage")
+    @SysLogger("getPage")
+    public RespDTO<IPage<KlConceptStaticDTO>> getPage(@Valid @RequestBody KlConceptStaticPageVO klConceptStaticPageVO) {
+        IPage<KlConceptStaticDTO> data = klConceptStaticFacade.getPage(klConceptStaticPageVO);
+        return RespDTO.onSuc(data);
+    }
 }

+ 1 - 1
src/main/resources/mapper/KlConceptMapper.xml

@@ -396,7 +396,7 @@
 					AND f.conceptId IS NULL
 				</when>
 				<when test="hasInfo==1">
-					AND f.STATUS = 1
+					-- AND f.STATUS = 1
 					AND f.conceptId IS NOT NULL
 				</when>
 			</choose>

+ 51 - 0
src/main/resources/mapper/KlConceptStaticMapper.xml

@@ -39,4 +39,55 @@
             AND c.NAME = #{typeName}
         </if>
     </select>
+
+    <!-- 分页查询 -->
+    <select id="getPage" resultType="com.diagbot.dto.KlConceptStaticDTO">
+        SELECT
+        t1.id,
+        t1.NAME,
+        t1.clinicalPathwayName,
+        t1.noticeName,
+        t1.type,
+        t1.status,
+        t1.title,
+        t1.gmtModified,
+        t1.modifier
+        FROM
+        (
+        SELECT
+        a.id,
+        a.lib_name as NAME ,
+        b.clinical_pathway_name AS clinicalPathwayName,
+        b.notice_name AS noticeName,
+        a.lib_type as type,
+        b.status,
+        GROUP_CONCAT( c.title order by c.order_no asc SEPARATOR '、' ) AS title,
+        b.gmt_modified AS gmtModified,
+        b.modifier
+        FROM
+        kl_concept a,
+        kl_concept_static b,
+        kl_concept_detail c
+        WHERE
+        a.id = b.concept_id
+        and a.id = c.concept_id
+        and a.is_deleted = 'N'
+        and b.is_deleted = 'N'
+        and c.is_deleted = 'N'
+        <if test="klConceptStaticPageVO.status!=null ">
+            AND b.status = #{klConceptStaticPageVO.status}
+        </if>
+        <if test="klConceptStaticPageVO.name!=null and klConceptStaticPageVO.name!=''">
+            AND a.lib_name like concat('%', #{klConceptStaticPageVO.name},'%')
+        </if>
+        <if test="klConceptStaticPageVO.type!=null and klConceptStaticPageVO.type!=''">
+            AND a.lib_type = #{klConceptStaticPageVO.type}
+        </if>
+        GROUP BY
+        a.id
+        ) t1
+        ORDER BY
+        t1.status DESC,
+        t1.gmtModified DESC
+    </select>
 </mapper>