Explorar el Código

研究队列增加患者最新手术信息查询列表

wangzl hace 2 meses
padre
commit
130f821cf3

+ 10 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/controller/BizReasearchQueueClinicController.java

@@ -1,7 +1,9 @@
 package cn.tr.module.smart.common.controller;
 
+import cn.tr.module.smart.common.controller.vo.BizReasearchQueueClinicAndPatientVO;
 import cn.tr.module.smart.common.controller.vo.BizReasearchQueueClinicVO;
 import cn.tr.module.smart.common.controller.vo.BizReasearchQueueQuestionAnswerVO;
+import cn.tr.module.smart.common.dto.BizClinicRoomAndPatientQueryDTO;
 import cn.tr.module.smart.common.dto.BizReasearchQueueAddClinicDTO;
 import cn.tr.module.smart.common.dto.BizReasearchQueueClinicQuestionAnswerRecordQueryDTO;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
@@ -62,4 +64,12 @@ public class BizReasearchQueueClinicController extends BaseController{
     public CommonResult<List<BizReasearchQueueQuestionAnswerVO> > questionAnswerList(@RequestBody BizReasearchQueueClinicQuestionAnswerRecordQueryDTO source) {
         return CommonResult.success(bizReasearchQueueClinicService.stdSelectQuestionAnswerList(source));
     }
+
+    @ApiOperationSupport(author = "wangzl",order = 6)
+    @ApiOperation(value="添加队列手术列表",notes = "权限: 无")
+    @PostMapping("/addClinicList")
+    public TableDataInfo<BizReasearchQueueClinicAndPatientVO> addClinicList(@RequestBody @Validated BizClinicRoomAndPatientQueryDTO source) {
+        startPage();
+        return getDataTable(bizReasearchQueueClinicService.addClinicList(source));
+    }
 }

+ 40 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/controller/vo/BizReasearchQueueClinicAndPatientVO.java

@@ -0,0 +1,40 @@
+package cn.tr.module.smart.common.controller.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * TODO
+ *
+ * @author wangzl
+ * @date 2025/10/20 15:41
+ */
+@Data
+@ApiModel("研究队列中的手术和患者信息表")
+public class BizReasearchQueueClinicAndPatientVO {
+
+    @ApiModelProperty(value = "id", position = 1)
+    private String id;
+
+    @ApiModelProperty(value = "病人姓名", position = 2)
+    private String name;
+
+    @ApiModelProperty(value = "病人性别", position = 3)
+    private String gender;
+
+    @ApiModelProperty(value = "病人年龄", position = 4)
+    private Integer age;
+
+    @ApiModelProperty(value = "当前手术id", position = 6)
+    private String currentClinicId;
+
+    @ApiModelProperty(value = "手术名称", position = 7)
+    private String clinicName;
+
+    @ApiModelProperty(value = "手术开始时间", position = 8)
+    private Date clinicStartTime;
+
+}

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

@@ -0,0 +1,28 @@
+package cn.tr.module.smart.common.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * TODO
+ *
+ * @author wangzl
+ * @date 2025/10/20 15:31
+ */
+@Data
+@ApiModel("研究队列查询关联手术参数")
+public class BizClinicRoomAndPatientQueryDTO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "队列id",required = true)
+    @NotBlank(message = "队列id不能为空")
+    private String queueId;
+
+    @ApiModelProperty("检索条件")
+    private String condition;
+}

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

@@ -1,7 +1,9 @@
 package cn.tr.module.smart.common.repository;
 
+import cn.tr.module.smart.common.controller.vo.BizReasearchQueueClinicAndPatientVO;
 import cn.tr.module.smart.common.controller.vo.BizReasearchQueueClinicVO;
 import cn.tr.module.smart.common.controller.vo.BizReasearchQueuePushVO;
+import cn.tr.module.smart.common.dto.BizClinicRoomAndPatientQueryDTO;
 import cn.tr.module.smart.common.dto.BizReasearchQueueClinicQueryDTO;
 import cn.tr.module.smart.wx.dto.BizMpPublishInfoDTO;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -26,4 +28,6 @@ public interface BizReasearchQueueClinicRepository extends BaseMapper<BizReasear
     BizMpPublishInfoDTO selectPushInfo(@Param("id") String queueClinicId);
 
     BizReasearchQueuePushVO stdSelectBizReasearchQueueClinicById(@Param("id") String id);
+
+    List<BizReasearchQueueClinicAndPatientVO>  stdSelectClinicAndPatientList(@Param("query") BizClinicRoomAndPatientQueryDTO query);
 }

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

@@ -1,7 +1,9 @@
 package cn.tr.module.smart.common.service;
 
