diff --git a/yudao-module-tblist/yudao-module-tblist-biz/src/main/java/cn/iocoder/yudao/module/tblist/controller/admin/patientexamlist/PatientexamlistController.java b/yudao-module-tblist/yudao-module-tblist-biz/src/main/java/cn/iocoder/yudao/module/tblist/controller/admin/patientexamlist/PatientexamlistController.java index 4a32fd057..afb53a20a 100644 --- a/yudao-module-tblist/yudao-module-tblist-biz/src/main/java/cn/iocoder/yudao/module/tblist/controller/admin/patientexamlist/PatientexamlistController.java +++ b/yudao-module-tblist/yudao-module-tblist-biz/src/main/java/cn/iocoder/yudao/module/tblist/controller/admin/patientexamlist/PatientexamlistController.java @@ -61,6 +61,8 @@ import javax.annotation.security.PermitAll; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; + @Tag(name = "管理后台 - PACS检查列表") @RestController @RequestMapping("/tblist/patientexamlist") @@ -525,4 +527,45 @@ public class PatientexamlistController { } + @GetMapping("/getECGStatistics") + @Operation(summary = "获取心电图统计数据") + @PreAuthorize("@ss.hasPermission('tblist:patientexamlist:query')") + public CommonResult getECGStatistics() { + ECGStatisticsRespVO statistics = new ECGStatisticsRespVO(); + + // 构建基础查询条件 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("deviceType", "ECG"); + + // 获取总数 + int totalCount = patientexamlistMapper.selectCount(queryWrapper).intValue(); + statistics.setTotalCount(totalCount); + + // 获取已分析数量(reviewDate不为空) + QueryWrapper analyzedWrapper = new QueryWrapper<>(); + analyzedWrapper.eq("deviceType", "ECG") + .isNotNull("reviewDate"); + int analyzedCount = patientexamlistMapper.selectCount(analyzedWrapper).intValue(); + statistics.setAnalyzedCount(analyzedCount); + + // 获取未分析数量 + statistics.setUnanalyzedCount(totalCount - analyzedCount); + + // 获取阳性数量 + QueryWrapper positiveWrapper = new QueryWrapper<>(); + positiveWrapper.eq("deviceType", "ECG") + .eq("wholeDiagFlag", "1"); // 假设 wholeDiagFlag=1 表示阳性 + int positiveCount = patientexamlistMapper.selectCount(positiveWrapper).intValue(); + statistics.setPositiveCount(positiveCount); + + // 获取上级申请数量(applicationDate不为空) + QueryWrapper appliedWrapper = new QueryWrapper<>(); + appliedWrapper.eq("deviceType", "ECG") + .isNotNull("applicationDate"); + int appliedCount = patientexamlistMapper.selectCount(appliedWrapper).intValue(); + statistics.setAppliedCount(appliedCount); + + return success(statistics); + } + } \ No newline at end of file diff --git a/yudao-module-tblist/yudao-module-tblist-biz/src/main/java/cn/iocoder/yudao/module/tblist/controller/admin/patientexamlist/vo/ECGStatisticsRespVO.java b/yudao-module-tblist/yudao-module-tblist-biz/src/main/java/cn/iocoder/yudao/module/tblist/controller/admin/patientexamlist/vo/ECGStatisticsRespVO.java new file mode 100644 index 000000000..8359bfadd --- /dev/null +++ b/yudao-module-tblist/yudao-module-tblist-biz/src/main/java/cn/iocoder/yudao/module/tblist/controller/admin/patientexamlist/vo/ECGStatisticsRespVO.java @@ -0,0 +1,26 @@ +package cn.iocoder.yudao.module.tblist.controller.admin.patientexamlist.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.ToString; + +@Schema(description = "心电图统计数据 Response VO") +@Data +@ToString(callSuper = true) +public class ECGStatisticsRespVO { + + @Schema(description = "心电图数据总数") + private Integer totalCount; + + @Schema(description = "已分析数量") + private Integer analyzedCount; + + @Schema(description = "未分析数量") + private Integer unanalyzedCount; + + @Schema(description = "阳性数量") + private Integer positiveCount; + + @Schema(description = "上级申请数量") + private Integer appliedCount; +} \ No newline at end of file