Quellcode durchsuchen

实现医学知识库术语服务接口的查询功能

MarkHuang vor 6 Jahren
Ursprung
Commit
46f4c19199
30 geänderte Dateien mit 823 neuen und 227 gelöschten Zeilen
  1. 76 76
      knowledge-service/src/main/java/com/diagbot/aop/SysLoggerAspect.java
  2. 63 0
      knowledge-service/src/main/java/com/diagbot/dto/ConceptDTO.java
  3. 70 0
      knowledge-service/src/main/java/com/diagbot/dto/LibraryInfoDTO.java
  4. 9 4
      knowledge-service/src/main/java/com/diagbot/dto/MedicalDTO.java
  5. 5 0
      knowledge-service/src/main/java/com/diagbot/dto/TermDTO.java
  6. 79 0
      knowledge-service/src/main/java/com/diagbot/entity/Concept.java
  7. 14 51
      knowledge-service/src/main/java/com/diagbot/entity/Information.java
  8. 74 0
      knowledge-service/src/main/java/com/diagbot/entity/InformationDetail.java
  9. 63 47
      knowledge-service/src/main/java/com/diagbot/entity/Medical.java
  10. 65 0
      knowledge-service/src/main/java/com/diagbot/facade/ConceptFacade.java
  11. 1 1
      knowledge-service/src/main/java/com/diagbot/facade/InformationFacade.java
  12. 31 0
      knowledge-service/src/main/java/com/diagbot/facade/LibraryDetailFacade.java
  13. 12 2
      knowledge-service/src/main/java/com/diagbot/facade/LibraryFacade.java
  14. 34 0
      knowledge-service/src/main/java/com/diagbot/facade/LibraryInfoFacade.java
  15. 10 7
      knowledge-service/src/main/java/com/diagbot/facade/MedicalFacade.java
  16. 23 0
      knowledge-service/src/main/java/com/diagbot/mapper/ConceptMapper.java
  17. 1 1
      knowledge-service/src/main/java/com/diagbot/mapper/InformationMapper.java
  18. 5 5
      knowledge-service/src/main/java/com/diagbot/mapper/MedicalMapper.java
  19. 18 0
      knowledge-service/src/main/java/com/diagbot/service/ConceptService.java
  20. 2 2
      knowledge-service/src/main/java/com/diagbot/service/MedicalService.java
  21. 25 0
      knowledge-service/src/main/java/com/diagbot/service/impl/ConceptServiceImpl.java
  22. 3 2
      knowledge-service/src/main/java/com/diagbot/service/impl/MedicalServiceImpl.java
  23. 39 0
      knowledge-service/src/main/java/com/diagbot/vo/InformationDetailVO.java
  24. 22 0
      knowledge-service/src/main/java/com/diagbot/vo/InformationVO.java
  25. 4 0
      knowledge-service/src/main/java/com/diagbot/vo/TermVo.java
  26. 48 0
      knowledge-service/src/main/java/com/diagbot/web/ConceptController.java
  27. 1 1
      knowledge-service/src/main/java/com/diagbot/web/LibraryController.java
  28. 19 0
      knowledge-service/src/main/resources/mapper/ConceptMapper.xml
  29. 1 1
      knowledge-service/src/main/resources/mapper/LibraryMapper.xml
  30. 6 27
      knowledge-service/src/main/resources/mapper/MedicalMapper.xml

+ 76 - 76
knowledge-service/src/main/java/com/diagbot/aop/SysLoggerAspect.java