+import cn.tr.module.smart.common.controller.vo.BizReasearchQueueClinicAndPatientVO;
 import cn.tr.module.smart.common.controller.vo.BizReasearchQueueClinicVO;
 import cn.tr.module.smart.common.controller.vo.BizReasearchQueueQuestionAnswerVO;
+import cn.tr.module.smart.common.dto.BizClinicRoomAndPatientQueryDTO;
 import cn.tr.module.smart.common.dto.BizReasearchQueueAddClinicDTO;
 import cn.tr.module.smart.common.dto.BizReasearchQueueClinicQueryDTO;
 import cn.tr.module.smart.common.dto.BizReasearchQueueClinicQuestionAnswerRecordQueryDTO;
@@ -48,4 +50,10 @@ public interface IBizReasearchQueueClinicService{
      * @param id
      */
     void pushReasearchQueueQuestion(String id);
+    /**
+     * @description: 查询研究队列可以关联的手术和患者信息
+     * @author wangzl
+     * @date 2025/10/20
+     */
+    List<BizReasearchQueueClinicAndPatientVO> addClinicList(BizClinicRoomAndPatientQueryDTO source);
 }

+ 14 - 4
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/impl/BizReasearchQueueClinicServiceImpl.java

@@ -5,12 +5,11 @@ import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.tr.core.annotation.TenantIgnore;
 import cn.tr.core.exception.TRExcCode;
+import cn.tr.module.smart.common.controller.vo.BizReasearchQueueClinicAndPatientVO;
 import cn.tr.module.smart.common.controller.vo.BizReasearchQueueClinicVO;
 import cn.tr.module.smart.common.controller.vo.BizReasearchQueuePushVO;
 import cn.tr.module.smart.common.controller.vo.BizReasearchQueueQuestionAnswerVO;
-import cn.tr.module.smart.common.dto.BizClinicRoomUndoDTO;
-import cn.tr.module.smart.common.dto.BizReasearchQueueAddClinicDTO;
-import cn.tr.module.smart.common.dto.BizReasearchQueueClinicQuestionAnswerRecordQueryDTO;
+import cn.tr.module.smart.common.dto.*;
 import cn.tr.module.smart.common.enums.ClinicUndoType;
 import cn.tr.module.smart.common.enums.MpPublishTaskTypeEnums;
 import cn.tr.module.smart.common.enums.RabbitMQConstant;
@@ -32,7 +31,7 @@ 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.dto.BizReasearchQueueClinicQueryDTO;
+
 import java.util.*;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
@@ -241,6 +240,17 @@ public class BizReasearchQueueClinicServiceImpl extends ServiceImpl<BizReasearch
         }
     }
 
+    /**
+     * @param source
+     * @description: 查询研究队列可以关联的手术和患者信息
+     * @author wangzl
+     * @date 2025/10/20
+     */
+    @Override
+    public List<BizReasearchQueueClinicAndPatientVO> addClinicList(BizClinicRoomAndPatientQueryDTO source) {
+        return baseMapper.stdSelectClinicAndPatientList(source);
+    }
+
 
     //执行推送逻辑
     private void sendMessage(BizReasearchQueuePushVO source,long nextPushInterval){

+ 28 - 0
tr-modules/tr-module-smartFollowUp/src/main/resources/mapper/smart/BizReasearchQueueClinicMapper.xml

@@ -116,4 +116,32 @@
         join biz_clinic_room as bcr on bcr.id = brqc.clinic_room_id
         where brqc.id = #{id}
     </select>
+    <select id="stdSelectClinicAndPatientList"
+            resultType="cn.tr.module.smart.common.controller.vo.BizReasearchQueueClinicAndPatientVO">
+        SELECT
+        bp.id,
+        bcr.patient_name AS NAME,
+        bcr.patient_age AS age,
+        bcr.patient_gender AS gender,
+        bcr.clinic_name AS clinicName,
+        bcr.clinic_start_time AS clinicStartTime,
+        bp.current_clinic_id AS currentClinicId,
+        bp.create_by AS create_by,
+        bp.create_time AS create_time,
+        bp.update_time AS update_time,
+        bp.update_by AS update_by
+        FROM
+        biz_patient bp
+        LEFT JOIN biz_clinic_room bcr ON bp.current_clinic_id = bcr.id
+        LEFT JOIN biz_reasearch_queue_clinic bqc ON bcr.id = bqc.clinic_room_id
+        <where>
+            bcr.deleted = 0
+            <if test="query.queueId != null and query.queueId != ''">
+                AND COALESCE ( bqc.queue_id, '' ) NOT IN ( #{query.queueId})
+            </if>
+            <if test="query.condition != null and query.condition != ''">
+                AND bcr.patient_name LIKE CONCAT('%', #{query.condition}, '%')
+            </if>
+        </where>
+    </select>
 </mapper>