Browse Source

Merge remote-tracking branch 'origin/master_179_20250814' into master_179_20250814

xgb 1 month ago
parent
commit
0cdcb10b13

+ 1 - 14
fs-admin/src/main/java/com/fs/medical/PhysicalExamReportController.java

@@ -49,20 +49,7 @@ public class PhysicalExamReportController extends BaseController {
             return R.error("查询失败");
         }
     }
-    /**
-     * 对比报告
-     */
-    @ApiOperation("对比报告")
-    @PostMapping("/compareReport")
-    public R compareReport(@RequestBody PhysicalExamReportCompareDto reportCompareDto){
-        try {
-            Object result = physicalExamReportService.compareReport(reportCompareDto);
-            return R.ok().put("data", result);
-        } catch (Exception e) {
-            logger.error("体检报告对比失败", e);
-            return R.error("对比失败");
-        }
-    }
+
     /**
      * 分页查询体检报告列表(带筛选)
      */

+ 8 - 0
fs-admin/src/main/java/com/fs/medical/ReportIndicatorResultController.java

@@ -4,6 +4,7 @@ import com.fs.common.annotation.RepeatSubmit;
 import com.fs.common.core.controller.BaseController;
 import com.fs.common.core.domain.R;
 import com.fs.medical.domain.ReportIndicatorResult;
+import com.fs.medical.dto.ReportAllIndicatorCateDTO;
 import com.fs.medical.param.ReportIndicatorResultQueryDto;
 import com.fs.medical.service.ReportIndicatorResultService;
 import com.github.pagehelper.PageHelper;
@@ -47,6 +48,13 @@ public class ReportIndicatorResultController extends BaseController {
         }
     }
 
+    @ApiOperation("获取指定报告的指标分类")
+    @GetMapping("/getAllCateByReportId")
+    public R getAllIndicatorByReportId(@RequestParam("reportId") Long reportId) {
+        List<ReportAllIndicatorCateDTO> allIndicatorByReportId = reportIndicatorResultService.getAllIndicatorByReportId(reportId);
+        return R.ok().put("data",allIndicatorByReportId);
+    }
+
     /**
      * 分页查询报告指标检查结果列表(带筛选)
      */

+ 6 - 0
fs-service/src/main/java/com/fs/medical/domain/MedicalIndicator.java