@@ -1,76 +1,76 @@
-package com.diagbot.aop;
-
-import com.diagbot.annotation.SysLogger;
-import com.diagbot.entity.SysLog;
-import com.diagbot.enums.SysTypeEnum;
-import com.diagbot.rabbit.MySender;
-import com.diagbot.util.GsonUtil;
-import com.diagbot.util.HttpUtils;
-import com.diagbot.util.StringUtil;
-import com.diagbot.util.UserUtils;
-import org.aspectj.lang.JoinPoint;
-import org.aspectj.lang.annotation.Aspect;
-import org.aspectj.lang.annotation.Before;
-import org.aspectj.lang.annotation.Pointcut;
-import org.aspectj.lang.reflect.MethodSignature;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.lang.reflect.Method;
-import java.util.Date;
-
-/**
- * @Description: 日志拦截切面
- * @author: gaodm
- * @time: 2018/8/2 13:36
- */
-@Aspect
-@Component
-public class SysLoggerAspect {
-    @Autowired
-    private MySender mySender;
-
-    @Pointcut("@annotation(com.diagbot.annotation.SysLogger)")
-    public void loggerPointCut() {
-
-    }
-
-    @Before("loggerPointCut()")
-    public void saveSysLog(JoinPoint joinPoint) {
-        MethodSignature signature = (MethodSignature) joinPoint.getSignature();
-        Method method = signature.getMethod();
-
-        SysLog sysLog = new SysLog();
-        SysLogger sysLogger = method.getAnnotation(SysLogger.class);
-        if (sysLogger != null) {
-            //注解上的描述
-            sysLog.setOperation(sysLogger.value());
-        }
-        //请求的方法名
-        String className = joinPoint.getTarget().getClass().getName();
-        String methodName = signature.getName();
-        sysLog.setMethod(className + "." + methodName + "()");
-        //请求的参数
-        Object[] args = joinPoint.getArgs();
-        String params = "";
-        for (Object o : args) {
-            params += GsonUtil.toJson(o);
-        }
-        if (!StringUtil.isEmpty(params)) {
-            sysLog.setParams(params);
-        }
-        //设置IP地址
-        sysLog.setIp(HttpUtils.getIpAddress());
-        //用户名
-        String username = UserUtils.getCurrentPrinciple();
-        if (!StringUtil.isEmpty(username)) {
-            sysLog.setUsername(username);
-        }
-        sysLog.setGmtCreate(new Date());
-        sysLog.setSysType(SysTypeEnum.KNOWLEDGE_SERVICE.getKey());
-        //保存系统日志
-        mySender.outputLogSend(sysLog);
-    }
-
-}
-
+//package com.diagbot.aop;
+//
+//import com.diagbot.annotation.SysLogger;
+//import com.diagbot.entity.SysLog;
+//import com.diagbot.enums.SysTypeEnum;
+//import com.diagbot.rabbit.MySender;
+//import com.diagbot.util.GsonUtil;
+//import com.diagbot.util.HttpUtils;
+//import com.diagbot.util.StringUtil;
+//import com.diagbot.util.UserUtils;
+//import org.aspectj.lang.JoinPoint;
+//import org.aspectj.lang.annotation.Aspect;
+//import org.aspectj.lang.annotation.Before;
+//import org.aspectj.lang.annotation.Pointcut;
+//import org.aspectj.lang.reflect.MethodSignature;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.stereotype.Component;
+//
+//import java.lang.reflect.Method;
+//import java.util.Date;
+//
+///**
+// * @Description: 日志拦截切面
+// * @author: gaodm
+// * @time: 2018/8/2 13:36
+// */
+//@Aspect
+//@Component
+//public class SysLoggerAspect {
+//    @Autowired
+//    private MySender mySender;
+//
+//    @Pointcut("@annotation(com.diagbot.annotation.SysLogger)")
+//    public void loggerPointCut() {
+//
+//    }
+//
+//    @Before("loggerPointCut()")
+//    public void saveSysLog(JoinPoint joinPoint) {
+//        MethodSignature signature = (MethodSignature) joinPoint.getSignature();
+//        Method method = signature.getMethod();
+//
+//        SysLog sysLog = new SysLog();
+//        SysLogger sysLogger = method.getAnnotation(SysLogger.class);
+//        if (sysLogger != null) {
+//            //注解上的描述
+//            sysLog.setOperation(sysLogger.value());
+//        }
+//        //请求的方法名
+//        String className = joinPoint.getTarget().getClass().getName();
+//        String methodName = signature.getName();
+//        sysLog.setMethod(className + "." + methodName + "()");
+//        //请求的参数
+//        Object[] args = joinPoint.getArgs();
+//        String params = "";
+//        for (Object o : args) {
+//            params += GsonUtil.toJson(o);
+//        }
+//        if (!StringUtil.isEmpty(params)) {
+//            sysLog.setParams(params);
+//        }
+//        //设置IP地址
+//        sysLog.setIp(HttpUtils.getIpAddress());
+//        //用户名
+//        String username = UserUtils.getCurrentPrinciple();
+//        if (!StringUtil.isEmpty(username)) {
+//            sysLog.setUsername(username);
+//        }
+//        sysLog.setGmtCreate(new Date());
+//        sysLog.setSysType(SysTypeEnum.KNOWLEDGE_SERVICE.getKey());
+//        //保存系统日志
+//        mySender.outputLogSend(sysLog);
+//    }
+//
+//}
+//

+ 63 - 0
knowledge-service/src/main/java/com/diagbot/dto/ConceptDTO.java

@@ -0,0 +1,63 @@
+package com.diagbot.dto;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.diagbot.entity.LibraryDetail;
+import com.diagbot.entity.LibraryInfo;
+import com.diagbot.entity.Medical;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * @Description:
+ * @author: Weixuan Huang
+ * @time: 2019/1/14 17:03
+ */
+@Getter
+@Setter
+public class ConceptDTO {
+     /**
+     * 概念id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 术语id
+     */
+    private Integer libId;
+
+    /**
+     * 术语名称
+     */
+    private String name;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime gmtCreated;
+
+    /**
+     * 修改时间
+     */
+    private LocalDateTime gmtModified;
+
+    /**
+     * 术语基本信息
+     */
+    private List<LibraryInfo> libraryInfo;
+
+    /**
+     * 术语相关医学知识
+     */
+    private List<LibraryDetail> information;
+
+    /**
+     * 医学临床信息
+     */
+    private Medical medicalInfo;
+
+}

