diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/check/appservice/IRadiologyComparisonAppService.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/check/appservice/IRadiologyComparisonAppService.java new file mode 100644 index 000000000..8c77287a1 --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/check/appservice/IRadiologyComparisonAppService.java @@ -0,0 +1,11 @@ +package com.healthlink.his.web.check.appservice; + +import com.core.common.core.domain.R; +import com.healthlink.his.check.domain.RadiologyImageComparison; + +public interface IRadiologyComparisonAppService { + + R compareImages(Long patientId, String examinationType); + + R saveComparison(RadiologyImageComparison record); +} diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/check/appservice/impl/RadiologyComparisonAppServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/check/appservice/impl/RadiologyComparisonAppServiceImpl.java new file mode 100644 index 000000000..079333a76 --- /dev/null +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/check/appservice/impl/RadiologyComparisonAppServiceImpl.java @@ -0,0 +1,43 @@ +package com.healthlink.his.web.check.appservice.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.core.common.core.domain.R; +import com.healthlink.his.check.domain.RadiologyImageComparison; +import com.healthlink.his.check.service.IRadiologyImageComparisonService; +import com.healthlink.his.web.check.appservice.IRadiologyComparisonAppService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Date; + +@Service +@Slf4j +@AllArgsConstructor +public class RadiologyComparisonAppServiceImpl implements IRadiologyComparisonAppService { + + private final IRadiologyImageComparisonService comparisonService; + + @Override + public R compareImages(Long patientId, String examinationType) { + LambdaQueryWrapper w = new LambdaQueryWrapper<>(); + w.eq(RadiologyImageComparison::getPatientId, patientId) + .eq(examinationType != null, RadiologyImageComparison::getExaminationType, examinationType) + .orderByAsc(RadiologyImageComparison::getExaminationDate); + return R.ok(comparisonService.list(w)); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public R saveComparison(RadiologyImageComparison record) { + if (record.getId() == null) { + record.setCreateTime(new Date()); + comparisonService.save(record); + } else { + record.setUpdateTime(new Date()); + comparisonService.updateById(record); + } + return R.ok(record); + } +} diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/check/controller/RadiologyComparisonController.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/check/controller/RadiologyComparisonController.java index 71fdb3b5c..e85b6773f 100644 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/check/controller/RadiologyComparisonController.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/check/controller/RadiologyComparisonController.java @@ -1,40 +1,32 @@ package com.healthlink.his.web.check.controller; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.core.common.core.domain.R; import com.healthlink.his.check.domain.RadiologyImageComparison; -import com.healthlink.his.check.service.IRadiologyImageComparisonService; +import com.healthlink.his.web.check.appservice.IRadiologyComparisonAppService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.transaction.annotation.Transactional; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; -import java.util.*; - @RestController -@RequestMapping("/radiology-comparison") +@RequestMapping("/check") @Slf4j @AllArgsConstructor public class RadiologyComparisonController { - private final IRadiologyImageComparisonService comparisonService; + private final IRadiologyComparisonAppService radiologyComparisonAppService; - @GetMapping("/compare") + @GetMapping("/comparison/compare") + @PreAuthorize("@ss.hasPermi('infection:check:list')") public R compareImages( @RequestParam Long patientId, @RequestParam(required = false) String examinationType) { - LambdaQueryWrapper w = new LambdaQueryWrapper<>(); - w.eq(RadiologyImageComparison::getPatientId, patientId) - .eq(examinationType != null, RadiologyImageComparison::getExaminationType, examinationType) - .orderByAsc(RadiologyImageComparison::getExaminationDate); - return R.ok(comparisonService.list(w)); + return radiologyComparisonAppService.compareImages(patientId, examinationType); } - @PostMapping("/add") - @Transactional(rollbackFor = Exception.class) - public R addRecord(@RequestBody RadiologyImageComparison record) { - record.setCreateTime(new Date()); - comparisonService.save(record); - return R.ok(record); + @PostMapping("/comparison/save") + @PreAuthorize("@ss.hasPermi('infection:check:edit')") + public R saveComparison(@RequestBody RadiologyImageComparison record) { + return radiologyComparisonAppService.saveComparison(record); } } diff --git a/healthlink-his-ui/src/views/lab/LabQc.vue b/healthlink-his-ui/src/views/lab/LabQc.vue index 76229b5e9..1891db6eb 100644 --- a/healthlink-his-ui/src/views/lab/LabQc.vue +++ b/healthlink-his-ui/src/views/lab/LabQc.vue @@ -36,7 +36,7 @@ - 执行Westgard判断 + 执行Westgard判断 @@ -95,7 +95,7 @@ import { ref, onMounted, nextTick, onUnmounted } from 'vue' import { ElMessage } from 'element-plus' import * as echarts from 'echarts' -import { runWestgard, getQcResults, getQcStats } from '@/api/lab/labQc' +import { runWestgard as runWestgardApi, getQcResults, getQcStats } from '@/api/lab/labQc' const chartRef = ref(null) let chartInstance = null @@ -125,18 +125,18 @@ const loadStats = async () => { stats.value = r.data || stats.value } -const runWestgard = async () => { +const doRunWestgard = async () => { if (!form.value.qcItem || !form.value.actualValue) { ElMessage.warning('请填写质控项目和实测值') return } loading.value = true try { - const r = await runWestgard(form.value) - if (r.data?.isPass) { - ElMessage.success('Westgard判定: ' + r.data.westgardRule) + const res = await runWestgardApi(form.value) + if (res.data?.isPass) { + ElMessage.success('Westgard判定: ' + res.data.westgardRule) } else { - ElMessage.error('Westgard判定: ' + r.data.westgardRule) + ElMessage.error('Westgard判定: ' + res.data.westgardRule) } form.value = defaultForm() await loadResults() diff --git a/healthlink-his-ui/src/views/radiologycomparison/api.js b/healthlink-his-ui/src/views/radiologycomparison/api.js index 56f5597d5..453282d44 100644 --- a/healthlink-his-ui/src/views/radiologycomparison/api.js +++ b/healthlink-his-ui/src/views/radiologycomparison/api.js @@ -1,3 +1,3 @@ import request from '@/utils/request' -export function compareImages(p){return request({url:'/radiology-comparison/compare',method:'get',params:p})} -export function addRecord(d){return request({url:'/radiology-comparison/add',method:'post',data:d})} +export function compareImages(p){return request({url:'/check/comparison/compare',method:'get',params:p})} +export function addRecord(d){return request({url:'/check/comparison/save',method:'post',data:d})}