ConceptController.java 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. package com.diagbot.web;
  2. import com.diagbot.annotation.SysLogger;
  3. import com.diagbot.dto.ConceptBaseDTO;
  4. import com.diagbot.dto.ConceptRetrievalDTO;
  5. import com.diagbot.dto.ConceptRetrievalExtDTO;
  6. import com.diagbot.dto.RespDTO;
  7. import com.diagbot.dto.RetrievalDTO;
  8. import com.diagbot.dto.UsualDTO;
  9. import com.diagbot.entity.Concept;
  10. import com.diagbot.facade.ConceptFacade;
  11. import com.diagbot.util.ParamConvertUtil;
  12. import com.diagbot.vo.ConceptBaseVO;
  13. import com.diagbot.vo.ConceptExistVO;
  14. import com.diagbot.vo.ConceptFindVO;
  15. import com.diagbot.vo.ConceptSearchVO;
  16. import com.diagbot.vo.ConceptUsualVO;
  17. import com.diagbot.vo.GetStaticKnowledgeVO;
  18. import com.diagbot.vo.RetrievalVO;
  19. import io.swagger.annotations.Api;
  20. import io.swagger.annotations.ApiOperation;
  21. import org.springframework.beans.factory.annotation.Autowired;
  22. import org.springframework.web.bind.annotation.PostMapping;
  23. import org.springframework.web.bind.annotation.RequestBody;
  24. import org.springframework.web.bind.annotation.RequestMapping;
  25. import org.springframework.web.bind.annotation.RestController;
  26. import springfox.documentation.annotations.ApiIgnore;
  27. import javax.validation.Valid;
  28. import java.util.List;
  29. import java.util.Map;
  30. /**
  31. * <p>
  32. * 概念表 前端控制器
  33. * </p>
  34. *
  35. * @author zhaops
  36. * @since 2019-05-06
  37. */
  38. @RestController
  39. @RequestMapping("/concept")
  40. @Api(value = "常用标签API", tags = { "知识库标准化-常用标签API" })
  41. @SuppressWarnings("unchecked")
  42. public class ConceptController {
  43. @Autowired
  44. ConceptFacade conceptFacade;
  45. @ApiOperation(value = "知识库标准化-常用标签——根据科室获取常用标签[by:wangyu]",
  46. notes = "deptName:科室名称<br>" +
  47. "age:年龄<br>" +
  48. "sexType: 性别<br>" +
  49. "type:类型(1:症状 3:其他史 4:查体,5:化验 6:辅检 7:诊断),必填<br>")
  50. @PostMapping("/getConceptUsual")
  51. @SysLogger("getConceptUsual")
  52. public RespDTO<List<ConceptBaseDTO>> getConceptUsual(@RequestBody @Valid ConceptUsualVO conceptUsualVO) {
  53. List<ConceptBaseDTO> data = conceptFacade.getConceptUsual(conceptUsualVO);
  54. return RespDTO.onSuc(data);
  55. }
  56. @ApiOperation(value = "知识库标准化-常用标签——根据科室获取常用标签包含通俗解释和详细说明[by:zhoutg]",
  57. notes = "deptName:科室名称<br>" +
  58. "age:年龄<br>" +
  59. "sexType: 性别<br>" +
  60. "type:类型(1:症状 3:其他史 4:查体,5:化验 6:辅检 7:诊断),必填<br>")
  61. @PostMapping("/getConceptExtUsual")
  62. @SysLogger("getConceptExtUsual")
  63. public RespDTO<List<UsualDTO>> getConceptExtUsual(@RequestBody @Valid ConceptUsualVO conceptUsualVO) {
  64. List<UsualDTO> data = conceptFacade.getConceptExtUsual(conceptUsualVO);
  65. return RespDTO.onSuc(data);
  66. }
  67. /**
  68. * 根据概念Id列表获取概念列表Map
  69. *
  70. * @param conceptSearchVO 搜索参数
  71. * @return 术语id和术语 Map
  72. */
  73. @ApiOperation(value = "知识库标准化-根据概念Id列表获取概念列表Map[by:gaodm]",
  74. notes = "conceptIds: 术语Id列表")
  75. @PostMapping("/getConceptMap")
  76. @SysLogger("getConceptMap")
  77. public RespDTO<Map<String, Long>> getConceptMap(@RequestBody ConceptSearchVO conceptSearchVO) {
  78. return RespDTO.onSuc(conceptFacade.getConceptMap(conceptSearchVO));
  79. }
  80. /**
  81. * 根据概念Id列表获取概念列表Map
  82. *
  83. * @param conceptFindVO 搜索参数
  84. * @return 术语id和术语 Map
  85. */
  86. @ApiOperation(value = "知识库标准化-根据概念Id,年龄,性别列表获取概念列表Map[by:gaodm]",
  87. notes = "conceptIds: 术语Id列表" +
  88. "age:年龄<br>" +
  89. "sexType: 性别<br>")
  90. @PostMapping("/getConceptCondMap")
  91. @SysLogger("getConceptCondMap")
  92. public RespDTO<Map<Long, String>> getConceptCondMap(@RequestBody ConceptFindVO conceptFindVO) {
  93. return RespDTO.onSuc(conceptFacade.getConceptCondMap(conceptFindVO));
  94. }
  95. /**
  96. * 验证存在并且获取概念基本信息
  97. *
  98. * @param conceptBaseVO
  99. * @return
  100. */
  101. @ApiOperation(value = "知识库标准化-验证存在并且获取概念基本信息[by:zhaops]",
  102. notes = "name: 概念名称<br>" +
  103. "libType: 词性<br>")
  104. @PostMapping("/exist")
  105. @SysLogger("exist")
  106. @ApiIgnore
  107. public RespDTO<ConceptBaseDTO> exist(@RequestBody ConceptBaseVO conceptBaseVO) {
  108. conceptBaseVO.setLibType(ParamConvertUtil.conceptConvert2Lib(conceptBaseVO.getLibType()));
  109. Concept concept = conceptFacade.exist(conceptBaseVO);
  110. ConceptBaseDTO conceptBaseDTO = new ConceptBaseDTO();
  111. conceptBaseDTO.setName(concept.getLibName());
  112. conceptBaseDTO.setConceptId(concept.getId());
  113. return RespDTO.onSuc(conceptBaseDTO);
  114. }
  115. @ApiOperation(value = "知识库标准化-标签检索[by:wangyu]",
  116. notes = "type:类型(1:症状 3:其他史 4:查体,5:化验 6:辅检 7:诊断),必填<br>" +
  117. "age:年龄,必填<br>" +
  118. "inputStr:检索内容,必填<br>" +
  119. "sexType:性别,必填<br>" +
  120. "inputIds:需要去重的id<br>")
  121. @PostMapping("/retrivelConceptInfo")
  122. @SysLogger("retrivelConceptInfo")
  123. public RespDTO<List<ConceptRetrievalDTO>> retrivelConceptInfo(@RequestBody @Valid RetrievalVO retrievalVO) {
  124. List<ConceptRetrievalDTO> data = conceptFacade.retrivelConceptInfo(retrievalVO);
  125. return RespDTO.onSuc(data);
  126. }
  127. @ApiOperation(value = "知识库标准化-标签检索,附带通俗解释和详细说明[by:zhoutg]",
  128. notes = "type:类型(1:症状 3:其他史 4:查体,5:化验 6:辅检 7:诊断),必填<br>" +
  129. "age:年龄,必填<br>" +
  130. "inputStr:检索内容,必填<br>" +
  131. "sexType:性别,必填<br>" +
  132. "inputIds:需要去重的id<br>")
  133. @PostMapping("/retrivelConceptInfoExt")
  134. @SysLogger("retrivelConceptInfoExt")
  135. public RespDTO<List<ConceptRetrievalExtDTO>> retrivelConceptInfoExt(@RequestBody @Valid RetrievalVO retrievalVO) {
  136. List<ConceptRetrievalExtDTO> data = conceptFacade.retrivelConceptInfoExt(retrievalVO);
  137. return RespDTO.onSuc(data);
  138. }
  139. /**
  140. * 根据名称和类型获取概念列表Map
  141. *
  142. * @param conceptExistVO 搜索参数
  143. * @return 术语id和术语 Map
  144. */
  145. @ApiOperation(value = "知识库标准化-根据名称和类型获取概念列表Map[by:zhoutg]",
  146. notes = "nameList: 名称列表<br>" +
  147. "type: 类型")
  148. @PostMapping("/getConceptMapByNameAndType")
  149. @SysLogger("getConceptMapByNameAndType")
  150. public RespDTO<Map<String, Long>> getConceptMapByNameAndType(@RequestBody ConceptExistVO conceptExistVO) {
  151. return RespDTO.onSuc(conceptFacade.getConceptMap(conceptExistVO));
  152. }
  153. @ApiOperation(value = "ICSS三期-静态知识-页面检索[by:wangyu]",
  154. notes = "inputStr:检索内容,必填<br>" +
  155. "inputIds:需要去重的id<br>")
  156. @PostMapping("/getStaticKnowledge")
  157. @SysLogger("getStaticKnowledge")
  158. public RespDTO<List<RetrievalDTO>> getStaticKnowledge(@Valid @RequestBody GetStaticKnowledgeVO getStaticKnowledgeVO) {
  159. List<RetrievalDTO> data = conceptFacade.getStaticKnowledge(getStaticKnowledgeVO);
  160. return RespDTO.onSuc(data);
  161. }
  162. @ApiOperation(value = "静态知识检索【海南】[by:zhoutg]",
  163. notes = "inputStr:检索内容,必填<br>" +
  164. "inputIds:需要去重的id<br>" +
  165. "types:指定类型,1:症状,10:药品,12:化验,16:辅检,18:诊断,25:手术,33:体征," +
  166. "72:诊疗指南(门诊),73:诊疗指南(住院),74:护理,75:临床路径,76:血液,77:麻醉,78:监护," +
  167. "79:中医,80:入科流程,81:审查规则,82:电子书,83:视频, 不指定:以上全部")
  168. @PostMapping("/getStaticKnowledgeHaiNan")
  169. @SysLogger("getStaticKnowledgeHaiNan")
  170. public RespDTO<List<RetrievalDTO>> getStaticKnowledgeHaiNan(@Valid @RequestBody GetStaticKnowledgeVO getStaticKnowledgeVO) {
  171. List<RetrievalDTO> data = conceptFacade.getStaticKnowledgeHaiNan(getStaticKnowledgeVO);
  172. return RespDTO.onSuc(data);
  173. }
  174. }