+ 70 - 0
knowledge-service/src/main/java/com/diagbot/dto/LibraryInfoDTO.java

@@ -0,0 +1,70 @@
+package com.diagbot.dto;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author Weixuan Huang
+ * @since 2019-01-30
+ */
+@Getter
+@Setter
+public class LibraryInfoDTO {
+
+    /**
+     * 主键
+     */
+    @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;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 概念id
+     */
+    private Integer conceptId;
+
+    /**
+     * 是否标准词,1:是,0:否
+     */
+    private Integer isConcept;
+
+
+}

+ 9 - 4
knowledge-service/src/main/java/com/diagbot/dto/MedicalDTO.java

@@ -14,7 +14,7 @@ public class MedicalDTO {
     /**
      * 主键
      */
-//    private long id;
+    private Integer id;
 
     /**
      * 术语名称
@@ -22,12 +22,17 @@ public class MedicalDTO {
     private String name;
 
     /**
-     * 标准类型名称
+     * 术语概念id
      */
-    private String typename;
+    private Integer concept_id;
 
     /**
-     * 类型名称
+     * 术语类型编号,对应类型库
+     */
+    private Integer typeId;
+
+    /**
+     * 术语类型
      */
     private String type;
 

+ 5 - 0
knowledge-service/src/main/java/com/diagbot/dto/TermDTO.java

@@ -47,4 +47,9 @@ public class TermDTO {
      * 医学临床信息
      */
     private List<MedicalDTO> medicalInfo;
+
+    /**
+     * 术语层级关系
+     */
+//    private List<LevelDTO> levelInfo;
 }

+ 79 - 0
knowledge-service/src/main/java/com/diagbot/entity/Concept.java

@@ -0,0 +1,79 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Weixuan Huang
+ * @since 2019-01-30
+ */
+public class Concept implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 概念id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 术语id
+     */
+    private Integer libId;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime gmtCreated;
+
+    /**
+     * 修改时间
+     */
+    private LocalDateTime gmtModified;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+    public Integer getLibId() {
+        return libId;
+    }
+
+    public void setLibId(Integer libId) {
+        this.libId = libId;
+    }
+    public LocalDateTime getGmtCreated() {
+        return gmtCreated;
+    }
+
+    public void setGmtCreated(LocalDateTime gmtCreated) {
+        this.gmtCreated = gmtCreated;
+    }
+    public LocalDateTime getGmtModified() {
+        return gmtModified;
+    }
+
+    public void setGmtModified(LocalDateTime gmtModified) {
+        this.gmtModified = gmtModified;
+    }
+
+    @Override
+    public String toString() {
+        return "Concept{" +
+        "id=" + id +
+        ", libId=" + libId +
+        ", gmtCreated=" + gmtCreated +
+        ", gmtModified=" + gmtModified +
+        "}";
+    }
+}

+ 14 - 51
knowledge-service/src/main/java/com/diagbot/entity/Information.java