@@ -32,6 +32,11 @@ public class MedicalIndicator {
      */
     private String indicatorCategory;
 
+    /**
+     * 0数值 1二元
+     */
+    private Integer type;
+
     /**
      * 单位ID
      */
@@ -76,4 +81,5 @@ public class MedicalIndicator {
      * 更新时间
      */
     private Date updateTime;
+
 }

+ 5 - 0
fs-service/src/main/java/com/fs/medical/domain/ReportIndicatorResult.java

@@ -79,4 +79,9 @@ public class ReportIndicatorResult {
      * 更新时间
      */
     private LocalDateTime updateTime;
+
+    /**
+     * 指标分类id
+     */
+    private Long indicatorCateId;
 }

+ 17 - 0
fs-service/src/main/java/com/fs/medical/dto/ReportAllIndicatorCateDTO.java

@@ -0,0 +1,17 @@
+package com.fs.medical.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class ReportAllIndicatorCateDTO implements Serializable {
+    /**
+     * 分类ID
+     */
+    private Long cateId;
+    /**
+     * 分类名称
+     */
+    private String cateName;
+}

+ 6 - 2
fs-service/src/main/java/com/fs/medical/mapper/MedicalIndicatorMapper.java

@@ -33,9 +33,9 @@ public interface MedicalIndicatorMapper {
      * 新增指标
      */
     @Insert("INSERT INTO fs_medical_indicator(indicator_name, indicator_category, unit_id, reference_min, " +
-            "reference_max, reference_text, description, sort_order, status) " +
+            "reference_max, reference_text, description, sort_order, status,type) " +
             "VALUES(#{indicatorName}, #{indicatorCategory}, #{unitId}, #{referenceMin}, " +
-            "#{referenceMax}, #{referenceText}, #{description}, #{sortOrder}, #{status})")
+            "#{referenceMax}, #{referenceText}, #{description}, #{sortOrder}, #{status},#{type})")
     @Options(useGeneratedKeys = true, keyProperty = "indicatorId")
     int insert(MedicalIndicator indicator);
 
@@ -53,6 +53,7 @@ public interface MedicalIndicatorMapper {
             "<if test='description != null'>description = #{description}, </if>" +
             "<if test='sortOrder != null'>sort_order = #{sortOrder}, </if>" +
             "<if test='status != null'>status = #{status}, </if>" +
+            "<if test='type != null'>type = #{type}, </if>" +
             "update_time = NOW() " +
             "WHERE indicator_id = #{indicatorId}" +
             "</script>")
@@ -91,6 +92,9 @@ public interface MedicalIndicatorMapper {
             "<if test='description != null and description != &quot;&quot;'>" +
             "AND description LIKE CONCAT('%', #{description}, '%') " +
             "</if>" +
+            "<if test='type != null and type != &quot;&quot;'>" +
+            "AND type LIKE CONCAT('%', #{type}, '%') " +
+            "</if>" +
             "<if test='status != null'>" +
             "AND status = #{status} " +
             "</if>" +

+ 7 - 2
fs-service/src/main/java/com/fs/medical/mapper/ReportIndicatorResultMapper.java

@@ -1,6 +1,7 @@
 package com.fs.medical.mapper;
 
 import com.fs.medical.domain.ReportIndicatorResult;
+import com.fs.medical.dto.ReportAllIndicatorCateDTO;
 import com.fs.medical.param.ReportIndicatorResultQueryDto;
 import org.apache.ibatis.annotations.*;
 import java.util.List;
@@ -40,8 +41,8 @@ public interface ReportIndicatorResultMapper {
     /**
      * 新增检查结果
      */
-    @Insert("INSERT INTO fs_report_indicator_result(report_id, indicator_id, test_value, test_result, is_abnormal, abnormal_type, remarks) " +
-            "VALUES(#{reportId}, #{indicatorId}, #{testValue}, #{testResult}, #{isAbnormal}, #{abnormalType}, #{remarks})")
+    @Insert("INSERT INTO fs_report_indicator_result(report_id, indicator_id, test_value, test_result, is_abnormal, abnormal_type, remarks,indicator_cate_id) " +
+            "VALUES(#{reportId}, #{indicatorId}, #{testValue}, #{testResult}, #{isAbnormal}, #{abnormalType}, #{remarks},#{indicatorCateId})")
     @Options(useGeneratedKeys = true, keyProperty = "resultId")
     int insert(ReportIndicatorResult result);
 
@@ -57,6 +58,7 @@ public interface ReportIndicatorResultMapper {
             "<if test='isAbnormal != null'>is_abnormal = #{isAbnormal}, </if>" +
             "<if test='abnormalType != null'>abnormal_type = #{abnormalType}, </if>" +
             "<if test='remarks != null'>remarks = #{remarks}, </if>" +
+            "<if test='indicatorCateId != null'>indicator_cate_id = #{indicatorCateId}, </if>" +
             "update_time = NOW() " +
             "WHERE result_id = #{resultId}" +
             "</script>")
@@ -109,4 +111,7 @@ public interface ReportIndicatorResultMapper {
             "</choose>" +
             "</script>")
     List<ReportIndicatorResult> selectPageList(ReportIndicatorResultQueryDto queryDto);
+
+    @Select("select distinct indicator_cate_id as cate_id from fs_report_indicator_result where report_id=#{reportId}")
+    List<ReportAllIndicatorCateDTO> getAllIndicatorByReportId(@Param("reportId") Long reportId);
 }

+ 6 - 1
fs-service/src/main/java/com/fs/medical/param/MedicalIndicatorQueryDto.java

@@ -47,4 +47,9 @@ public class MedicalIndicatorQueryDto implements Serializable {
 
     @ApiModelProperty(value = "排序字段")
     private String orderBy;
-}
+
+    /**
+     * 0数值 1二元
+     */
+    private Integer type;
+}

+ 5 - 1
fs-service/src/main/java/com/fs/medical/service/ReportIndicatorResultService.java

@@ -1,6 +1,7 @@
 package com.fs.medical.service;
 
 import com.fs.medical.domain.ReportIndicatorResult;
+import com.fs.medical.dto.ReportAllIndicatorCateDTO;
 import com.fs.medical.param.ReportIndicatorResultQueryDto;
 import java.util.List;
 
@@ -43,4 +44,7 @@ public interface ReportIndicatorResultService {
      * 分页查询报告指标检查结果列表
      */
     List<ReportIndicatorResult> selectPageList(ReportIndicatorResultQueryDto queryDto);
-}
+
+    List<ReportAllIndicatorCateDTO> getAllIndicatorByReportId(Long reportId);
+
+}

+ 28 - 1
fs-service/src/main/java/com/fs/medical/service/impl/ReportIndicatorResultServiceImpl.java

@@ -1,12 +1,19 @@
 package com.fs.medical.service.impl;
 
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.fs.common.utils.DictUtils;
+import com.fs.common.utils.StringUtils;
+import com.fs.medical.domain.MedicalIndicator;
 import com.fs.medical.domain.ReportIndicatorResult;
