IBPSLISController.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. package com.jyxt.getdatabyrestful.controller;
  2. import com.jyxt.getdatabyrestful.service.IBPSService;
  3. import com.jyxt.getdatabyrestful.service.impl.ConditionalOnEndpoint;
  4. import io.swagger.v3.oas.annotations.media.Schema;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
  7. import org.springframework.web.bind.annotation.*;
  8. import io.swagger.v3.oas.annotations.Operation;
  9. import io.swagger.v3.oas.annotations.Parameter;
  10. import io.swagger.v3.oas.annotations.tags.Tag;
  11. import java.util.List;
  12. import java.util.Map;
  13. @RestController
  14. @RequestMapping("/LISProcess") // 基础路径
  15. @Tag(name = "金源信通检验过程管理模块标准接口", description = "")
  16. @ConditionalOnProperty(
  17. name = "interface.LISProcess",
  18. havingValue = "1",
  19. matchIfMissing = false // 若配置不存在则禁用
  20. )
  21. public class IBPSLISController {
  22. @Autowired
  23. IBPSService ibpsService;
  24. // 示例:GET接口
  25. @GetMapping("/test")
  26. @Operation(summary = "示例接口", description = "这是一个示例GET接口,点击右侧'try it out'测试接口能否正常调用")
  27. @ConditionalOnEndpoint(property = "interface.test")
  28. public String hello(@Parameter(description = "用户名", required = true)
  29. @RequestParam String name) {
  30. return "Hello, " + name;
  31. }
  32. @PostMapping("/QCMonthReport")
  33. @Operation(summary = "室内质控月分析总结报告", description = "")
  34. @ConditionalOnEndpoint(property = "interface.QCMonthReport")
  35. public String saveMonthReport(@RequestBody
  36. @Schema(
  37. name = "室内质控月分析总结报告",
  38. description = "请求示例",
  39. example = "[{\"CreateUser\":\"创建人张三\",\"CreateTime\":\"2025-07-08 08:30:22\",\"DeviceCode\":\"贝克曼DXI800\"," +
  40. "\"DeviceModel\":\"DXI800\",\"ReportDate\":\"2025年6月\",\"QCTestCode\":[{\"TestCode\":\"ALB\",\"QCMFG\":\"伯乐\"," +
  41. "\"QCName\":\"9901\",\"LotNumber\":\"220901L\",\"LotStartTime\":\"09-02\",\"QCRule\":\"13s、22s\",\"QCLevel\":\"低\"," +
  42. "\"QCChartAvg\":\"55.00\",\"QCChartSD\":\"3.99\",\"QCChartCV\":\"7\",\"RawDataAvg\":\"54.57\",\"RawDataSD\":\"1\"," +
  43. "\"RawDataCV\":\"1\",\"RawDataNum\":\"2\",\"OutControlNum\":\"1\",\"ControlDataAvg\":\"1\",\"ControlDataSD\":\"1\"," +
  44. "\"ControlDataCV\":\"1\",\"AccumDataAvg\":\"1\",\"AccumDataSD\":\"1\",\"AccumDataCV\":\"1\",\"AccumDataNum\":\"1\"," +
  45. "\"AccumDataPer\":\"1\",\"CVRange\":\"1\",\"pass\":\"是\"},{\"TestCode\":\"ALB\",\"QCMFG\":\"伯乐\",\"QCName\":\"9902\"," +
  46. "\"LotNumber\":\"220901H\",\"LotStartTime\":\"09-02\",\"QCRule\":\"13s、22s\",\"QCLevel\":\"高\",\"QCChartAvg\":\"55.00\"," +
  47. "\"QCChartSD\":\"3.99\",\"QCChartCV\":\"7\",\"RawDataAvg\":\"54.57\",\"RawDataSD\":\"1\",\"RawDataCV\":\"1\"," +
  48. "\"RawDataNum\":\"2\",\"OutControlNum\":\"1\",\"ControlDataAvg\":\"1\",\"ControlDataSD\":\"1\",\"ControlDataCV\":\"1\"," +
  49. "\"AccumDataAvg\":\"1\",\"AccumDataSD\":\"1\",\"AccumDataCV\":\"1\",\"AccumDataNum\":\"1\",\"AccumDataPer\":\"1\"," +
  50. "\"CVRange\":\"1\",\"pass\":\"是\"}]}]"
  51. )
  52. List<Map<String, Object>> inputList) {
  53. String retValue = "fail";
  54. if (inputList == null || inputList.isEmpty()) {
  55. return "输入不能为空!";
  56. }
  57. // 处理业务逻辑(如保存到数据库)
  58. retValue = ibpsService.saveMonthReport(inputList);
  59. return retValue;
  60. }
  61. @PostMapping("/RerunSampleRecord")
  62. @Operation(summary = "复检样品记录", description = "")
  63. @ConditionalOnEndpoint(property = "interface.RerunSampleRecord")
  64. public String saveRerunSample(@RequestBody
  65. @Schema(
  66. name = "复检样品记录",
  67. description = "请求示例",
  68. example = "[{\"CreateUser\":\"编制人张三\",\"CreateTime\":\"2025-07-08 08:30:22\",\"SampleCode\":\"20250708001\"," +
  69. "\"PatName\":\"病人李四\",\"TestCode\":\"UA\",\"TestCodeName\":\"尿酸\",\"Unit\":\"g/ml\"," +
  70. "\"InitialResult\":\"1.5\",\"RerunResult\":\"2.8\",\"ReportResult\":\"2.8\",\"Auditer\":\"审核人王五\"," +
  71. "\"ReportTime\":\"15:02:02\",\"RerunMethod\":\"稀释复检\",\"RerunMethodNote\":\"稀释后复查\"}]"
  72. )
  73. List<Map<String, Object>> inputList) {
  74. String retValue = "fail";
  75. if (inputList == null || inputList.isEmpty()) {
  76. return "输入不能为空!";
  77. }
  78. retValue = ibpsService.saveRerunSample(inputList);
  79. return retValue;
  80. }
  81. @PostMapping("/IncorrectLISReport")
  82. @Operation(summary = "不正确检验报告登记", description = "")
  83. @ConditionalOnEndpoint(property = "interface.IncrrectLISReport")
  84. public String saveIncorrectLISReport(@RequestBody
  85. @Schema(
  86. name = "不正确检验报告登记",
  87. description = "请求示例",
  88. example = "[{\"CreateUser\":\"编制人张三\",\"RegistTime\":\"2025-07-15 09:25\",\"SampleCode\":\"20250715001\"," +
  89. "\"PatName\":\"病人李四\",\"TestCode\":\"GLU\",\"InitialAuditTime\":\"2025-07-11 09:00\"," +
  90. "\"ReAuditTime\":\"2025-07-11 09:10\",\"FinalAuditTime\":\"2025-07-11 09:20\",\"Reason\":\"标本溶血\"}]"
  91. )
  92. List<Map<String, Object>> inputList) {
  93. String retValue = "fail";
  94. if (inputList == null || inputList.isEmpty()) {
  95. return "输入不能为空!";
  96. }
  97. retValue = ibpsService.saveIncorrectLISReport(inputList);
  98. return retValue;
  99. }
  100. @PostMapping("/CriticalReport")
  101. @Operation(summary = "危急值漏报、上报超时登记", description = "")
  102. @ConditionalOnEndpoint(property = "interface.CriticalReport")
  103. public String saveCriticalReport(@RequestBody
  104. @Schema(
  105. name = "危急值漏报、上报超时登记",
  106. description = "请求示例",
  107. example = "[{\"CreateUser\":\"编制人张三\",\"ResponsibleUser\":\"责任人李四\",\"RegistDate\":\"2025-07-01\"," +
  108. "\"RegistTime\":\"10:30\",\"PatName\":\"患者王五\",\"SampleCode\":\"202507011111\",\"Advice\":\"电解质5项\"," +
  109. "\"Type\":\"上报超时\",\"Reason\":\"溶血导致钾离子假性升高\"}]"
  110. )
  111. List<Map<String, Object>> inputList) {
  112. String retValue = "fail";
  113. if (inputList == null || inputList.isEmpty()) {
  114. return "输入不能为空!";
  115. }
  116. retValue = ibpsService.saveCriticalReport(inputList);
  117. return retValue;
  118. }
  119. @PostMapping("/OvertimeReport")
  120. @Operation(summary = "急诊报告超时登记", description = "")
  121. @ConditionalOnEndpoint(property = "interface.OvertimeReport")
  122. public String saveOvertimeReport(@RequestBody
  123. @Schema(
  124. name = "急诊报告超时登记",
  125. description = "请求示例",
  126. example = "[{\"CreateUser\":\"编制人张三\",\"ResponsibleUser\":\"责任人李四\",\"RegistDate\":\"2025-07-01\"," +
  127. "\"RegistTime\":\"10:30\",\"PatName\":\"患者王五\",\"SampleCode\":\"202507011111\",\"Advice\":\"肝功能2项\"," +
  128. "\"TestCode\":\"AST ALB\",\"DelayMins\":\"30\",\"Reason\":\"仪器故障\",\"InfectMins\":\"30\"}]"
  129. )
  130. List<Map<String, Object>> inputList) {
  131. String retValue = "fail";
  132. if (inputList == null || inputList.isEmpty()) {
  133. return "输入不能为空!";
  134. }
  135. retValue = ibpsService.saveOvertimeReport(inputList);
  136. return retValue;
  137. }
  138. @PostMapping("/PostiveReport")
  139. @Operation(summary = "传染病报告登记", description = "")
  140. @ConditionalOnEndpoint(property = "interface.PostiveReport")
  141. public String savePostiveReport(@RequestBody
  142. @Schema(
  143. name = "传染病报告登记",
  144. description = "请求示例",
  145. example = "[{\"CreateUser\":\"编制人张三\",\"RegistTime\":\"2025-07-01 10:30\",\"PatDept\":\"感染科\"," +
  146. "\"Doctor\":\"开单医生李四\",\"PatName\":\"患者王五\",\"PatGender\":\"男\",\"PatAge\":\"35岁\"," +
  147. "\"ReportDate\":\"2025-07-01\",\"ReportDocDate\":\"2025-07-01 10:10\",\"ReportPHMDate\":\"2025-07-01 10:20\",\"ReportResult\":\"抗戊型肝炎抗体IgM:1.03 S/CO。\"}]"
  148. )
  149. List<Map<String, Object>> inputList) {
  150. String retValue = "fail";
  151. if (inputList == null || inputList.isEmpty()) {
  152. return "输入不能为空!";
  153. }
  154. retValue = ibpsService.savePostiveReport(inputList);
  155. return retValue;
  156. }
  157. }