@@ -17,75 +17,38 @@ public class Information implements Serializable {
     private static final long serialVersionUID = 1L;
 
     /**
-     * 内容id
+     * 主键
      */
-//    @TableId(value = "id", type = IdType.AUTO)
-//    private Integer id;
-
-    /**
-     * 术语名称
-     */
-    private String name;
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
 
     /**
      * 对应术语id
      */
-    private Integer libId;
-
-    /**
-     * 标题
-     */
-    private String title;
-
-    /**
-     * 内容
-     */
-    private String content;
+    private Integer lib_id;
 
-//    public Integer getId() {
-//        return id;
-//    }
 
-//    public void setId(Integer id) {
-//        this.id = id;
-//    }
-    public String getName() {
-        return name;
+    public Integer getId() {
+        return id;
     }
 
-    public void setName(String name) {
-        this.name = name;
-    }
-    public Integer getLibId() {
-        return libId;
+    public void setId(Integer id) {
+        this.id = id;
     }
 
-    public void setLibId(Integer libId) {
-        this.libId = libId;
-    }
-    public String getTitle() {
-        return title;
-    }
-
-    public void setTitle(String title) {
-        this.title = title;
-    }
-    public String getContent() {
-        return content;
+    public Integer getLib_id() {
+        return lib_id;
     }
 
-    public void setContent(String content) {
-        this.content = content;
+    public void setLib_id(Integer lib_id) {
+        this.lib_id = lib_id;
     }
 
     @Override
     public String toString() {
         return "Information{" +
-//        "id=" + id +
-        ", name=" + name +
-        ", libId=" + libId +
-        ", title=" + title +
-        ", content=" + content +
+        "id=" + id +
+        ", libId=" + lib_id +
         "}";
     }
 }

+ 74 - 0
knowledge-service/src/main/java/com/diagbot/entity/InformationDetail.java

@@ -0,0 +1,74 @@
+package com.diagbot.entity;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Weixuan Huang
+ * @since 2019-01-14
+ */
+public class InformationDetail implements Serializable {
+
+    /**
+     * 内容id
+     */
+    private Integer id;
+
+    /**
+     * 术语概念id
+     */
+    private Integer concept_id;
+
+    /**
+     * 标题
+     */
+    private String title;
+
+    /**
+     * 内容
+     */
+    private String content;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getConcept_id() {
+        return concept_id;
+    }
+
+    public void setConcept_id(Integer concept_id) {
+        this.concept_id = concept_id;
+    }
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    @Override
+    public String toString() {
+        return "Information{" +
+                "id=" + id +
+                ", conceptId=" + concept_id +
+                ", title=" + title +
+                ", content=" + content +
+                "}";
+    }
+}

+ 63 - 47
knowledge-service/src/main/java/com/diagbot/entity/Medical.java

@@ -10,24 +10,29 @@ import java.io.Serializable;
  * </p>
  *
  * @author Weixuan Huang
- * @since 2019-01-16
+ * @since 2019-01-31
  */
 public class Medical implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
-//    @TableId(value = "id", type = IdType.AUTO)
-//    private Integer id;
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
 
     /**
      * 术语名称
      */
-    private String name;
+//    private String name;
 
     /**
-     * 标准类型名称
+     * 术语概念id
      */
-    private String typename;
+    private Integer concept_id;
+
+    /**
+     * 术语类型编号,对应类型库
+     */
+    private Integer typeId;
 
     /**
      * 术语类型
@@ -42,12 +47,12 @@ public class Medical implements Serializable {
     /**
      * 术语小类名称
      */
-    private String cateName;
+//    private String cateName;
 
     /**
      * 术语类组
      */
-    private String group;
+//    private String group;
 
     /**
      * 性别:1:男, 2:女, 3:通用
@@ -94,30 +99,41 @@ public class Medical implements Serializable {
      */
     private String note;
 
-//    public Integer getId() {
-//        return id;
-//    }
+    public Integer getId() {
+        return id;
+    }
 
-//    public void setId(Integer id) {
-//        this.id = id;
-//    }
-    public String getName() {
-        return name;
+    public void setId(Integer id) {
+        this.id = id;
     }
+//    public String getName() {
+//        return name;
+//    }
+//
+//    public void setName(String name) {
+//        this.name = name;
+//    }
+//    public Integer getConcept_id() {
+//        return concept_id;
+//    }
 
-    public void setName(String name) {
-        this.name = name;
+    public void setConcept_id(Integer concept_id) {
+        this.concept_id = concept_id;
     }
-    public String getTypename() {
-        return typename;
+    public Integer getTypeId() {
+        return typeId;
     }
 
-    public void setTypename(String typename) {
-        this.typename = typename;
+    public void setTypeId(Integer typeId) {
+        this.typeId = typeId;
+    }
+    public String getType() {
+        return type;
     }
-    public String getType() { return type; }
 
-    public void setType(String type) { this.type = type; }
+    public void setType(String type) {
+        this.type = type;
+    }
     public String getStdName() {
         return stdName;
     }
@@ -125,23 +141,23 @@ public class Medical implements Serializable {
     public void setStdName(String stdName) {
         this.stdName = stdName;
     }
-    public String getCateName() {
-        return cateName;
-    }
-
-    public void setCateName(String cateName) {
-        this.cateName = cateName;
-    }
-    public String getGroup() {
-        return group;
-    }
-
-    public void setGroup(String group) {
-        this.group = group;
-    }
-    public String getGender() {
-        return gender;
-    }
+//    public String getCateName() {
+//        return cateName;
+//    }
+//
+//    public void setCateName(String cateName) {
+//        this.cateName = cateName;
+//    }
+//    public String getGroup() {
+//        return group;
+//    }
+//
+//    public void setGroup(String group) {
+//        this.group = group;
+//    }
+//    public String getGender() {
+//        return gender;
+//    }
 
     public void setGender(String gender) {
         this.gender = gender;
@@ -205,14 +221,14 @@ public class Medical implements Serializable {
 
     @Override
     public String toString() {
-        return "Term{" +
-//        "id=" + id +
-        ", name=" + name +
-        ", typename=" + typename +
+        return "Medical{" +
+        "id=" + id +
+//        ", name=" + name +
+        ", typeId=" + typeId +
         ", type=" + type +
         ", stdName=" + stdName +
-        ", cateName=" + cateName +
-        ", group=" + group +
+//        ", cateName=" + cateName +
+//        ", group=" + group +
         ", gender=" + gender +
         ", minAge=" + minAge +
         ", maxAge=" + maxAge +

+ 65 - 0
knowledge-service/src/main/java/com/diagbot/facade/ConceptFacade.java

@@ -0,0 +1,65 @@
+package com.diagbot.facade;
+
+import com.diagbot.dto.ConceptDTO;
+import com.diagbot.entity.LibraryInfo;
+import java.util.List;
+import com.diagbot.service.impl.ConceptServiceImpl;
+import com.diagbot.vo.TermVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.RequestBody;
+
+/**
+ * @Description: 术语查询业务层
+ * @author: Weixuan Huang
+ * @time: 2019/1/14 16:17
+ */
+@Component
+public class ConceptFacade extends ConceptServiceImpl {
+
+    @Autowired
+    private LibraryInfoFacade libraryinfoFacade;
+    @Autowired
+    private LibraryDetailFacade libraryDetailFacade;
+    @Autowired
+    private MedicalFacade medicalFacade;
+
+
+    /**
+     * 获取医学术语信息
+     *
+     * @param termvo
+     * @return TermDTO
+     */
+    public ConceptDTO getConceptInfo(@RequestBody TermVo termvo) {
+
+        ConceptDTO conceptDTO = getConcept(termvo);
+        // 获取与医学术语的基本信息
+        termvo.setId(conceptDTO.getLibId());
+        termvo.setConcept_id(conceptDTO.getId());
+        List<LibraryInfo> libraryInfo = libraryinfoFacade.getLibraryInfor(termvo);
+        for (LibraryInfo libinfo : libraryInfo) {
+            if (libinfo.getIsConcept() != null && libinfo.getIsConcept() == 1) {
+                conceptDTO.setName(libinfo.getName());
+            }
+        }
+        conceptDTO.setLibraryInfo(libraryInfo);
+
+        // 获取与术语相关的医学知识
+        conceptDTO.setInformation(libraryDetailFacade.getLibraryDetails(termvo));
+        // 获取与术语相关的临床医学信息
+        conceptDTO.setMedicalInfo(medicalFacade.getMedicalInfo(termvo));
+//        // 获取术语的所有上级信息
+//        List<LevelDTO> levelDTOList = levelFacade.getInfor(libraryDTO);
+//        for (LevelDTO item : levelDTOList) {
+//            while (item.getUplevel() != null) {
+//                item.setUplevel_val(getOne("id", item.getUplevel().toString()).getName());
+//                item.setGrpId_val(getOne("id", item.getGrpId().toString()).getName());
+//            }
+//        }
+//        termDTO.setLevelInfo(levelDTOList);
+
+        return conceptDTO;
+    }
+
+}

+ 1 - 1
knowledge-service/src/main/java/com/diagbot/facade/InformationFacade.java

@@ -18,7 +18,7 @@ public class InformationFacade extends InformationServiceImpl {
     /**
      * 获取医学术语知识
      *
-     * @param LibraryDTO
+     * @param libraryDTO
      * @result InforDTO
      */
     public List<InforDTO> getInfor(LibraryDTO libraryDTO) {

+ 31 - 0
knowledge-service/src/main/java/com/diagbot/facade/LibraryDetailFacade.java

@@ -0,0 +1,31 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.entity.LibraryDetail;
+import com.diagbot.service.impl.LibraryDetailServiceImpl;
+import com.diagbot.vo.TermVo;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * @Description: 术语基本信息查询业务层
+ * @author: Weixuan Huang
+ * @time: 2019/1/16 14:17
+ */
+@Component
+public class LibraryDetailFacade extends LibraryDetailServiceImpl {
+
+    /**
+     * 获取医学术语知识
+     *
+     * @param termVo
+     * @result LibraryDetail
+     */
+    public List<LibraryDetail> getLibraryDetails(TermVo termVo) {
+        QueryWrapper<LibraryDetail> wrapper = new QueryWrapper();
+        wrapper.eq("concept_id", termVo.getConcept_id());
+        List<LibraryDetail> librarydetail = this.list(wrapper);
+        return librarydetail;
+    }
+}

+ 12 - 2
knowledge-service/src/main/java/com/diagbot/facade/LibraryFacade.java

@@ -25,7 +25,7 @@ public class LibraryFacade extends LibraryServiceImpl {
     /**
      * 获取医学术语信息
      *
-     * @param TermVo
+     * @param termvo
      * @return TermDTO
      */
     public TermDTO getTermInfo(@RequestBody TermVo termvo) {
@@ -37,7 +37,16 @@ public class LibraryFacade extends LibraryServiceImpl {
         // 获取与术语相关的医学知识
         termDTO.setInformation(informationFacade.getInfor(libraryDTO));
         // 获取与术语相关的临床医学信息
-        termDTO.setMedicalInfo(medicalFacade.getInfor(libraryDTO));
+//        termDTO.setMedicalInfo(medicalFacade.getInfor(libraryDTO));
+//        // 获取术语的所有上级信息
+//        List<LevelDTO> levelDTOList = levelFacade.getInfor(libraryDTO);
+//        for (LevelDTO item : levelDTOList) {
+//            while (item.getUplevel() != null) {
+//                item.setUplevel_val(getOne("id", item.getUplevel().toString()).getName());
+//                item.setGrpId_val(getOne("id", item.getGrpId().toString()).getName());
+//            }
+//        }
+//        termDTO.setLevelInfo(levelDTOList);
 
         return termDTO;
     }
@@ -53,4 +62,5 @@ public class LibraryFacade extends LibraryServiceImpl {
 
         return  libraryDTO;
     }
+
 }

+ 34 - 0
knowledge-service/src/main/java/com/diagbot/facade/LibraryInfoFacade.java

@@ -0,0 +1,34 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.LibraryInfoDTO;
+import com.diagbot.dto.TermDTO;
+import com.diagbot.entity.LibraryInfo;
+import com.diagbot.service.impl.LibraryInfoServiceImpl;
+import com.diagbot.vo.TermVo;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * @Description: 术语基本信息查询业务层
+ * @author: Weixuan Huang
+ * @time: 2019/1/16 14:17
+ */
+@Component
+public class LibraryInfoFacade extends LibraryInfoServiceImpl {
+
+    /**
+     * 获取医学术语基本信息
+     *
+     * @param termVo
+     * @result LibraryInfo
+     */
+    public List<LibraryInfo> getLibraryInfor(TermVo termVo) {
+        QueryWrapper<LibraryInfo> wrapper = new QueryWrapper();
+        wrapper.eq("concept_id", termVo.getConcept_id());
+        List<LibraryInfo> libraryinfor = this.list(wrapper);
+        return libraryinfor;
+    }
+}

+ 10 - 7
knowledge-service/src/main/java/com/diagbot/facade/MedicalFacade.java

@@ -1,8 +1,9 @@
 package com.diagbot.facade;
 
-import com.diagbot.dto.LibraryDTO;
-import com.diagbot.dto.MedicalDTO;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.entity.Medical;
 import com.diagbot.service.impl.MedicalServiceImpl;
+import com.diagbot.vo.TermVo;
 import org.springframework.stereotype.Component;
 
 import java.util.List;
@@ -18,11 +19,13 @@ public class MedicalFacade extends MedicalServiceImpl {
     /**
      * 获取医学术语知识
      *
-     * @param LibraryDTO
-     * @result MedicalDTO
+     * @param termVo
+     * @result Medical
      */
-    public List<MedicalDTO> getInfor(LibraryDTO libraryDTO) {
-        List<MedicalDTO> medicalDTO = getMedicalInfo(libraryDTO);
-        return medicalDTO;
+    public Medical getMedicalInfo(TermVo termVo) {
+        QueryWrapper<Medical> wrapper = new QueryWrapper<>();
+        wrapper.eq("concept_id", termVo.getConcept_id());
+        Medical medical = this.getOne(wrapper);
+        return medical;
     }
 }

+ 23 - 0
knowledge-service/src/main/java/com/diagbot/mapper/ConceptMapper.java

@@ -0,0 +1,23 @@
+package com.diagbot.mapper;
+
+import com.diagbot.dto.ConceptDTO;
+import com.diagbot.entity.Concept;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.vo.TermVo;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author Weixuan Huang
+ * @since 2019-01-30
+ */
+public interface ConceptMapper extends BaseMapper<Concept> {
+    /**
+     * 获取术语概念信息
+     * @param termVo
+     * @return ConceptDTO
+     */
+    public ConceptDTO getConcept(TermVo termVo);
+}

+ 1 - 1
knowledge-service/src/main/java/com/diagbot/mapper/InformationMapper.java

@@ -18,7 +18,7 @@ import java.util.List;
 public interface InformationMapper extends BaseMapper<Information> {
     /**
      * 获取术语医学知识信息
-     * @param LibraryDTO
+     * @param libraryDTO
      * @return InforDTO
      */
     public List<InforDTO> getInformation(LibraryDTO libraryDTO);

+ 5 - 5
knowledge-service/src/main/java/com/diagbot/mapper/MedicalMapper.java

@@ -1,9 +1,9 @@
 package com.diagbot.mapper;
 
-import com.diagbot.dto.LibraryDTO;
-import com.diagbot.dto.MedicalDTO;
+
 import com.diagbot.entity.Medical;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.vo.TermVo;
 
 import java.util.List;
 
@@ -19,8 +19,8 @@ public interface MedicalMapper extends BaseMapper<Medical> {
     /**
      * 获取术语临床医学信息
      *
-     * @param LibraryDTO
-     * @result MedicalDTO
+     * @param termVo
+     * @result Medical
      */
-    public List<MedicalDTO> getMedicalInfo(LibraryDTO libraryDTO);
+    public Medical getMedicalInfo(TermVo termVo);
 }

+ 18 - 0
knowledge-service/src/main/java/com/diagbot/service/ConceptService.java

@@ -0,0 +1,18 @@
+package com.diagbot.service;
+
+import com.diagbot.dto.ConceptDTO;
+import com.diagbot.entity.Concept;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.vo.TermVo;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author Weixuan Huang
+ * @since 2019-01-30
+ */
+public interface ConceptService extends IService<Concept> {
+    public ConceptDTO getConcept(TermVo termVo);
+}

+ 2 - 2
knowledge-service/src/main/java/com/diagbot/service/MedicalService.java

@@ -1,9 +1,9 @@
 package com.diagbot.service;
 
-import com.diagbot.dto.LibraryDTO;
 import com.diagbot.dto.MedicalDTO;
 import com.diagbot.entity.Medical;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.vo.TermVo;
 
 import java.util.List;
 
@@ -16,5 +16,5 @@ import java.util.List;
  * @since 2019-01-16
  */
 public interface MedicalService extends IService<Medical> {
-    public List<MedicalDTO> getMedicalInfo(LibraryDTO libraryDTO);
+    public Medical getMedicalInfo(TermVo termVo);
 }

+ 25 - 0
knowledge-service/src/main/java/com/diagbot/service/impl/ConceptServiceImpl.java

@@ -0,0 +1,25 @@
+package com.diagbot.service.impl;
+
+import com.diagbot.dto.ConceptDTO;
+import com.diagbot.entity.Concept;
+import com.diagbot.mapper.ConceptMapper;
+import com.diagbot.service.ConceptService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.vo.TermVo;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author Weixuan Huang
+ * @since 2019-01-30
+ */
+@Service
+public class ConceptServiceImpl extends ServiceImpl<ConceptMapper, Concept> implements ConceptService {
+    @Override
+    public ConceptDTO getConcept(TermVo termVo) {
+        return baseMapper.getConcept(termVo);
+    }
+}

+ 3 - 2
knowledge-service/src/main/java/com/diagbot/service/impl/MedicalServiceImpl.java

@@ -6,6 +6,7 @@ import com.diagbot.entity.Medical;
 import com.diagbot.mapper.MedicalMapper;
 import com.diagbot.service.MedicalService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.vo.TermVo;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -20,7 +21,7 @@ import java.util.List;
  */
 @Service
 public class MedicalServiceImpl extends ServiceImpl<MedicalMapper, Medical> implements MedicalService {
-    public List<MedicalDTO> getMedicalInfo(LibraryDTO libraryDTO) {
-        return baseMapper.getMedicalInfo(libraryDTO);
+    public Medical getMedicalInfo(TermVo termVo) {
+        return baseMapper.getMedicalInfo(termVo);
     }
 }

+ 39 - 0
knowledge-service/src/main/java/com/diagbot/vo/InformationDetailVO.java

@@ -0,0 +1,39 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2018/11/26 16:47
+ */
+@Getter
+@Setter
+public class InformationDetailVO {
+    /**
+     * 提示信息
+     */
+    private String content;
+    /**
+     * 提示信息-纯文本
+     */
+    private String text;
+    /**
+     * 标题
+     */
+    private String title;
+    /**
+     * 排序号
+     */
+    private Integer orderNo;
+    /**
+     * 显示位置(多选):1-推送展示,2-更多展示,3-一般治疗展示,4-手术治疗展示
+     */
+    private String position;
+
+    /**
+     * 是否诊断依据(1-是,0-否)
+     */
+    private Integer isReason;
+}

+ 22 - 0
knowledge-service/src/main/java/com/diagbot/vo/InformationVO.java

@@ -0,0 +1,22 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import java.util.List;
+
+/**
+ * @Description:术语信息保存参数
+ * @Author:Weixuan Huang
+ * @time: 2019/01/30 09:49
+ */
+@Getter
+@Setter
+public class InformationVO {
+    private Long id;
+    @NotBlank(message = "请输入名称")
+    private String name;
+    private String remark;
+    private List<InformationDetailVO> detailVOList;
+}

+ 4 - 0
knowledge-service/src/main/java/com/diagbot/vo/TermVo.java

@@ -15,4 +15,8 @@ import javax.validation.constraints.NotNull;
 public class TermVo {
     @NotNull(message="请输入医学术语")
     private String term;
+
+    private int id;
+
+    private int concept_id;
 }

+ 48 - 0
knowledge-service/src/main/java/com/diagbot/web/ConceptController.java

@@ -0,0 +1,48 @@
+package com.diagbot.web;
+
+
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.ConceptDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.TermDTO;
+import com.diagbot.facade.ConceptFacade;
+import com.diagbot.vo.TermVo;
+import io.swagger.annotations.Api;
+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.stereotype.Controller;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author Weixuan Huang
+ * @since 2019-01-30
+ */
+@RestController
+@RequestMapping("/concept")
+@Api(value = "医学标准术语API", tags = { "医学标准术语API" })
+
+public class ConceptController {
+    @Autowired
+    private ConceptFacade conceptFacade;
+
+    @ApiOperation(value = "术语信息查询",
+            notes = "Term:术语名称,必填<br>")
+    @PostMapping("/getConceptInfo")
+    @SysLogger("getConceptInfo")
+    public RespDTO<TermDTO> getConceptInfo(@Valid @RequestBody TermVo termvo) {
+        ConceptDTO data = conceptFacade.getConceptInfo(termvo);
+
+        return RespDTO.onSuc(data);
+    }
+
+}

+ 1 - 1
knowledge-service/src/main/java/com/diagbot/web/LibraryController.java

@@ -5,7 +5,7 @@ import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.LibraryDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.TermDTO;
-import com.diagbot.entity.Library;
+import com.diagbot.entity.LibraryInfo;
 import com.diagbot.facade.LibraryFacade;
 import com.diagbot.vo.TermVo;
 import io.swagger.annotations.Api;

+ 19 - 0
knowledge-service/src/main/resources/mapper/ConceptMapper.xml

@@ -0,0 +1,19 @@
+<?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.ConceptMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.Concept">
+        <id column="id" property="id" />
+        <result column="lib_id" property="libId" />
+        <result column="gmt_created" property="gmtCreated" />
+        <result column="gmt_modified" property="gmtModified" />
+    </resultMap>
+
+    <select id="getConcept" parameterType="com.diagbot.vo.TermVo" resultType="com.diagbot.dto.ConceptDTO">
+        SELECT
+        a.id, a.lib_id, a.gmt_created, a.gmt_modified
+        FROM concept a, library_info b
+        WHERE a.id = b.concept_id and b.name = #{term}
+    </select>
+</mapper>

+ 1 - 1
knowledge-service/src/main/resources/mapper/LibraryMapper.xml

@@ -15,7 +15,7 @@
         a.id,
         a.name as term,
         a.synony as synonymous
-        FROM library a
+        FROM library_info a
         LEFT JOIN lexicon b on a.type = b.id
         WHERE a.name = #{term}
     </select>

+ 6 - 27
knowledge-service/src/main/resources/mapper/MedicalMapper.xml

@@ -5,43 +5,22 @@
     <!-- 通用查询映射结果 -->
     <resultMap id="BaseResultMap" type="com.diagbot.entity.Medical">
         <id column="id" property="id" />
-        <result column="name" property="name" />
+        <!--<result column="name" property="name" />-->
+        <result column="concept_id" property="concept_id" />
+        <result column="type_id" property="typeId" />
         <result column="type" property="type" />
         <result column="std_name" property="stdName" />
-        <result column="cate_name" property="cateName" />
-        <result column="group" property="group" />
+        <!--<result column="cate_name" property="cateName" />-->
+        <!--<result column="group" property="group" />-->
         <result column="gender" property="gender" />
         <result column="min_age" property="minAge" />
         <result column="max_age" property="maxAge" />
         <result column="bodypart" property="bodypart" />
         <result column="sub_bodypart" property="subBodypart" />
         <result column="display_order" property="displayOrder" />
+        <result column="dept" property="dept" />
         <result column="code" property="code" />
         <result column="note" property="note" />
     </resultMap>
 
-    <select id="getMedicalInfo" parameterType="com.diagbot.dto.LibraryDTO" resultType="com.diagbot.dto.MedicalDTO">
-        SELECT
-        a.id,
-        a.name,
-        c.name as typename,
-        a.type,
-        a.std_name,
-        a.cate_name,
-        a.group,
-        a.gender,
-        a.min_age,
-        a.max_age,
-        a.bodypart,
-        a.sub_bodypart,
-        a.display_order,
-        a.dept,
-        a.code,
-        a.note
-        FROM term a
-        LEFT JOIN library b on a.name = b.name
-        LEFT JOIN lexicon c on c.id = a.type_id
-        WHERE b.name = #{term}
-    </select>
-
 </mapper>