+import com.fs.medical.dto.ReportAllIndicatorCateDTO;
+import com.fs.medical.mapper.MedicalIndicatorMapper;
 import com.fs.medical.mapper.ReportIndicatorResultMapper;
 import com.fs.medical.param.ReportIndicatorResultQueryDto;
 import com.fs.medical.service.ReportIndicatorResultService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.Collections;
 import java.util.List;
 
 /**
@@ -18,6 +25,9 @@ public class ReportIndicatorResultServiceImpl implements ReportIndicatorResultSe
     @Autowired
     private ReportIndicatorResultMapper reportIndicatorResultMapper;
 
+    @Autowired
+    private MedicalIndicatorMapper medicalIndicatorMapper;
+
     @Override
     public ReportIndicatorResult getById(Long resultId) {
         return reportIndicatorResultMapper.getById(resultId);
@@ -35,6 +45,14 @@ public class ReportIndicatorResultServiceImpl implements ReportIndicatorResultSe
 
     @Override
     public boolean save(ReportIndicatorResult result) {
+
+        MedicalIndicator byId = medicalIndicatorMapper.getById(result.getIndicatorId());
+        if(ObjectUtils.isNotNull(byId)){
+            String indicatorCategory = byId.getIndicatorCategory();
+            if(StringUtils.isNotBlank(indicatorCategory)){
+                result.setIndicatorCateId(Long.valueOf(indicatorCategory));
+            }
+        }
         return reportIndicatorResultMapper.insert(result) > 0;
     }
 
@@ -52,4 +70,13 @@ public class ReportIndicatorResultServiceImpl implements ReportIndicatorResultSe
     public List<ReportIndicatorResult> selectPageList(ReportIndicatorResultQueryDto queryDto) {
         return reportIndicatorResultMapper.selectPageList(queryDto);
     }
-}
+
+    @Override
+    public List<ReportAllIndicatorCateDTO> getAllIndicatorByReportId(Long reportId) {
+        List<ReportAllIndicatorCateDTO> allIndicatorByReportId = reportIndicatorResultMapper.getAllIndicatorByReportId(reportId);
+        for (ReportAllIndicatorCateDTO item : allIndicatorByReportId) {
+            item.setCateName(DictUtils.getDictLabel("user_custom_type", String.valueOf(item.getCateId())));
+        }
+        return allIndicatorByReportId;
+    }
+}

+ 15 - 0
fs-user-app/src/main/java/com/fs/app/controller/medical/PhysicalExamReportController.java

@@ -6,6 +6,7 @@ import com.fs.common.annotation.RepeatSubmit;
 import com.fs.common.core.domain.AjaxResult;
 import com.fs.common.core.domain.R;
 import com.fs.medical.domain.PhysicalExamReport;
+import com.fs.medical.param.PhysicalExamReportCompareDto;
 import com.fs.medical.param.PhysicalExamReportQueryDto;
 import com.fs.medical.service.PhysicalExamReportService;
 import com.github.pagehelper.PageHelper;
@@ -88,6 +89,20 @@ public class PhysicalExamReportController extends AppBaseController {
         }
     }
 
+    /**
+     * 对比报告
+     */
+    @ApiOperation("对比报告")
+    @PostMapping("/compareReport")
+    public R compareReport(@RequestBody PhysicalExamReportCompareDto reportCompareDto){
+        try {
+            Object result = physicalExamReportService.compareReport(reportCompareDto);
+            return R.ok().put("data", result);
+        } catch (Exception e) {
+            logger.error("体检报告对比失败", e);
+            return R.error("对比失败");
+        }
+    }
     /**
      * 根据ID查询体检报告详情
      */

+ 8 - 0
fs-user-app/src/main/java/com/fs/app/controller/medical/ReportIndicatorResultController.java

@@ -6,6 +6,7 @@ import com.fs.common.annotation.RepeatSubmit;
 import com.fs.common.core.domain.AjaxResult;
 import com.fs.common.core.domain.R;
 import com.fs.medical.domain.ReportIndicatorResult;
+import com.fs.medical.dto.ReportAllIndicatorCateDTO;
 import com.fs.medical.param.ReportIndicatorResultQueryDto;
 import com.fs.medical.service.ReportIndicatorResultService;
 import com.github.pagehelper.PageHelper;
@@ -121,6 +122,13 @@ public class ReportIndicatorResultController extends AppBaseController {
         }
     }
 
+
+    @ApiOperation("获取指定报告的指标分类")
+    @GetMapping("/getAllCateByReportId")
+    public R getAllIndicatorByReportId(@RequestParam("reportId") Long reportId) {
+        List<ReportAllIndicatorCateDTO> allIndicatorByReportId = reportIndicatorResultService.getAllIndicatorByReportId(reportId);
+        return R.ok().put("data",allIndicatorByReportId);
+    }
     /**
      * 批量新增检查结果
      */