18339543638 5 месяцев назад
Родитель
Сommit
eacfdfdbbc

+ 74 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizPainAssessmentDTO.java

@@ -0,0 +1,74 @@
+package cn.tr.module.smart.common.dto;
+
+import cn.tr.plugin.mybatis.pojo.BaseDTO;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import cn.tr.core.validation.Insert;
+import cn.tr.core.validation.Update;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import javax.validation.constraints.*;
+import java.util.*;
+/**
+ * 患者疼痛评估传输对象
+ *
+ * @author lf
+ * @date  2025/06/26 16:05
+ **/
+@Data
+@ApiModel("患者疼痛评估传输对象")
+@EqualsAndHashCode(callSuper = true)
+@ToString
+public class BizPainAssessmentDTO extends BaseDTO  {
+    private static final long serialVersionUID = 1L;
+    @ApiModelProperty(value = "评估记录ID", position = 1)
+     @NotBlank  (message = "主键不能为空",groups = {Update.class})
+    private String id;
+
+    @ApiModelProperty(value = "静息时疼痛评分(0-10)", position = 2)
+    private Integer restingPain;
+
+    @ApiModelProperty(value = "运动时疼痛评分(0-10)", position = 3)
+    private Integer movementPain;
+
+    @ApiModelProperty(value = "过去24小时内最剧烈疼痛评分(0-10)", position = 4)
+    private Integer painLast24h;
+
+    @ApiModelProperty(value = "爆发痛每日发生频次", position = 5)
+    private Integer flareUpFrequency;
+
+    @ApiModelProperty(value = "爆发痛每次持续时长(分钟)", position = 6)
+    private Integer flareUpDuration;
+
+    @ApiModelProperty(value = "睡眠质量状况(极差/很差/较差/尚可/正常)", position = 7)
+    private String sleepStatus;
+
+    @ApiModelProperty(value = "精神状态(极差/很差/较差/尚可/正常)", position = 8)
+    private String mentalStatus;
+
+    @ApiModelProperty(value = "食欲状况(极差/很差/较差/尚可/正常)", position = 9)
+    private String appetiteStatus;
+
+    @ApiModelProperty(value = "恶心呕吐情况(呕吐/仅恶心/无)", position = 10)
+    private String nauseaVomiting;
+
+    @ApiModelProperty(value = "瘙痒程度(无/轻度/中度/重度)", position = 11)
+    private String itching;
+
+    @ApiModelProperty(value = "眩晕程度(无/轻度/中度/重度)", position = 12)
+    private String dizziness;
+
+    @ApiModelProperty(value = "喉咙疼痛程度(无/轻度/中度/重度)", position = 13)
+    private String throatPain;
+
+    @ApiModelProperty(value = "声音嘶哑情况(无/有)", position = 14)
+    private String voiceHoarseness;
+
+    @ApiModelProperty(value = "患者满意度评分(不满意/较满意/满意)", position = 15)
+    private String satisfactionRating;
+
+    @ApiModelProperty(value = "手术id", position = 21)
+    private String clinicId;
+
+}

+ 19 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizPainAssessmentQueryDTO.java

@@ -0,0 +1,19 @@
+package cn.tr.module.smart.common.dto;
+
+import lombok.ToString;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.*;
+/**
+ * 患者疼痛评估查询参数
+ *
+ * @author lf
+ * @date  2025/06/26 16:05
+ **/
+@Data
+@ApiModel("患者疼痛评估查询参数")
+@ToString
+public class BizPainAssessmentQueryDTO  {
+    private static final long serialVersionUID = 1L;
+}

+ 28 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/mapper/BizPainAssessmentMapper.java

@@ -0,0 +1,28 @@
+package cn.tr.module.smart.common.mapper;
+
+import cn.tr.module.smart.common.po.BizPainAssessmentPO;
+import cn.tr.module.smart.common.dto.BizPainAssessmentDTO;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+/**
+* 患者疼痛评估映射工具
+*
+* @author lf
+* @date  2025/06/26 16:05
+**/
+@Mapper
+public interface BizPainAssessmentMapper {
+    BizPainAssessmentMapper INSTANCE = Mappers.getMapper(BizPainAssessmentMapper.class);
+
+    BizPainAssessmentPO convertPO(BizPainAssessmentDTO source);
+
+    BizPainAssessmentDTO convertDto(BizPainAssessmentPO source);
+
+    List<BizPainAssessmentDTO> convertDtoList(List<BizPainAssessmentPO> source);
+
+    List<BizPainAssessmentPO> convertPOList(List<BizPainAssessmentDTO> source);
+
+}

