From 87bc7e166d18ca23a7cdbb93d9e3c7a3c8d10a29 Mon Sep 17 00:00:00 2001 From: guanyu Date: Sun, 14 Jun 2026 02:08:56 +0800 Subject: [PATCH] =?UTF-8?q?fix(#721):=20guanyu=20(=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=90=88=E5=85=A5)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/RadiologyImageController.java | 131 ++++++++++++++---- 1 file changed, 103 insertions(+), 28 deletions(-) diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/check/controller/RadiologyImageController.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/check/controller/RadiologyImageController.java index 5b89fea28..b5940bb6a 100644 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/check/controller/RadiologyImageController.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/check/controller/RadiologyImageController.java @@ -1,57 +1,132 @@ package com.healthlink.his.web.check.controller; + import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.core.common.core.domain.R; import com.healthlink.his.check.domain.*; import com.healthlink.his.check.service.*; -import lombok.AllArgsConstructor;import lombok.extern.slf4j.Slf4j; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.StringUtils;import org.springframework.web.bind.annotation.*; -import java.util.*; -@RestController @RequestMapping("/radiology-image") @Slf4j @AllArgsConstructor +import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.*; + +import java.util.Date; + +@RestController +@RequestMapping("/radiology-image") +@Slf4j +@AllArgsConstructor public class RadiologyImageController { + private final IRadiologyImageService imageService; private final IRadiologyImageReportService reportService; private final IDicomPrintRecordService printService; - // 图像列表 + + // ==================== 图像管理 ==================== + + /** 图像列表 */ @GetMapping("/list") + @PreAuthorize("@ss.hasPermi('check:radiologyImage:list')") public R getImageList(@RequestParam("applyId") Long applyId) { LambdaQueryWrapper w = new LambdaQueryWrapper<>(); - w.eq(RadiologyImage::getApplyId, applyId).orderByAsc(RadiologyImage::getInstanceNumber); + w.eq(RadiologyImage::getApplyId, applyId) + .orderByAsc(RadiologyImage::getInstanceNumber); return R.ok(imageService.list(w)); } - @PostMapping("/upload") @Transactional(rollbackFor=Exception.class) - public R uploadImage(@RequestBody RadiologyImage img) { img.setCreateTime(new Date()); imageService.save(img); return R.ok(img); } - // 图文报告 + + /** 上传影像图像 */ + @PostMapping("/upload") + @PreAuthorize("@ss.hasPermi('check:radiologyImage:add')") + @Transactional(rollbackFor = Exception.class) + public R uploadImage(@RequestBody RadiologyImage img) { + img.setCreateTime(new Date()); + imageService.save(img); + return R.ok(img); + } + + // ==================== 图文报告 ==================== + + /** 报告分页查询 */ @GetMapping("/report/page") - public R getReportPage(@RequestParam(value="status",required=false) String status, - @RequestParam(value="patientName",required=false) String patientName, - @RequestParam(value="pageNo",defaultValue="1") Integer pageNo, - @RequestParam(value="pageSize",defaultValue="20") Integer pageSize) { + @PreAuthorize("@ss.hasPermi('check:radiologyImage:report:list')") + public R getReportPage( + @RequestParam(value = "status", required = false) String status, + @RequestParam(value = "patientName", required = false) String patientName, + @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(value = "pageSize", defaultValue = "20") Integer pageSize) { LambdaQueryWrapper w = new LambdaQueryWrapper<>(); w.eq(StringUtils.hasText(status), RadiologyImageReport::getStatus, status) .like(StringUtils.hasText(patientName), RadiologyImageReport::getPatientName, patientName) .orderByDesc(RadiologyImageReport::getCreateTime); return R.ok(reportService.page(new Page<>(pageNo, pageSize), w)); } - @PostMapping("/report/add") @Transactional(rollbackFor=Exception.class) - public R addReport(@RequestBody RadiologyImageReport r) { r.setStatus("DRAFT"); r.setCreateTime(new Date()); reportService.save(r); return R.ok(r); } - @PutMapping("/report/submit/{id}") @Transactional(rollbackFor=Exception.class) + + /** 新建报告(草稿) */ + @PostMapping("/report/add") + @PreAuthorize("@ss.hasPermi('check:radiologyImage:report:add')") + @Transactional(rollbackFor = Exception.class) + public R addReport(@RequestBody RadiologyImageReport r) { + r.setStatus("DRAFT"); + r.setCreateTime(new Date()); + reportService.save(r); + return R.ok(r); + } + + /** 提交报告 */ + @PutMapping("/report/submit/{id}") + @PreAuthorize("@ss.hasPermi('check:radiologyImage:report:edit')") + @Transactional(rollbackFor = Exception.class) public R submitReport(@PathVariable Long id) { - RadiologyImageReport r = reportService.getById(id); if (r == null) return R.fail("报告不存在"); - r.setStatus("REPORTED"); r.setReportTime(new Date()); reportService.updateById(r); return R.ok(); + RadiologyImageReport r = reportService.getById(id); + if (r == null) { + return R.fail("报告不存在"); + } + r.setStatus("REPORTED"); + r.setReportTime(new Date()); + reportService.updateById(r); + return R.ok(); } - @PutMapping("/report/verify/{id}") @Transactional(rollbackFor=Exception.class) - public R verifyReport(@PathVariable Long id, @RequestParam("doctor") String doctor) { - RadiologyImageReport r = reportService.getById(id); if (r == null) return R.fail("报告不存在"); - r.setStatus("VERIFIED"); r.setVerifyDoctor(doctor); r.setVerifyTime(new Date()); reportService.updateById(r); return R.ok(); + + /** 审核报告 */ + @PutMapping("/report/verify/{id}") + @PreAuthorize("@ss.hasPermi('check:radiologyImage:report:edit')") + @Transactional(rollbackFor = Exception.class) + public R verifyReport(@PathVariable Long id, + @RequestParam("doctor") String doctor) { + RadiologyImageReport r = reportService.getById(id); + if (r == null) { + return R.fail("报告不存在"); + } + r.setStatus("VERIFIED"); + r.setVerifyDoctor(doctor); + r.setVerifyTime(new Date()); + reportService.updateById(r); + return R.ok(); } - // DICOM打印 - @PostMapping("/print") @Transactional(rollbackFor=Exception.class) - public R printDicom(@RequestBody DicomPrintRecord p) { p.setPrintTime(new Date()); p.setCreateTime(new Date()); printService.save(p); return R.ok(p); } + + // ==================== DICOM打印 ==================== + + /** DICOM打印记录 */ + @PostMapping("/print") + @PreAuthorize("@ss.hasPermi('check:radiologyImage:print:add')") + @Transactional(rollbackFor = Exception.class) + public R printDicom(@RequestBody DicomPrintRecord p) { + p.setPrintTime(new Date()); + p.setCreateTime(new Date()); + printService.save(p); + return R.ok(p); + } + + /** 打印记录分页 */ @GetMapping("/print/page") - public R getPrintPage(@RequestParam(value="pageNo",defaultValue="1") Integer pageNo, - @RequestParam(value="pageSize",defaultValue="20") Integer pageSize) { - return R.ok(printService.page(new Page<>(pageNo, pageSize), new LambdaQueryWrapper().orderByDesc(DicomPrintRecord::getPrintTime))); + @PreAuthorize("@ss.hasPermi('check:radiologyImage:print:list')") + public R getPrintPage( + @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(value = "pageSize", defaultValue = "20") Integer pageSize) { + LambdaQueryWrapper w = new LambdaQueryWrapper<>(); + w.orderByDesc(DicomPrintRecord::getPrintTime); + return R.ok(printService.page(new Page<>(pageNo, pageSize), w)); } }