Bladeren bron

脚本更新

wangyu 6 jaren geleden
bovenliggende
commit
98aa2cedc7

+ 120 - 0
aipt-service/src/main/java/com/diagbot/entity/Lexicon.java

@@ -0,0 +1,120 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 术语分类表
+ * </p>
+ *
+ * @author wangyu
+ * @since 2019-05-07
+ */
+@TableName("kl_lexicon")
+public class Lexicon implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private LocalDateTime gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private LocalDateTime gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    /**
+     * 类型名称
+     */
+    private String name;
+
+    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 LocalDateTime getGmtCreate() {
+        return gmtCreate;
+    }
+
+    public void setGmtCreate(LocalDateTime gmtCreate) {
+        this.gmtCreate = gmtCreate;
+    }
+    public LocalDateTime getGmtModified() {
+        return gmtModified;
+    }
+
+    public void setGmtModified(LocalDateTime 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 String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    @Override
+    public String toString() {
+        return "Lexicon{" +
+        "id=" + id +
+        ", isDeleted=" + isDeleted +
+        ", gmtCreate=" + gmtCreate +
+        ", gmtModified=" + gmtModified +
+        ", creator=" + creator +
+        ", modifier=" + modifier +
+        ", name=" + name +
+        "}";
+    }
+}

+ 58 - 0
aipt-service/src/main/java/com/diagbot/enums/QuestionTypeEnum.java