+ 84 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/po/BizPainAssessmentPO.java

@@ -0,0 +1,84 @@
+package cn.tr.module.smart.common.po;
+
+import cn.tr.plugin.mybatis.pojo.TenantPO;   
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import java.util.*;
+/**
+ * 患者疼痛评估实体
+ *
+ * @author lf
+ * @date  2025/06/26 16:05
+ **/
+@Data
+@TableName(value="biz_pain_assessment",autoResultMap = true)
+@EqualsAndHashCode(callSuper = true)
+@ToString
+public class BizPainAssessmentPO extends TenantPO {
+
+    /** 评估记录ID */
+    @TableId
+    @ApiModelProperty(value = "评估记录ID", position = 1)
+    private String id;
+
+    /** 静息时疼痛评分(0-10) */
+    @ApiModelProperty(value = "静息时疼痛评分(0-10)", position = 2)
+    private Integer restingPain;
+
+    /** 运动时疼痛评分(0-10) */
+    @ApiModelProperty(value = "运动时疼痛评分(0-10)", position = 3)
+    private Integer movementPain;
+
+    /** 过去24小时内最剧烈疼痛评分(0-10) */
+    @ApiModelProperty(value = "过去24小时内最剧烈疼痛评分(0-10)", position = 4)
+    private Integer painLast24h;
+
+    /** 爆发痛每日发生频次 */
+    @ApiModelProperty(value = "爆发痛每日发生频次", position = 5)
+    private Integer flareUpFrequency;
+
+    /** 爆发痛每次持续时长(分钟) */
+    @ApiModelProperty(value = "爆发痛每次持续时长(分钟)", position = 6)
+    private Integer flareUpDuration;
+
+    /** 睡眠质量状况(极差/很差/较差/尚可/正常) */
+    @ApiModelProperty(value = "睡眠质量状况(极差/很差/较差/尚可/正常)", position = 7)
+    private String sleepStatus;
+
+    /** 精神状态(极差/很差/较差/尚可/正常) */
+    @ApiModelProperty(value = "精神状态(极差/很差/较差/尚可/正常)", position = 8)
+    private String mentalStatus;
+
+    /** 食欲状况(极差/很差/较差/尚可/正常) */
+    @ApiModelProperty(value = "食欲状况(极差/很差/较差/尚可/正常)", position = 9)
+    private String appetiteStatus;
+
+    /** 恶心呕吐情况(呕吐/仅恶心/无) */
+    @ApiModelProperty(value = "恶心呕吐情况(呕吐/仅恶心/无)", position = 10)
+    private String nauseaVomiting;
+
+    /** 瘙痒程度(无/轻度/中度/重度) */
+    @ApiModelProperty(value = "瘙痒程度(无/轻度/中度/重度)", position = 11)
+    private String itching;
+
+    /** 眩晕程度(无/轻度/中度/重度) */
+    @ApiModelProperty(value = "眩晕程度(无/轻度/中度/重度)", position = 12)
+    private String dizziness;
+
+    /** 喉咙疼痛程度(无/轻度/中度/重度) */
+    @ApiModelProperty(value = "喉咙疼痛程度(无/轻度/中度/重度)", position = 13)
+    private String throatPain;
+
+    /** 声音嘶哑情况(无/有) */
+    @ApiModelProperty(value = "声音嘶哑情况(无/有)", position = 14)
+    private String voiceHoarseness;
+
+    /** 患者满意度评分(不满意/较满意/满意) */
+    @ApiModelProperty(value = "患者满意度评分(不满意/较满意/满意)", position = 15)
+    private String satisfactionRating;
+
+}

+ 16 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/repository/BizPainAssessmentRepository.java

@@ -0,0 +1,16 @@
+package cn.tr.module.smart.common.repository;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+import cn.tr.module.smart.common.po.BizPainAssessmentPO;
+/**
+ * 患者疼痛评估Mapper接口
+ *
+ * @author lf
+ * @date  2025/06/26 16:05
+ **/
+@Repository
+@Mapper
+public interface BizPainAssessmentRepository extends BaseMapper<BizPainAssessmentPO> {
+}

