Просмотр исходного кода

经典病例后台功能添加

xiewei 10 месяцев назад
Родитель
Сommit
fc8fe91611

+ 36 - 0
cdssman-service/src/main/java/com/diagbot/client/CdssCoreClient.java

@@ -29,6 +29,15 @@ public interface CdssCoreClient {
     @PostMapping("/retrieval/staticKnowledgeIndex")
     RespDTO<List<StaticKnowledgeIndexDTO>> staticKnowledgeIndex(@RequestBody @Valid StaticKnowledgeIndexVO staticKnowledgeIndexVO);
 
+    /**
+     * 经典病例检索
+     *
+     * @param staticKnowledgeIndexVO
+     * @return
+     */
+    @PostMapping("/retrieval/classicCaseIndex")
+    RespDTO<List<ClassicCaseIndexDTO>> classicCaseIndex(@RequestBody @Valid StaticKnowledgeIndexVO staticKnowledgeIndexVO);
+
     /**
      * 更新是否有静态知识状态
      *
@@ -83,6 +92,15 @@ public interface CdssCoreClient {
     @PostMapping("/kl/conceptStatic/getPage")
     RespDTO<Page<KlConceptStaticDTO>> getPage(@Valid @RequestBody KlConceptStaticPageVO klConceptStaticPageVO);
 
+    /**
+     * 分页查询
+     *
+     * @param klClassicCasePageVO
+     * @return
+     */
+    @PostMapping("/kl/conceptStatic/getClassicCase")
+    RespDTO<Page<KlClassicCaseDTO>> getClassicCase(@Valid @RequestBody KlClassicCasePageVO klClassicCasePageVO);
+
     /**
      * 保存静态知识
      *
@@ -92,6 +110,15 @@ public interface CdssCoreClient {
     @PostMapping("/kl/conceptStatic/saveOrUpdateRecord")
     RespDTO<Boolean> saveOrUpdateRecord(@Valid @RequestBody KlConceptStaticVO klConceptStaticVO);
 
+    /**
+     * 保存经典病例
+     *
+     * @param klClassicCaseVO
+     * @return
+     */
+    @PostMapping("/kl/conceptStatic/saveOrUpdateCase")
+    RespDTO<Boolean> saveOrUpdateCase(@Valid @RequestBody KlClassicCaseVO klClassicCaseVO);
+
     /**
      * 静态知识启用禁用
      *
@@ -101,6 +128,15 @@ public interface CdssCoreClient {
     @PostMapping("/kl/conceptStatic/changeStatus")
     RespDTO<Boolean> changeStatus(@Valid @RequestBody ChangeStatusVO changeStatusVO);
 
+    /**
+     * 经典病例启用禁用
+     *
+     * @param changeStatusVO
+     * @return
+     */
+    @PostMapping("/kl/conceptStatic/changeCaseStatus")
+    RespDTO<Boolean> changeCaseStatus(@Valid @RequestBody ChangeStatusVO changeStatusVO);
+
     /**
      * 根据id获取静态知识
      *

+ 48 - 0
cdssman-service/src/main/java/com/diagbot/client/hystrix/CdssCoreHystrix.java

@@ -33,6 +33,18 @@ public class CdssCoreHystrix implements CdssCoreClient {
         return null;
     }
 
+    /**
+     * 经典病例检索
+     *
+     * @param staticKnowledgeIndexVO
+     * @return
+     */
+    @Override
+    public RespDTO<List<ClassicCaseIndexDTO>> classicCaseIndex(@RequestBody @Valid StaticKnowledgeIndexVO staticKnowledgeIndexVO) {
+        log.error("【hystrix】调用{}异常", "classicCaseIndex");
+        return null;
+    }
+
     /**
      * 更新是否有静态知识状态
      *
@@ -105,6 +117,18 @@ public class CdssCoreHystrix implements CdssCoreClient {
         return null;
     }
 
+    /**
+     * 经典病例分页查询
+     *
+     * @param klClassicCasePageVO
+     * @return
+     */
+    @Override
+    public RespDTO<Page<KlClassicCaseDTO>> getClassicCase(@Valid @RequestBody KlClassicCasePageVO klClassicCasePageVO) {
+        log.error("【hystrix】调用{}异常", "getClassicCase");
+        return null;
+    }
+
     /**
      * 保存静态知识
      *
@@ -117,6 +141,18 @@ public class CdssCoreHystrix implements CdssCoreClient {
         return null;
     }
 
+    /**
+     * 保存经典病例
+     *
+     * @param klClassicCaseVO
+     * @return
+     */
+    @Override
+    public RespDTO<Boolean> saveOrUpdateCase(@Valid @RequestBody KlClassicCaseVO klClassicCaseVO) {
+        log.error("【hystrix】调用{}异常", "saveOrUpdateCase");
+        return null;
+    }
+
     /**
      * 静态知识启用禁用
      *
@@ -129,6 +165,18 @@ public class CdssCoreHystrix implements CdssCoreClient {
         return null;
     }
 
+    /**
+     * 经典病例启用禁用
+     *
+     * @param changeStatusVO
+     * @return
+     */
+    @Override
+    public RespDTO<Boolean> changeCaseStatus(@Valid @RequestBody ChangeStatusVO changeStatusVO) {
+        log.error("【hystrix】调用{}异常", "changeCaseStatus");
+        return null;
+    }
+
     /**
      * 根据id获取静态知识
      *

+ 96 - 6
cdssman-service/src/main/java/com/diagbot/facade/KlConceptStaticFacade.java

@@ -17,12 +17,7 @@ import com.diagbot.service.impl.KlConceptStaticServiceImpl;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.RespDTOUtil;
 import com.diagbot.util.UserUtils;
-import com.diagbot.vo.ChangeStatusVO;
-import com.diagbot.vo.IdVO;
-import com.diagbot.vo.KlConceptStaticPageVO;
-import com.diagbot.vo.KlConceptStaticVO;
-import com.diagbot.vo.StaticKnowledgeIndexVO;
-import com.diagbot.vo.StaticKnowledgeVO;
+import com.diagbot.vo.*;
 import com.google.common.collect.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -70,6 +65,27 @@ public class KlConceptStaticFacade extends KlConceptStaticServiceImpl {
         return retList;
     }
 
+    /**
+     * 经典病例检索
+     *
+     * @param staticKnowledgeIndexVO
+     * @return
+     */
+    public List<ClassicCaseIndexDTO> classicCaseIndex(StaticKnowledgeIndexVO staticKnowledgeIndexVO) {
+        List<ClassicCaseIndexDTO> retList = Lists.newLinkedList();
+
+        RespDTO<List<ClassicCaseIndexDTO>> respDTO = cdssCoreClient.classicCaseIndex(staticKnowledgeIndexVO);
+        if (RespDTOUtil.respIsOK(respDTO)) {
+            retList = respDTO.data;
+        } else {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, respDTO.msg);
+        }
+
+        if (staticKnowledgeIndexVO.getHasInfo() != null && staticKnowledgeIndexVO.getHasInfo().equals(1)) {
+            retList = retList.stream().filter(i -> i.getStatus().equals(1)).collect(Collectors.toList());
+        }
+        return retList;
+    }
 
     /**
      * 获取静态知识
@@ -123,6 +139,40 @@ public class KlConceptStaticFacade extends KlConceptStaticServiceImpl {
         return page;
     }
 
+    /**
+     * 经典病例分页查询
+     *
+     * @param klClassicCasePageVO
+     * @return
+     */
+    public IPage<KlClassicCaseDTO> getClassicCase(KlClassicCasePageVO klClassicCasePageVO) {
+        Page<KlClassicCaseDTO> page = null;
+        RespDTO<Page<KlClassicCaseDTO>> respDTO = cdssCoreClient.getClassicCase(klClassicCasePageVO);
+        if (RespDTOUtil.respIsOK(respDTO)) {
+            page = respDTO.data;
+        } else {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, respDTO.msg);
+        }
+        List<KlClassicCaseDTO> records = page.getRecords();
+        List<String> userIds = records.stream().map(KlClassicCaseDTO::getModifier)
+                .distinct()
+                .collect(Collectors.toList());
+        RespDTO<Map<String, String>> userRespDTO = userServiceClient.getUserInfoByIds(userIds);
+        if (RespDTOUtil.respIsNG(userRespDTO)) {
+            return page;
+        }
+        Map<String, String> userMap = userRespDTO.data;
+        records.forEach(record -> {
+            if (userMap.containsKey(record.getModifier())) {
+                record.setModifier(userMap.get(record.getModifier()));
+            } else {
+                record.setModifier("");
+            }
+        });
+        page.setRecords(records);
+        return page;
+    }
+
     /**
      * 保存记录(新增or修改)
      *
@@ -143,6 +193,26 @@ public class KlConceptStaticFacade extends KlConceptStaticServiceImpl {
         return success;
     }
 
+    /**
+     * 保存病例(新增or修改)
+     *
+     * @param klClassicCaseVO
+     * @return
+     */
+    public Boolean saveOrUpdateCase(KlClassicCaseVO klClassicCaseVO) {
+        String userId = UserUtils.getCurrentPrincipleID();
+        klClassicCaseVO.setUserId(Long.valueOf(userId));
+
+        Boolean success = false;
+        RespDTO<Boolean> respDTO = cdssCoreClient.saveOrUpdateCase(klClassicCaseVO);
+        if (RespDTOUtil.respIsOK(respDTO)) {
+            success = respDTO.data;
+        } else {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, respDTO.msg);
+        }
+        return success;
+    }
+
     /**
      * 启用禁用
      *
@@ -163,6 +233,26 @@ public class KlConceptStaticFacade extends KlConceptStaticServiceImpl {
         return success;
     }
 
+    /**
+     * 经典病例启用禁用
+     *
+     * @param changeStatusVO
+     * @return
+     */
+    public Boolean changeCaseStatus(ChangeStatusVO changeStatusVO) {
+        String userId = UserUtils.getCurrentPrincipleID();
+        changeStatusVO.setUserId(Long.valueOf(userId));
+
+        Boolean success = false;
+        RespDTO<Boolean> respDTO = cdssCoreClient.changeCaseStatus(changeStatusVO);
+        if (RespDTOUtil.respIsOK(respDTO)) {
+            success = respDTO.data;
+        } else {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, respDTO.msg);
+        }
+        return success;
+    }
+
     /**
      * 根据术语id获取静态信息
      *

+ 53 - 9
cdssman-service/src/main/java/com/diagbot/web/ConceptInfoController.java

@@ -3,16 +3,9 @@ package com.diagbot.web;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.annotation.SysLogger;
-import com.diagbot.dto.KlClassicCaseDTO;
-import com.diagbot.dto.KlConceptStaticDTO;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.dto.StaticKnowledgeIndexDTO;
+import com.diagbot.dto.*;
 import com.diagbot.facade.KlConceptStaticFacade;
-import com.diagbot.vo.ChangeStatusVO;
-import com.diagbot.vo.IdVO;
-import com.diagbot.vo.KlConceptStaticPageVO;
-import com.diagbot.vo.KlConceptStaticVO;
-import com.diagbot.vo.StaticKnowledgeIndexVO;
+import com.diagbot.vo.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -53,6 +46,18 @@ public class ConceptInfoController {
         return RespDTO.onSuc(data);
     }
 
+
+    @ApiOperation(value = "医学术语检索-新增经典病例",
+            notes = "types: 类型:11-经典病例 <br>" +
+                    "inputStr: 检索内容<br>")
+    @PostMapping("/classicCaseIndexWithoutInfo")
+    @SysLogger("classicCaseIndexWithoutInfo")
+    public RespDTO<List<ClassicCaseIndexDTO>> classicCaseIndexWithoutInfo(@Valid @RequestBody StaticKnowledgeIndexVO staticKnowledgeIndexVO) {
+        staticKnowledgeIndexVO.setHasInfo(0);
+        List<ClassicCaseIndexDTO> data = klConceptStaticFacade.classicCaseIndex(staticKnowledgeIndexVO);
+        return RespDTO.onSuc(data);
+    }
+
     @ApiOperation(value = "获取静态知识列表[zhaops]",
             notes = "type: 类型:1-诊断、2-药品、3-检验套餐、4-检验明细、5-检查、6-手术和操作、8-量表、9-护理、10-政策法规 <br>" +
                     "name: 术语名称<br>" +
@@ -64,6 +69,17 @@ public class ConceptInfoController {
         return RespDTO.onSuc(data);
     }
 
+    @ApiOperation(value = "获取经典病例列表",
+            notes = "type: 类型:11经典病例 <br>" +
+                    "name: 术语名称<br>" +
+                    "status: 启用状态:1-启用、0-禁用<br>")
+    @PostMapping("/getClassicCase")
+    @SysLogger("getClassicCase")
+    public RespDTO<IPage<KlClassicCaseDTO>> getClassicCase(@Valid @RequestBody KlClassicCasePageVO klClassicCasePageVO) {
+        IPage<KlClassicCaseDTO> data = klConceptStaticFacade.getClassicCase(klClassicCasePageVO);
+        return RespDTO.onSuc(data);
+    }
+
     @ApiOperation(value = "保存静态知识-新增或修改[zhaops]",
             notes = "id: id <br>" +
                     "name: 术语名称 <br>" +
@@ -81,6 +97,23 @@ public class ConceptInfoController {
         return RespDTO.onSuc(data);
     }
 
+    @ApiOperation(value = "保存经典病例-新增或修改",
+            notes = "id: id <br>" +
+                    "name: 术语名称 <br>" +
+                    "type: 类型:11-经典病例  <br>" +
+                    "clinicalPathwayName: 临床路径名称<br>" +
+                    "noticeName: 注意事项名称<br>" +
+                    "source:数据来源:0-医院端、1-云平台,默认0 <br>" +
+                    "details: 明细<br>" +
+                    "scale:评估量表<br>")
+    @PostMapping("/saveOrUpdateCase")
+    @SysLogger("saveOrUpdateCase")
+    @Transactional
+    public RespDTO<Boolean> saveOrUpdateCase(@Valid @RequestBody KlClassicCaseVO klClassicCaseVO) {
+        Boolean data = klConceptStaticFacade.saveOrUpdateCase(klClassicCaseVO);
+        return RespDTO.onSuc(data);
+    }
+
     @ApiOperation(value = "静态知识启用禁用[zhaops]",
             notes = "id: 术语id <br>" +
                     "status: 启用状态:1-启用、0-禁用<br>")
@@ -92,6 +125,17 @@ public class ConceptInfoController {
         return RespDTO.onSuc(data);
     }
 
+    @ApiOperation(value = "经典病例启用禁用",
+            notes = "id: 术语id <br>" +
+                    "status: 启用状态:1-启用、0-禁用<br>")
+    @PostMapping("/changeCaseStatus")
+    @SysLogger("changeCaseStatus")
+    @Transactional
+    public RespDTO<Boolean> changeCaseStatus(@Valid @RequestBody ChangeStatusVO changeStatusVO) {
+        Boolean data = klConceptStaticFacade.changeCaseStatus(changeStatusVO);
+        return RespDTO.onSuc(data);
+    }
+
     @ApiOperation(value = "静态知识是否存在[zhaops]",
             notes = "name: 术语名称 <br>" +
                     "type: 类型:1-诊断、2-药品、3-检验套餐、4-检验明细、5-检查、6-手术和操作、8-量表、9-护理、10-政策法规 <br>")