@@ -0,0 +1,58 @@
+package com.diagbot.enums;
+
+import com.diagbot.core.KeyedNamed;
+import lombok.Setter;
+
+/**
+ * @Description:标签类型
+ * @Author:zhaops
+ * @time: 2018/11/21 11:39
+ */
+public enum QuestionTypeEnum implements KeyedNamed {
+    Symptom(1, "症状"),
+    Other(3, "其他史"),
+    Vital(4, "查体"),
+    Lis(5, "化验"),
+    Pacs(6, "辅检"),
+    Disease(7, "诊断"),
+    Drug(8, "药品"),
+    DrugClass(9, "药品分类"),
+    AdverseReaction(10,"不良反应"),
+    Scale(21, "量表"),
+    MedicalIndication(22, "推送指标");
+
+    @Setter
+    private Integer key;
+
+    @Setter
+    private String name;
+
+    QuestionTypeEnum(Integer key, String name) {
+        this.key = key;
+        this.name = name;
+    }
+
+    public static QuestionTypeEnum getEnum(Integer key) {
+        for (QuestionTypeEnum item : QuestionTypeEnum.values()) {
+            if (item.key == key) {
+                return item;
+            }
+        }
+        return null;
+    }
+
+    public static String getName(Integer key) {
+        QuestionTypeEnum item = getEnum(key);
+        return item != null ? item.name : null;
+    }
+
+    @Override
+    public int getKey() {
+        return key;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+}

+ 43 - 0
aipt-service/src/main/java/com/diagbot/facade/ConceptFacade.java

@@ -1,14 +1,24 @@
 package com.diagbot.facade;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.ConceptBaseDTO;
+import com.diagbot.dto.ConceptWithOrderRes;
 import com.diagbot.entity.Concept;
+import com.diagbot.entity.Lexicon;
+import com.diagbot.entity.wrapper.ConceptWrapper;
 import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.enums.QuestionTypeEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.service.impl.ConceptServiceImpl;
 import com.diagbot.vo.ConceptBaseVO;
+import com.diagbot.vo.ConceptUsualVO;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * @Description:
  * @Author:zhaops
@@ -16,6 +26,8 @@ import org.springframework.stereotype.Component;
  */
 @Component
 public class ConceptFacade extends ConceptServiceImpl {
+    @Autowired
+    LexiconFacade lexiconFacade;
 
     /**
      * 验证存在并且获取概念基本信息
@@ -34,4 +46,35 @@ public class ConceptFacade extends ConceptServiceImpl {
         }
         return concept;
     }
+
+    /**
+     * 获取常用标签
+     *
+     * @param conceptUsualVO
+     * @return
+     */
+    public List<ConceptBaseDTO> getConceptUsual(ConceptUsualVO conceptUsualVO){
+        //将标签类型转换成类型id
+        QueryWrapper<Lexicon> lexiconQueryWrapper = new QueryWrapper<>();
+        lexiconQueryWrapper.eq("is_deleted",IsDeleteEnum.N.getKey())
+                .eq("name",QuestionTypeEnum.getName(conceptUsualVO.getType()));
+        Lexicon lexicon = lexiconFacade.getOne(lexiconQueryWrapper);
+        //获取标签内容
+        ConceptWrapper conceptWrapper = new ConceptWrapper();
+        conceptWrapper.setEndAge(conceptUsualVO.getAge());//年龄
+        conceptWrapper.setStartId(conceptUsualVO.getDeptId());//科室概念id
+        conceptWrapper.setEndSex(conceptUsualVO.getSexType());//性别
+        conceptWrapper.setEndType(Integer.parseInt(lexicon.getId().toString()));//标签类型
+        List<ConceptWithOrderRes> concepts = this.getConceptWithOrder(conceptWrapper);
+        List<ConceptBaseDTO> list = new ArrayList();
+        //封装返回
+        ConceptBaseDTO conceptBaseDTO = new ConceptBaseDTO();
+        for (ConceptWithOrderRes conceptWithOrderRes: concepts) {
+            conceptBaseDTO = new ConceptBaseDTO();
+            conceptBaseDTO.setConceptId(conceptWithOrderRes.getEndId());
+            conceptBaseDTO.setName(conceptWithOrderRes.getEndName());
+            list.add(conceptBaseDTO);
+        }
+        return list;
+    }
 }

+ 14 - 0
aipt-service/src/main/java/com/diagbot/facade/LexiconFacade.java

@@ -0,0 +1,14 @@
+package com.diagbot.facade;
+
+import com.diagbot.service.impl.LexiconServiceImpl;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Description:
+ * @author: wangyu
+ * @time: 2019/5/7 14:47
+ */
+@Component
+public class LexiconFacade extends LexiconServiceImpl {
+
+}

+ 16 - 0
aipt-service/src/main/java/com/diagbot/mapper/LexiconMapper.java

@@ -0,0 +1,16 @@
+package com.diagbot.mapper;
+
+import com.diagbot.entity.Lexicon;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 术语分类表 Mapper 接口
+ * </p>
+ *
+ * @author wangyu
+ * @since 2019-05-07
+ */
+public interface LexiconMapper extends BaseMapper<Lexicon> {
+
+}

+ 16 - 0
aipt-service/src/main/java/com/diagbot/service/LexiconService.java

@@ -0,0 +1,16 @@
+package com.diagbot.service;
+
+import com.diagbot.entity.Lexicon;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 术语分类表 服务类
+ * </p>
+ *
+ * @author wangyu
+ * @since 2019-05-07
+ */
+public interface LexiconService extends IService<Lexicon> {
+
+}

+ 20 - 0
aipt-service/src/main/java/com/diagbot/service/impl/LexiconServiceImpl.java

@@ -0,0 +1,20 @@
+package com.diagbot.service.impl;
+
+import com.diagbot.entity.Lexicon;
+import com.diagbot.mapper.LexiconMapper;
+import com.diagbot.service.LexiconService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 术语分类表 服务实现类
+ * </p>
+ *
+ * @author wangyu
+ * @since 2019-05-07
+ */
+@Service
+public class LexiconServiceImpl extends ServiceImpl<LexiconMapper, Lexicon> implements LexiconService {
+
+}

+ 25 - 0
aipt-service/src/main/java/com/diagbot/vo/ConceptUsualVO.java

@@ -0,0 +1,25 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @author: wangyu
+ * @time: 2019/5/7 10:00
+ */
+@Getter
+@Setter
+public class ConceptUsualVO {
+
+    @NotNull(message = "请输入科室id")
+    private Long deptId;
+    @NotNull(message = "请输入病人年龄")
+    private Integer age;
+    @NotNull(message = "请输入病人性别")
+    private Integer sexType;
+    @NotNull(message = "请输入标签类型")
+    private Integer type;
+}

+ 26 - 2
aipt-service/src/main/java/com/diagbot/web/ConceptController.java

@@ -1,9 +1,20 @@
 package com.diagbot.web;
 
 
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.ConceptBaseDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.facade.ConceptFacade;
+import com.diagbot.vo.ConceptUsualVO;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
-import org.springframework.stereotype.Controller;
+import javax.validation.Valid;
+import java.util.List;
 
 /**
  * <p>
@@ -13,8 +24,21 @@ import org.springframework.stereotype.Controller;
  * @author zhaops
  * @since 2019-05-06
  */
-@Controller
+@RestController
 @RequestMapping("/concept")
 public class ConceptController {
+    @Autowired
+    ConceptFacade conceptFacade;
 
+    @ApiOperation(value = "知识库标准化-常用标签——根据科室获取常用标签[by:wangyu]",
+            notes = "deptCode:科室id<br>" +
+                    "age:年龄<br>" +
+                    "sexType: 性别<br>" +
+                    "type:类型(1:症状 3:其他史 4:查体,5:化验 6:辅检 7:诊断),必填<br>")
+    @PostMapping("/getConceptUsual")
+    @SysLogger("getConceptUsual")
+    public RespDTO<List<ConceptBaseDTO>> getConceptUsual(@RequestBody @Valid ConceptUsualVO conceptUsualVO) {
+        List<ConceptBaseDTO> data = conceptFacade.getConceptUsual(conceptUsualVO);
+        return RespDTO.onSuc(data);
+    }
 }

+ 8 - 8
aipt-service/src/main/resources/mapper/ConceptMapper.xml

@@ -38,9 +38,9 @@
             AND t1.lib_name = #{startName}
         </if>
         <if test="startSex != null or startAge != null">
-            AND t2.start_id = (
+            AND t2.start_id in (
             SELECT
-            id
+            concept_id
             FROM
             kl_concept_common
             WHERE
@@ -72,9 +72,9 @@
             AND t3.lib_name = #{endName}
         </if>
         <if test="endSex != null or endAge != null">
-            AND t2.end_id = (
+            AND t2.end_id in (
             SELECT
-            id
+            concept_id
             FROM
             kl_concept_common
             WHERE
@@ -125,9 +125,9 @@
             AND t1.lib_name = #{startName}
         </if>
         <if test="startSex != null or startAge != null">
-            AND t2.start_id = (
+            AND t2.start_id in (
             SELECT
-            id
+            concept_id
             FROM
             kl_concept_common
             WHERE
@@ -159,9 +159,9 @@
             AND t3.lib_name = #{endName}
         </if>
         <if test="endSex != null or endAge != null">
-            AND t2.end_id = (
+            AND t2.end_id in (
             SELECT
-            id
+            concept_id
             FROM
             kl_concept_common
             WHERE

+ 16 - 0
aipt-service/src/main/resources/mapper/LexiconMapper.xml

@@ -0,0 +1,16 @@
+<?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.LexiconMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.Lexicon">
+        <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="name" property="name" />
+    </resultMap>
+
+</mapper>

+ 1 - 1
icss-service/src/main/java/com/diagbot/web/QuestionUsualController.java

@@ -35,7 +35,7 @@ public class QuestionUsualController {
     private QuestionUsualFacade questionUsualFacade;
 
     @ApiOperation(value = "知识库标准化-常用标签——根据科室获取常用标签[by:wangyu]",
-            notes = "deptCode:科室id<br>" +
+            notes = "deptId:科室id<br>" +
                     "age:年龄<br>" +
                     "sexType: 性别<br>" +
                     "type:类型(1:症状 3:其他史 4:查体,5:化验 6:辅检 7:诊断),必填<br>")