+ 54 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/IBizPainAssessmentService.java

@@ -0,0 +1,54 @@
+package cn.tr.module.smart.common.service;
+
+import cn.tr.module.smart.common.dto.BizPainAssessmentDTO;
+import cn.tr.module.smart.common.dto.BizPainAssessmentQueryDTO;
+import java.util.*;
+
+/**
+ * 患者疼痛评估Service接口
+ *
+ * @author lf
+ * @date  2025/06/26 16:05
+ **/
+public interface IBizPainAssessmentService{
+
+    /**
+     * 根据条件查询患者疼痛评估
+     * @param    query 查询参数
+     * @author   lf
+     * @date      2025/06/26 16:05
+     */
+    List<BizPainAssessmentDTO> selectBizPainAssessmentList(BizPainAssessmentQueryDTO query);
+
+    /**
+     * 根据id查询患者疼痛评估
+     * @param    id 主键id
+     * @author   lf
+     * @date      2025/06/26 16:05
+     */
+    BizPainAssessmentDTO selectBizPainAssessmentById(String id);
+
+    /**
+     * 编辑患者疼痛评估
+     * @param   source 编辑实体类
+     * @author  lf
+     * @date     2025/06/26 16:05
+     */
+    boolean updateBizPainAssessmentById(BizPainAssessmentDTO source);
+
+    /**
+     * 新增患者疼痛评估
+     * @param   source 新增实体类
+     * @author lf
+     * @date  2025/06/26 16:05
+     */
+    boolean insertBizPainAssessment(BizPainAssessmentDTO source);
+
+    /**
+     * 删除患者疼痛评估详情
+     * @param  ids 删除主键集合
+     * @author lf
+     * @date    2025/06/26 16:05
+     */
+    int removeBizPainAssessmentByIds(Collection<String> ids);
+}

+ 92 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/impl/BizPainAssessmentServiceImpl.java

@@ -0,0 +1,92 @@
+package cn.tr.module.smart.common.service.impl;
+
+import cn.tr.core.exception.TRExcCode;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import cn.hutool.core.collection.CollectionUtil;
+import org.springframework.transaction.annotation.Transactional;
+import cn.tr.core.exception.ServiceException;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import cn.tr.module.smart.common.repository.BizPainAssessmentRepository;
+import cn.tr.module.smart.common.po.BizPainAssessmentPO;
+import cn.tr.module.smart.common.dto.BizPainAssessmentDTO;
+import cn.tr.module.smart.common.dto.BizPainAssessmentQueryDTO;
+import java.util.*;
+import cn.tr.module.smart.common.service.IBizPainAssessmentService;
+import cn.tr.module.smart.common.mapper.BizPainAssessmentMapper;
+/**
+ * 患者疼痛评估Service接口实现类
+ *
+ * @author lf
+ * @date  2025/06/26 16:05
+ **/
+@Service
+public class BizPainAssessmentServiceImpl implements IBizPainAssessmentService {
+    @Autowired
+    private BizPainAssessmentRepository baseRepository;
+
+
+    /**
+    * 根据条件查询患者疼痛评估
+    * @param    query 查询参数
+    * @author   lf
+    * @date      2025/06/26 16:05
+    */
+    @Override
+    public List<BizPainAssessmentDTO> selectBizPainAssessmentList(BizPainAssessmentQueryDTO query){
+        return BizPainAssessmentMapper.INSTANCE.convertDtoList(
+                baseRepository.selectList(new LambdaQueryWrapper<BizPainAssessmentPO>()
+                )
+        );
+    };
+
+    /**
+    * 根据id查询患者疼痛评估
+    * @param    id 主键id
+    * @author   lf
+    * @date      2025/06/26 16:05
+    */
+    @Override
+    public BizPainAssessmentDTO selectBizPainAssessmentById(String id){
+        return BizPainAssessmentMapper.INSTANCE.convertDto(baseRepository.selectById(id));
+    };
+
+    /**
+    * 编辑患者疼痛评估
+    * @param   source 编辑实体类
+    * @author  lf
+    * @date     2025/06/26 16:05
+    */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public boolean updateBizPainAssessmentById(BizPainAssessmentDTO source){
+            return baseRepository.updateById(BizPainAssessmentMapper.INSTANCE.convertPO(source))!=0;
+    };
+
+    /**
+    * 新增患者疼痛评估
+    * @param   source 新增实体类
+    * @author lf
+    * @date  2025/06/26 16:05
+    */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean insertBizPainAssessment(BizPainAssessmentDTO source){
+        return baseRepository.insert(BizPainAssessmentMapper.INSTANCE.convertPO(source))!=0;
+    };
+
+    /**
+    * 删除患者疼痛评估详情
+    * @param  ids 删除主键集合
+    * @author lf
+    * @date    2025/06/26 16:05
+    */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int removeBizPainAssessmentByIds(Collection<String> ids){
+        if(CollectionUtil.isEmpty(ids)){
+            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001,"请选择要删除的数据");
+        }
+        return baseRepository.deleteBatchIds(ids);
+    };
+}

