Procházet zdrojové kódy

查看镇痛评价实现

wangzl před 5 měsíci
rodič
revize
0335244176

+ 7 - 4
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/app/controller/ClinicRoomController.java

@@ -5,7 +5,9 @@ import cn.tr.core.pojo.TableDataInfo;
 import cn.tr.module.smart.app.controller.dto.WxDoctorClinicFinishDTO;
 import cn.tr.module.smart.app.controller.dto.WxDoctorClinicQuestionDTO;
 import cn.tr.module.smart.app.controller.dto.WxDoctorClinicRoomDTO;
+import cn.tr.module.smart.app.controller.dto.WxDoctorPainAssessmentDTO;
 import cn.tr.module.smart.app.controller.vo.WxDoctorClinicRoomVO;
+import cn.tr.module.smart.common.dto.BizPainAssessmentDTO;
 import cn.tr.module.smart.common.service.IBizClinicRoomService;
 import cn.tr.plugin.mybatis.base.BaseController;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
@@ -16,6 +18,7 @@ import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.util.List;
 
 /**
  * @author wangzl
@@ -62,9 +65,9 @@ public class ClinicRoomController extends BaseController {
     }
 
     @ApiOperationSupport(author = "wangzl", order = 5)
-    @ApiOperation(value = "术后随访", notes = "权限: 无")
-    @GetMapping("/followUp/{clinicId}")
-    public String getFollowInfo(@PathVariable String clinicId) {
-        return "";
+    @ApiOperation(value = "镇痛评价", notes = "权限: 无")
+    @GetMapping("/assess/{clinicId}")
+    public CommonResult<List<WxDoctorPainAssessmentDTO>> getAssessInfo(@PathVariable String clinicId) {
+        return CommonResult.success(clinicRoomService.getAssessInfo(clinicId));
     }
 }

+ 1 - 7
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/app/controller/PatientInfoController.java

@@ -5,6 +5,7 @@ import cn.tr.core.pojo.TableDataInfo;
 import cn.tr.module.smart.app.controller.dto.WxDoctorPatientInfoDTO;
 import cn.tr.module.smart.app.controller.vo.WxDoctorPatientListVO;
 import cn.tr.module.smart.app.controller.vo.WxDoctorPatientVO;
+import cn.tr.module.smart.common.dto.BizPainAssessmentDTO;
 import cn.tr.module.smart.common.service.IBizPatientService;
 import cn.tr.plugin.mybatis.base.BaseController;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
@@ -47,11 +48,4 @@ public class PatientInfoController extends BaseController {
         return CommonResult.success(bizPatientService.selectQuestionList(patientId));
     }
 
-    @ApiOperationSupport(author = "wangzl", order = 3)
-    @ApiOperation(value = "术后随访列表", notes = "权限: 无")
-    @PostMapping("/followUp/list/{patientId}")
-    public List<String> selectFollowList(@PathVariable String patientId) {
-        return new ArrayList<>();
-    }
-
 }

+ 73 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/app/controller/dto/WxDoctorPainAssessmentDTO.java

@@ -0,0 +1,73 @@
+package cn.tr.module.smart.app.controller.dto;
+
+import cn.tr.core.validation.Update;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.ToString;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ * @author wangzl
+ * @description: TODO
+ * @date 2025/7/14 14:43
+ */
+@Data
+@ApiModel("患者疼痛评估传输对象")
+@ToString
+public class WxDoctorPainAssessmentDTO implements Serializable {
+    private static final long serialVersionUID = 1L;
+    @ApiModelProperty(value = "评估记录ID", position = 1)
+    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 painLast;
+
+    @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;
+
+    @ApiModelProperty(value = "患者姓名", position = 22)
+    private String patientName;
+
+}

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

