MappingConfigController.java 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. package com.diagbot.web;
  2. import com.baomidou.mybatisplus.core.metadata.IPage;
  3. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  4. import com.diagbot.annotation.SysLogger;
  5. import com.diagbot.dto.RespDTO;
  6. import com.diagbot.entity.MappingConfig;
  7. import com.diagbot.entity.wrapper.MappingConfigWrapper;
  8. import com.diagbot.facade.MappingConfigFacade;
  9. import com.diagbot.util.BeanUtil;
  10. import com.diagbot.vo.IdListVO;
  11. import com.diagbot.vo.IdVO;
  12. import com.diagbot.vo.MappingConfigPageVO;
  13. import com.diagbot.vo.MappingConfigVO;
  14. import io.swagger.annotations.Api;
  15. import io.swagger.annotations.ApiOperation;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.http.MediaType;
  18. import org.springframework.transaction.annotation.Transactional;
  19. import org.springframework.web.bind.annotation.PostMapping;
  20. import org.springframework.web.bind.annotation.RequestBody;
  21. import org.springframework.web.bind.annotation.RequestMapping;
  22. import org.springframework.web.bind.annotation.RequestParam;
  23. import org.springframework.web.bind.annotation.RestController;
  24. import org.springframework.web.multipart.MultipartFile;
  25. import javax.servlet.http.HttpServletResponse;
  26. import javax.validation.Valid;
  27. import java.util.List;
  28. /**
  29. * @Description:
  30. * @Author:zhaops
  31. * @time: 2021/6/10 16:34
  32. */
  33. @RestController
  34. @RequestMapping("/tran/mappingConfig")
  35. @Api(value = "术语关联相关API", tags = { "术语关联相关API" })
  36. @SuppressWarnings("unchecked")
  37. public class MappingConfigController {
  38. @Autowired
  39. private MappingConfigFacade mappingConfigFacade;
  40. @ApiOperation(value = "数据导入模板导出[by:zhaops]",
  41. notes = "type(必填): 类型:1-化验、3-辅检、4-诊断、5-药品、6-手术和操作、7-科室、8-输血、10-量表、11-护理、12-中医诊断、13-中医证候、14-麻醉、16-给药途径 <br>")
  42. @PostMapping("/exportExcelModule")
  43. @SysLogger("exportExcelModule")
  44. public void exportExcelModule(HttpServletResponse response, @RequestBody @Valid MappingConfigVO mappingConfigVO) {
  45. mappingConfigFacade.exportExcelModule(response, mappingConfigVO);
  46. }
  47. @ApiOperation(value = "预匹配导入术语校验[by:zhaops]",
  48. notes = "file(必填):预匹配文件 <br>" +
  49. "type(必填): 类型:1-化验、3-辅检、4-诊断、5-药品、6-手术和操作、7-科室、8-输血、10-量表、11-护理、12-中医诊断、13-中医证候、14-麻醉、16-给药途径 <br>")
  50. @PostMapping(value = "/dataVerify", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
  51. @SysLogger("dataVerify")
  52. public RespDTO<Boolean> dataVerify(@RequestParam("file") MultipartFile file,
  53. @RequestParam("type") Integer type) {
  54. Boolean data = mappingConfigFacade.dataVerify(file, type);
  55. return RespDTO.onSuc(data);
  56. }
  57. @ApiOperation(value = "预匹配[by:zhaops]",
  58. notes = "file(必填):预匹配文件 <br>" +
  59. "type(必填): 类型:1-化验、3-辅检、4-诊断、5-药品、6-手术和操作、7-科室、8-输血、10-量表、11-护理、12-中医诊断、13-中医证候、14-麻醉、16-给药途径 <br>")
  60. @PostMapping(value = "/precDataMatch", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
  61. @SysLogger("precDataMatch")
  62. public void precDataMatch(@RequestParam("file") MultipartFile file,
  63. HttpServletResponse response,
  64. @RequestParam("type") Integer type) {
  65. mappingConfigFacade.precDataMatch(file, type, response);
  66. }
  67. @ApiOperation(value = "数据导入校验[by:zhaops]",
  68. notes = "file(必填):导入文件 <br>" +
  69. "hospitalId(必填):医院id <br>" +
  70. "uesrId(必填):操作人id <br>" +
  71. "type(必填): 类型:1-化验、3-辅检、4-诊断、5-药品、6-手术和操作、7-科室、8-输血、10-量表、11-护理、12-中医诊断、13-中医证候、14-麻醉、16-给药途径 <br>")
  72. @PostMapping(value = "/importExcelDataVerify", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
  73. @SysLogger("importExcelDataVerify")
  74. public RespDTO<Boolean> importExcelDataVerify(@RequestParam("file") MultipartFile file,
  75. @RequestParam("hospitalId") Long hospitalId,
  76. @RequestParam("type") Integer type,
  77. @RequestParam("uesrId") String userId) {
  78. Boolean data = mappingConfigFacade.importExcelDataVerify(file, hospitalId, type, userId);
  79. return RespDTO.onSuc(data);
  80. }
  81. @ApiOperation(value = "数据导入[by:zhaops]",
  82. notes = "file(必填):导入文件 <br>" +
  83. "hospitalId(必填):医院id <br>" +
  84. "uesrId(必填):操作人id <br>" +
  85. "type(必填): 类型:1-化验、3-辅检、4-诊断、5-药品、6-手术和操作、7-科室、8-输血、10-量表、11-护理、12-中医诊断、13-中医证候、14-麻醉、16-给药途径 <br>")
  86. @PostMapping(value = "/importExcel", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
  87. @SysLogger("importExcel")
  88. @Transactional
  89. public void importExcel(HttpServletResponse response,@RequestParam("file") MultipartFile file,
  90. @RequestParam("hospitalId") Long hospitalId,
  91. @RequestParam("type") Integer type,
  92. @RequestParam("uesrId") String userId) {
  93. mappingConfigFacade.importExcel(response, file, hospitalId, type, userId);
  94. }
  95. @ApiOperation(value = "数据导出[by:zhaops]",
  96. notes = "hospitalId(必填):医院id <br>" +
  97. "isMatch(选填,默认全部):是否匹配(0-未匹配、1-已匹配、2-多条匹配) <br>" +
  98. "type(必填): 类型:1-化验、3-辅检、4-诊断、5-药品、6-手术和操作、7-科室、8-输血、10-量表、11-护理、12-中医诊断、13-中医证候、14-麻醉、16-给药途径 <br>")
  99. @PostMapping("/exportExcel")
  100. @SysLogger("exportExcel")
  101. public void exportExcel(HttpServletResponse response, @RequestBody @Valid MappingConfigPageVO mappingConfigPageVO) {
  102. mappingConfigFacade.exportExcel(response, mappingConfigPageVO);
  103. }
  104. @ApiOperation(value = "分页查询[by:zhaops]",
  105. notes = "hospitalId(必填):医院id <br>" +
  106. "isMatch(选填,默认全部):是否匹配(0-未匹配、1-已匹配、2-多条匹配) <br>" +
  107. "hisName(选填,模糊匹配):医院术语名称 <br>" +
  108. "uniqueName(选填,模糊匹配):标准术语名称 <br>" +
  109. "type(必填): 类型:1-化验、3-辅检、4-诊断、5-药品、6-手术和操作、7-科室、8-输血、10-量表、11-护理、12-中医诊断、13-中医证候、14-麻醉、16-给药途径 <br>")
  110. @PostMapping("/getPage")
  111. @SysLogger("getPage")
  112. public RespDTO<Page<MappingConfigWrapper>> getPage(@RequestBody @Valid MappingConfigPageVO mappingConfigPageVO) {
  113. IPage<MappingConfigWrapper> data = mappingConfigFacade.getPage(mappingConfigPageVO);
  114. Page<MappingConfigWrapper> page = new Page<>();
  115. BeanUtil.copyProperties(data, page);
  116. return RespDTO.onSuc(data);
  117. }
  118. @ApiOperation(value = "获取映射关系[by:zhaops]",
  119. notes = "id:关联关系id")
  120. @PostMapping("/getRecord")
  121. @SysLogger("getRecord")
  122. @Transactional
  123. public RespDTO<MappingConfigWrapper> getRecord(@RequestBody @Valid IdVO idVO) {
  124. MappingConfigWrapper data = mappingConfigFacade.getRecord(idVO);
  125. return RespDTO.onSuc(data);
  126. }
  127. @ApiOperation(value = "映射关系是否已存在[by:zhaops]",
  128. notes = "id:关联关系id <br>" +
  129. "hospitalId(必填):医院id <br>" +
  130. "hisName(必填):医院术语名称 <br>" +
  131. "hisDetailName(选填,可为空):医院术语名称-细项 <br>" +
  132. "conceptId(必填):标准术语id <br>" +
  133. "formConceptId(选填):药品剂型id,选填 <br>" +
  134. "source(必填):数据来源:1-标准词、2-同义词、3-编码、4-历史数据、5-相似词 <br>" +
  135. "type(必填): 类型:1-化验、3-辅检、4-诊断、5-药品、6-手术和操作、7-科室、8-输血、10-量表、11-护理、12-中医诊断、13-中医证候、14-麻醉、16-给药途径 <br>")
  136. @PostMapping("/isExistRecord")
  137. @SysLogger("isExistRecord")
  138. public RespDTO<Boolean> isExistRecord(@RequestBody @Valid MappingConfig mappingConfig) {
  139. Boolean data = mappingConfigFacade.isExistRecord(mappingConfig);
  140. return RespDTO.onSuc(data);
  141. }
  142. @ApiOperation(value = "查询已映射关系[by:zhaops]",
  143. notes = "hospitalId(必填):医院id <br>" +
  144. "hisName(必填):医院术语名称 <br>" +
  145. "hisDetailName(选填,可为空):医院术语名称-细项 <br>" +
  146. "type(必填): 类型:1-化验、3-辅检、4-诊断、5-药品、6-手术和操作、7-科室、8-输血、10-量表、11-护理、12-中医诊断、13-中医证候、14-麻醉、16-给药途径 <br>")
  147. @PostMapping("/getRelatedMapping")
  148. @SysLogger("getRelatedMapping")
  149. public RespDTO<List<MappingConfigWrapper>> getRelatedMapping(@RequestBody @Valid MappingConfigVO mappingConfigVO) {
  150. List<MappingConfigWrapper> data = mappingConfigFacade.getRelatedMapping(mappingConfigVO);
  151. return RespDTO.onSuc(data);
  152. }
  153. @ApiOperation(value = "保存或修改映射关系[by:zhaops]",
  154. notes = "id:关联关系id <br>" +
  155. "hospitalId(必填):医院id <br>" +
  156. "hisName(必填):医院术语名称 <br>" +
  157. "hisDetailName(选填,可为空):医院术语名称-细项 <br>" +
  158. "conceptId(必填):标准术语id <br>" +
  159. "formConceptId(选填,可为空):药品剂型id,选填 <br>" +
  160. "source(必填):数据来源:1-标准词、2-同义词、3-编码、4-历史数据、5-相似词 <br>" +
  161. "type(必填): 类型:1-化验、3-辅检、4-诊断、5-药品、6-手术和操作、7-科室、8-输血、10-量表、11-护理、12-中医诊断、13-中医证候、14-麻醉、16-给药途径 <br>")
  162. @PostMapping("/saveOrUpdateRecord")
  163. @SysLogger("saveOrUpdateRecord")
  164. @Transactional
  165. public RespDTO<Boolean> saveOrUpdateRecord(@RequestBody @Valid MappingConfig mappingConfig) {
  166. Boolean data = mappingConfigFacade.saveOrUpdateRecord(mappingConfig);
  167. return RespDTO.onSuc(data);
  168. }
  169. @ApiOperation(value = "删除映射关系[by:zhaops]",
  170. notes = "id:关联关系id")
  171. @PostMapping("/deleteRecord")
  172. @SysLogger("deleteRecord")
  173. @Transactional
  174. public RespDTO<Boolean> deleteRecord(@RequestBody @Valid IdVO idVO) {
  175. Boolean data = mappingConfigFacade.deleteRecord(idVO);
  176. return RespDTO.onSuc(data);
  177. }
  178. @ApiOperation(value = "批量删除映射关系[by:zhaops]",
  179. notes = "ids:关联关系id列表")
  180. @PostMapping("/deleteRecords")
  181. @SysLogger("deleteRecords")
  182. @Transactional
  183. public RespDTO<Boolean> deleteRecords(@RequestBody @Valid IdListVO idListVO) {
  184. Boolean data = mappingConfigFacade.deleteRecords(idListVO);
  185. return RespDTO.onSuc(data);
  186. }
  187. }