+ 80 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/wx/controller/BizPainAssessmentController.java

@@ -0,0 +1,80 @@
+package cn.tr.module.smart.wx.controller;
+
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.tr.core.validation.Insert;
+import cn.tr.core.validation.Update;
+import cn.tr.core.pojo.CommonResult;
+import lombok.AllArgsConstructor;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+import cn.tr.module.smart.common.dto.BizPainAssessmentDTO;
+import cn.tr.module.smart.common.service.IBizPainAssessmentService;
+import cn.tr.module.smart.common.dto.BizPainAssessmentQueryDTO;
+import java.util.*;
+import cn.tr.plugin.mybatis.base.BaseController;
+import org.springframework.web.bind.annotation.*;
+import cn.tr.module.api.sys.log.annotation.OperateLog;
+import cn.tr.core.pojo.TableDataInfo;
+/**
+ * 患者疼痛评估控制器
+ *
+ * @author lf
+ * @date  2025/06/26 16:05
+ */
+@Api(tags = "患者疼痛评估")
+@RestController
+@RequestMapping("/common/painAssessment")
+@AllArgsConstructor
+public class BizPainAssessmentController extends BaseController{
+
+    private final IBizPainAssessmentService bizPainAssessmentService;
+
+    @ApiOperationSupport(author = "lf",order = 1)
+    @ApiOperation(value="根据条件查询患者疼痛评估",notes = "权限: 无")
+    @PostMapping("/query/page")
+    public TableDataInfo<BizPainAssessmentDTO> selectList(@RequestBody BizPainAssessmentQueryDTO query) {
+        startPage();
+        return getDataTable(bizPainAssessmentService.selectBizPainAssessmentList(query));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 2)
+    @ApiOperation(value = "根据id查询患者疼痛评估",notes = "权限: common:painAssessment:query")
+    @GetMapping("/detail/{id}")
+    @SaCheckPermission("common:painAssessment:query")
+    public CommonResult<BizPainAssessmentDTO> findById(@PathVariable("id") String id){
+        return CommonResult.success(bizPainAssessmentService.selectBizPainAssessmentById(id));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 3)
+    @ApiOperation(value="添加患者疼痛评估",notes = "权限: common:painAssessment:add")
+    @PostMapping("/add")
+    @OperateLog
+    @SaCheckPermission("common:painAssessment:add")
+    public CommonResult<Boolean> add(@RequestBody@Validated(Insert.class) BizPainAssessmentDTO source) {
+        return CommonResult.success(bizPainAssessmentService.insertBizPainAssessment(source));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 4)
+    @ApiOperation(value="通过主键id编辑患者疼痛评估",notes = "权限: common:painAssessment:edit")
+    @PostMapping("/edit")
+    @OperateLog
+    @SaCheckPermission("common:painAssessment:edit")
+    public CommonResult<Boolean> edit(@RequestBody@Validated(Update.class) BizPainAssessmentDTO source) {
+        return CommonResult.success(bizPainAssessmentService.updateBizPainAssessmentById(source));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 5)
+    @ApiOperation(value="删除患者疼痛评估",notes = "权限: common:painAssessment:remove")
+    @PostMapping("/removeByIds")
+    @OperateLog
+    @SaCheckPermission("common:painAssessment:remove")
+    public CommonResult<Integer> delete(@RequestBody Collection<String> ids) {
+        return CommonResult.success(bizPainAssessmentService.removeBizPainAssessmentByIds(ids));
+    }
+}