package com.jyxt.getdatabyrestful.controller; import com.jyxt.getdatabyrestful.service.IBPSService; import com.jyxt.getdatabyrestful.service.impl.ConditionalOnEndpoint; import io.swagger.v3.oas.annotations.media.Schema; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.web.bind.annotation.*; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import java.util.List; import java.util.Map; @RestController @RequestMapping("/LISProcess") // 基础路径 @Tag(name = "金源信通检验过程管理模块标准接口", description = "") @ConditionalOnProperty( name = "interface.LISProcess", havingValue = "1", matchIfMissing = false // 若配置不存在则禁用 ) public class IBPSLISController { @Autowired IBPSService ibpsService; // 示例:GET接口 @GetMapping("/test") @Operation(summary = "示例接口", description = "这是一个示例GET接口,点击右侧'try it out'测试接口能否正常调用") @ConditionalOnEndpoint(property = "interface.test") public String hello(@Parameter(description = "用户名", required = true) @RequestParam String name) { return "Hello, " + name; } @PostMapping("/QCMonthReport") @Operation(summary = "室内质控月分析总结报告", description = "") @ConditionalOnEndpoint(property = "interface.QCMonthReport") public String saveMonthReport(@RequestBody @Schema( name = "室内质控月分析总结报告", description = "请求示例", example = "[{\"CreateUser\":\"创建人张三\",\"CreateTime\":\"2025-07-08 08:30:22\",\"DeviceCode\":\"贝克曼DXI800\"," + "\"DeviceModel\":\"DXI800\",\"ReportDate\":\"2025年6月\",\"QCTestCode\":[{\"TestCode\":\"ALB\",\"QCMFG\":\"伯乐\"," + "\"QCName\":\"9901\",\"LotNumber\":\"220901L\",\"LotStartTime\":\"09-02\",\"QCRule\":\"13s、22s\",\"QCLevel\":\"低\"," + "\"QCChartAvg\":\"55.00\",\"QCChartSD\":\"3.99\",\"QCChartCV\":\"7\",\"RawDataAvg\":\"54.57\",\"RawDataSD\":\"1\"," + "\"RawDataCV\":\"1\",\"RawDataNum\":\"2\",\"OutControlNum\":\"1\",\"ControlDataAvg\":\"1\",\"ControlDataSD\":\"1\"," + "\"ControlDataCV\":\"1\",\"AccumDataAvg\":\"1\",\"AccumDataSD\":\"1\",\"AccumDataCV\":\"1\",\"AccumDataNum\":\"1\"," + "\"AccumDataPer\":\"1\",\"CVRange\":\"1\",\"pass\":\"是\"},{\"TestCode\":\"ALB\",\"QCMFG\":\"伯乐\",\"QCName\":\"9902\"," + "\"LotNumber\":\"220901H\",\"LotStartTime\":\"09-02\",\"QCRule\":\"13s、22s\",\"QCLevel\":\"高\",\"QCChartAvg\":\"55.00\"," + "\"QCChartSD\":\"3.99\",\"QCChartCV\":\"7\",\"RawDataAvg\":\"54.57\",\"RawDataSD\":\"1\",\"RawDataCV\":\"1\"," + "\"RawDataNum\":\"2\",\"OutControlNum\":\"1\",\"ControlDataAvg\":\"1\",\"ControlDataSD\":\"1\",\"ControlDataCV\":\"1\"," + "\"AccumDataAvg\":\"1\",\"AccumDataSD\":\"1\",\"AccumDataCV\":\"1\",\"AccumDataNum\":\"1\",\"AccumDataPer\":\"1\"," + "\"CVRange\":\"1\",\"pass\":\"是\"}]}]" ) List> inputList) { String retValue = "fail"; if (inputList == null || inputList.isEmpty()) { return "输入不能为空!"; } // 处理业务逻辑(如保存到数据库) retValue = ibpsService.saveMonthReport(inputList); return retValue; } @PostMapping("/RerunSampleRecord") @Operation(summary = "复检样品记录", description = "") @ConditionalOnEndpoint(property = "interface.RerunSampleRecord") public String saveRerunSample(@RequestBody @Schema( name = "复检样品记录", description = "请求示例", example = "[{\"CreateUser\":\"编制人张三\",\"CreateTime\":\"2025-07-08 08:30:22\",\"SampleCode\":\"20250708001\"," + "\"PatName\":\"病人李四\",\"TestCode\":\"UA\",\"TestCodeName\":\"尿酸\",\"Unit\":\"g/ml\"," + "\"InitialResult\":\"1.5\",\"RerunResult\":\"2.8\",\"ReportResult\":\"2.8\",\"Auditer\":\"审核人王五\"," + "\"ReportTime\":\"15:02:02\",\"RerunMethod\":\"稀释复检\",\"RerunMethodNote\":\"稀释后复查\"}]" ) List> inputList) { String retValue = "fail"; if (inputList == null || inputList.isEmpty()) { return "输入不能为空!"; } retValue = ibpsService.saveRerunSample(inputList); return retValue; } @PostMapping("/IncorrectLISReport") @Operation(summary = "不正确检验报告登记", description = "") @ConditionalOnEndpoint(property = "interface.IncrrectLISReport") public String saveIncorrectLISReport(@RequestBody @Schema( name = "不正确检验报告登记", description = "请求示例", example = "[{\"CreateUser\":\"编制人张三\",\"RegistTime\":\"2025-07-15 09:25\",\"SampleCode\":\"20250715001\"," + "\"PatName\":\"病人李四\",\"TestCode\":\"GLU\",\"InitialAuditTime\":\"2025-07-11 09:00\"," + "\"ReAuditTime\":\"2025-07-11 09:10\",\"FinalAuditTime\":\"2025-07-11 09:20\",\"Reason\":\"标本溶血\"}]" ) List> inputList) { String retValue = "fail"; if (inputList == null || inputList.isEmpty()) { return "输入不能为空!"; } retValue = ibpsService.saveIncorrectLISReport(inputList); return retValue; } @PostMapping("/CriticalReport") @Operation(summary = "危急值漏报、上报超时登记", description = "") @ConditionalOnEndpoint(property = "interface.CriticalReport") public String saveCriticalReport(@RequestBody @Schema( name = "危急值漏报、上报超时登记", description = "请求示例", example = "[{\"CreateUser\":\"编制人张三\",\"ResponsibleUser\":\"责任人李四\",\"RegistDate\":\"2025-07-01\"," + "\"RegistTime\":\"10:30\",\"PatName\":\"患者王五\",\"SampleCode\":\"202507011111\",\"Advice\":\"电解质5项\"," + "\"Type\":\"上报超时\",\"Reason\":\"溶血导致钾离子假性升高\"}]" ) List> inputList) { String retValue = "fail"; if (inputList == null || inputList.isEmpty()) { return "输入不能为空!"; } retValue = ibpsService.saveCriticalReport(inputList); return retValue; } @PostMapping("/OvertimeReport") @Operation(summary = "急诊报告超时登记", description = "") @ConditionalOnEndpoint(property = "interface.OvertimeReport") public String saveOvertimeReport(@RequestBody @Schema( name = "急诊报告超时登记", description = "请求示例", example = "[{\"CreateUser\":\"编制人张三\",\"ResponsibleUser\":\"责任人李四\",\"RegistDate\":\"2025-07-01\"," + "\"RegistTime\":\"10:30\",\"PatName\":\"患者王五\",\"SampleCode\":\"202507011111\",\"Advice\":\"肝功能2项\"," + "\"TestCode\":\"AST ALB\",\"DelayMins\":\"30\",\"Reason\":\"仪器故障\",\"InfectMins\":\"30\"}]" ) List> inputList) { String retValue = "fail"; if (inputList == null || inputList.isEmpty()) { return "输入不能为空!"; } retValue = ibpsService.saveOvertimeReport(inputList); return retValue; } @PostMapping("/PostiveReport") @Operation(summary = "传染病报告登记", description = "") @ConditionalOnEndpoint(property = "interface.PostiveReport") public String savePostiveReport(@RequestBody @Schema( name = "传染病报告登记", description = "请求示例", example = "[{\"CreateUser\":\"编制人张三\",\"RegistTime\":\"2025-07-01 10:30\",\"PatDept\":\"感染科\"," + "\"Doctor\":\"开单医生李四\",\"PatName\":\"患者王五\",\"PatGender\":\"男\",\"PatAge\":\"35岁\"," + "\"ReportDate\":\"2025-07-01\",\"ReportDocDate\":\"2025-07-01 10:10\",\"ReportPHMDate\":\"2025-07-01 10:20\",\"ReportResult\":\"抗戊型肝炎抗体IgM:1.03 S/CO。\"}]" ) List> inputList) { String retValue = "fail"; if (inputList == null || inputList.isEmpty()) { return "输入不能为空!"; } retValue = ibpsService.savePostiveReport(inputList); return retValue; } }