@@ -33,7 +33,7 @@ public class BizPainAssessmentDTO extends BaseDTO  {
     private Integer movementPain;
 
     @ApiModelProperty(value = "过去24小时内最剧烈疼痛评分(0-10)", position = 4)
-    private Integer painLast24h;
+    private Integer painLast;
 
     @ApiModelProperty(value = "爆发痛每日发生频次", position = 5)
     private Integer flareUpFrequency;

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

@@ -1,5 +1,6 @@
 package cn.tr.module.smart.common.mapper;
 
+import cn.tr.module.smart.app.controller.dto.WxDoctorPainAssessmentDTO;
 import cn.tr.module.smart.common.po.BizPainAssessmentPO;
 import cn.tr.module.smart.common.dto.BizPainAssessmentDTO;
 import org.mapstruct.Mapper;
@@ -25,4 +26,7 @@ public interface BizPainAssessmentMapper {
 
     List<BizPainAssessmentPO> convertPOList(List<BizPainAssessmentDTO> source);
 
+    WxDoctorPainAssessmentDTO convertWxDto(BizPainAssessmentPO source);
+    List<WxDoctorPainAssessmentDTO> convertWxDtoList(List<BizPainAssessmentPO> source);
+
 }

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

@@ -35,7 +35,7 @@ public class BizPainAssessmentPO extends TenantPO {
 
     /** 过去24小时内最剧烈疼痛评分(0-10) */
     @ApiModelProperty(value = "过去24小时内最剧烈疼痛评分(0-10)", position = 4)
-    private Integer painLast24h;
+    private Integer painLast;
 
     /** 爆发痛每日发生频次 */
     @ApiModelProperty(value = "爆发痛每日发生频次", position = 5)
@@ -81,4 +81,7 @@ public class BizPainAssessmentPO extends TenantPO {
     @ApiModelProperty(value = "患者满意度评分(不满意/较满意/满意)", position = 15)
     private String satisfactionRating;
 
+    @ApiModelProperty(value = "手术ID" ,position = 16)
+    private String clinicId;
+
 }

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

@@ -3,9 +3,11 @@ package cn.tr.module.smart.common.service;
 import cn.tr.module.smart.app.controller.dto.WxDoctorClinicFinishDTO;
 import cn.tr.module.smart.app.controller.dto.WxDoctorClinicQuestionDTO;
 import cn.tr.module.smart.app.controller.dto.WxDoctorClinicRoomDTO;
+import cn.tr.module.smart.app.controller.dto.WxDoctorPainAssessmentDTO;
 import cn.tr.module.smart.app.controller.vo.WxDoctorClinicRoomVO;
 import cn.tr.module.smart.common.dto.BizClinicRoomDTO;
 import cn.tr.module.smart.common.dto.BizClinicRoomQueryDTO;
+import cn.tr.module.smart.common.dto.BizPainAssessmentDTO;
 import cn.tr.module.smart.wx.controller.vo.BizWxAppletClinicDetailVO;
 import cn.tr.module.smart.wx.controller.vo.BizWxAppletClinicVO;
 import cn.tr.module.smart.wx.controller.vo.BizWxDeptQuestionVO;
@@ -148,4 +150,6 @@ public interface IBizClinicRoomService {
      * @date 2025/7/14
      */
     WxDoctorClinicQuestionDTO selectQuestionnaire(String clinicId);
+
+    List<WxDoctorPainAssessmentDTO> getAssessInfo(String clinicId);
 }

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

@@ -9,13 +9,18 @@ import cn.tr.core.strategy.LoginUserStrategy;
 import cn.tr.module.smart.app.controller.dto.WxDoctorClinicFinishDTO;
 import cn.tr.module.smart.app.controller.dto.WxDoctorClinicQuestionDTO;
 import cn.tr.module.smart.app.controller.dto.WxDoctorClinicRoomDTO;
+import cn.tr.module.smart.app.controller.dto.WxDoctorPainAssessmentDTO;
 import cn.tr.module.smart.app.controller.vo.WxDoctorClinicRoomVO;
 import cn.tr.module.smart.common.dto.BizDeptDTO;
+import cn.tr.module.smart.common.dto.BizPainAssessmentDTO;
 import cn.tr.module.smart.common.enums.ClinicPhaseEnums;
 import cn.tr.module.smart.common.enums.UserTypeEnums;
+import cn.tr.module.smart.common.mapper.BizPainAssessmentMapper;
 import cn.tr.module.smart.common.po.BizClinicRoomWxUserPO;
+import cn.tr.module.smart.common.po.BizPainAssessmentPO;
 import cn.tr.module.smart.common.po.BizPatientPO;
 import cn.tr.module.smart.common.repository.BizClinicRoomWxUserRepository;
+import cn.tr.module.smart.common.repository.BizPainAssessmentRepository;
 import cn.tr.module.smart.common.repository.BizPatientRepository;
 import cn.tr.module.smart.common.service.*;
 import cn.tr.module.smart.wx.controller.vo.BizWxAppletClinicDetailVO;
@@ -75,6 +80,9 @@ public class BizClinicRoomServiceImpl implements IBizClinicRoomService {
     @Autowired
     private IBizDeptService bizDeptService;
 
+    @Autowired
+    private BizPainAssessmentRepository bizPainAssessmentRepository;
+
     @Override
     public List<BizWxAppletClinicVO> stdSelectWxAppletClinicList(BizWxAppletClinicQueryDTO query) {
         return baseRepository.stdSelectWxAppletClinicList(query);
@@ -382,6 +390,21 @@ public class BizClinicRoomServiceImpl implements IBizClinicRoomService {
         return questionDTO;
     }
 
+    @Override
+    public List<WxDoctorPainAssessmentDTO> getAssessInfo(String clinicId) {
+        BizClinicRoomPO bizClinicRoomPO = baseRepository.selectById(clinicId);
+        if (ObjectUtil.isNull(bizClinicRoomPO)) {
+            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001, "手术信息不存在");
+        }
+        List<BizPainAssessmentPO> bizPainAssessmentPOS = bizPainAssessmentRepository.selectList(new LambdaQueryWrapper<BizPainAssessmentPO>()
+                .eq(BizPainAssessmentPO::getClinicId, clinicId));
+        List<WxDoctorPainAssessmentDTO> wxDoctorPainAssessmentDTOS = BizPainAssessmentMapper.INSTANCE.convertWxDtoList(bizPainAssessmentPOS);
+        wxDoctorPainAssessmentDTOS.forEach(wxDoctorPainAssessmentDTO -> {
+            wxDoctorPainAssessmentDTO.setPatientName(bizClinicRoomPO.getPatientName());
+        });
+        return wxDoctorPainAssessmentDTOS ;
+    }
+
     /**
      * 微信小程序基于医生已填写的信息更新数据
      */