Prechádzať zdrojové kódy

Merge branch 'dev' into nb-pc-rabbitmq

18339543638 3 rokov pred
rodič
commit
e255c58404

+ 3 - 0
nb-service-api/web-service-api/src/main/java/com/nb/web/api/feign/result/InviteCodeResult.java

@@ -1,5 +1,6 @@
 package com.nb.web.api.feign.result;
 
+import com.nb.web.api.enums.ClinicManageEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -28,4 +29,6 @@ public class InviteCodeResult {
     private String tenantId;
     @ApiModelProperty("医院名称")
     private String tenantName;
+    @ApiModelProperty(value = "管理位置",example = "0(院内管理)1(居家管理)")
+    private ClinicManageEnum manage;
 }

+ 30 - 0
nb-service/app-assistant/src/main/java/com/nb/app/assistant/controller/PatientOperationController.java

@@ -10,6 +10,7 @@ import com.nb.app.assistant.api.entity.AssistantUserBindEntity;
 import com.nb.app.assistant.api.enums.BindEnum;
 import com.nb.app.assistant.service.LocalAssistantUserBindService;
 import com.nb.app.assistant.service.dto.AssistPatientResult;
+import com.nb.app.assistant.service.dto.EditAssistBindDto;
 import com.nb.auth.utils.SecurityUtil;
 import com.nb.core.exception.CustomException;
 import com.nb.core.result.R;
@@ -56,6 +57,35 @@ public class PatientOperationController {
         return R.success(userBindService.assistList(assistId));
     }
 
+
+    /**
+     * 描述: 查询绑定关系详情
+     * @author lifang
+     * @date 2022/8/17 22:55
+     * @param bindId
+     * @return  List<AssistPatientResult>
+     */
+    @PostMapping("/view/{bindId}")
+    @ApiOperation("根据id查询绑定关系详情")
+    public R detail(@PathVariable("bindId") String bindId){
+        return R.success(userBindService.getById(bindId));
+    }
+
+    /**
+     * 描述: 修改绑定关系
+     * @author lifang
+     * @date 2022/8/17 22:55
+     * @param source
+     * @return  List<AssistPatientResult>
+     */
+    @PostMapping("/edit")
+    @ApiOperation("修改绑定关系")
+    public R edit(@RequestBody@Validated EditAssistBindDto source){
+        return R.success(userBindService.update(source));
+    }
+
+
+
     /**
      * 描述: 添加看护人生成关联关系后向医生发起请求数据
      * @author lifang

+ 4 - 0
nb-service/app-assistant/src/main/java/com/nb/app/assistant/controller/vo/InviteCodePatientVo.java

@@ -1,6 +1,7 @@
 package com.nb.app.assistant.controller.vo;
 
 import com.nb.core.enums.SexEnum;
+import com.nb.web.api.enums.ClinicManageEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -56,4 +57,7 @@ public class InviteCodePatientVo {
 
     @ApiModelProperty("医生名称")
     private String doctorName;
+
+    @ApiModelProperty(value = "管理位置",example = "0(院内管理)1(居家管理)")
+    private ClinicManageEnum manage;
 }

+ 3 - 3
nb-service/app-assistant/src/main/java/com/nb/app/assistant/controller/vo/MonitorAddVo.java

@@ -23,7 +23,7 @@ public class MonitorAddVo {
     @NotNull(message = "被监护病人id不能为空")
     private String patientId;
 
-    @ApiModelProperty(value = "被监护病人性别")
+    @ApiModelProperty(value = "被监护病人性别",example = "1(男) 2(女) 3(未知)")
     @NotNull(message = "被监护病人性别不能为空")
     private SexEnum patientSex;
 
@@ -45,10 +45,10 @@ public class MonitorAddVo {
     @NotNull(message = "app医生端用户真实姓名不能为空")
     private String doctorName;
 
-    @ApiModelProperty(value = "看护位置",allowableValues = "0(院内管理) 1(居家管理)")
+    @ApiModelProperty(value = "看护位置",example = "0(院内管理) 1(居家管理)")
     private ClinicManageEnum manageType;
 
-    @ApiModelProperty(value = "申请途径",allowableValues = "0(手动申请) 1(邀请码申请)",required = true)
+    @ApiModelProperty(value = "申请途径",example = "0(手动申请) 1(邀请码申请)",required = true)
     @NotNull(message = "申请途径不能为空")
     private ApplyEnum applyType;
 

+ 15 - 0
nb-service/app-assistant/src/main/java/com/nb/app/assistant/service/LocalAssistantUserBindService.java

@@ -21,6 +21,7 @@ import com.nb.app.assistant.constant.UnEvalConstant;
 import com.nb.app.assistant.delay.UnEvalNotifyConfig;
 import com.nb.app.assistant.mapper.AssistantUserBindMapper;
 import com.nb.app.assistant.service.dto.AssistPatientResult;
+import com.nb.app.assistant.service.dto.EditAssistBindDto;
 import com.nb.app.msg.bean.MsgBean;
 import com.nb.app.msg.enums.MsgEnum;
 import com.nb.app.msg.event.SaveMsgEvent;
@@ -179,6 +180,10 @@ public class LocalAssistantUserBindService extends BaseService<AssistantUserBind
         if(userBind==null){
             throw new CustomException("该绑定关系不存在");
         }
+        String loginId = String.valueOf(SecurityUtil.getId());
+        if (!ObjectUtil.equal(loginId, source.getDoctorId())) {
+            throw new CustomException("该绑定申请所指定的医生不是当前用户,无法操作");
+        }
         Boolean isDefault=false;
         if(source.getAgree()){
             //判断是否重复绑定
@@ -358,4 +363,14 @@ public class LocalAssistantUserBindService extends BaseService<AssistantUserBind
                 .set(AssistantUserBindEntity::getDefault_,true));
         return true;
     }
+
+    public Boolean update(EditAssistBindDto source) {
+        AssistantUserBindEntity userBind = this.getById(source.getId());
+        if(BindEnum.WAITING.equals(userBind.getStatus())){
+            AssistantUserBindEntity userBindEntity = BeanUtil.toBean(source, AssistantUserBindEntity.class);
+            return this.updateById(userBindEntity);
+        }else {
+            throw new CustomException("当前绑定关系未处于等待状态,无法修改");
+        }
+    }
 }

+ 56 - 0
nb-service/app-assistant/src/main/java/com/nb/app/assistant/service/dto/EditAssistBindDto.java

@@ -0,0 +1,56 @@
+package com.nb.app.assistant.service.dto;
+
+import com.nb.core.enums.SexEnum;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author lifang
+ * @version 1.0.0
+ * @ClassName EditAssistBindDto.java
+ * @Description TODO
+ * @createTime 2022年09月28日 09:25:00
+ */
+@Data
+@ApiModel("修改看护绑定关系")
+public class EditAssistBindDto {
+    @ApiModelProperty(value = "绑定id",required = true)
+    @NotNull(message = "绑定id不能为空")
+    private String id;
+
+    @ApiModelProperty(value = "病人id",required = true)
+    @NotNull(message = "病人id不能为空")
+    private String patientId;
+
+    @ApiModelProperty(value = "住院号",required = true)
+    @NotNull(message = "住院号不能为空")
+    private String patientCode;
+
+    @ApiModelProperty(value = "病人姓名")
+    private String patientName;
+
+    @ApiModelProperty(value = "病人性别")
+    private SexEnum patientSex;
+
+    @ApiModelProperty(value = "病人年龄")
+    private String patientAge;
+
+    @ApiModelProperty(value = "医生名称",required = true)
+    @NotNull(message = "医生名称不能为空")
+    private String doctorName;
+
+    @ApiModelProperty(value = "医生id",required = true)
+    @NotNull(message = "医生id不能为空")
+    private String doctorId;
+
+    @ApiModelProperty(value = "医院id",required = true)
+    @NotNull(message = "医院id不能为空")
+    private String tenantId;
+
+    @ApiModelProperty(value = "医院名称",required = true)
+    @NotNull(message = "医院名称不能为空")
+    private String tenantName;
+}

+ 16 - 5
nb-service/app-doctor/src/main/java/com/nb/app/doctor/controller/PatientMonitorController.java

@@ -9,6 +9,7 @@ import com.nb.app.assistant.api.entity.AssistantUserBindEntity;
 import com.nb.app.assistant.api.feign.IAssistantUserBindClient;
 import com.nb.app.assistant.api.feign.result.ContactQuery;
 import com.nb.app.assistant.api.feign.result.UpdateBindPatientParam;
+import com.nb.app.doctor.controller.vo.ChangeManageVo;
 import com.nb.app.doctor.controller.vo.InviteCodeVo;
 import com.nb.app.doctor.controller.vo.UpdateBindPatientVo;
 import com.nb.app.doctor.service.dto.PatientMonitorConsultResult;
@@ -67,11 +68,14 @@ public class PatientMonitorController {
                                 String patientId = bind.getPatientId();
                                 String assistId = bind.getAssistId();
                                 if (lifeCycleManage.isOnline(assistId)) {
-                                    resultGroupByPatientId.get(patientId)
-                                            .forEach(consultResult->{
-                                                consultResult.setAssistId(assistId);
-                                                consultResult.setOnline(true);
-                                            });
+                                    List<PatientMonitorConsultResult> groupByPatientId = resultGroupByPatientId.get(patientId);
+                                    if (CollectionUtil.isNotEmpty(groupByPatientId)) {
+                                        groupByPatientId
+                                                .forEach(consultResult->{
+                                                    consultResult.setAssistId(assistId);
+                                                    consultResult.setOnline(true);
+                                                });
+                                    }
                                 }
                             });
                 }
@@ -80,6 +84,13 @@ public class PatientMonitorController {
         return R.success(results);
     }
 
+    @ApiOperation("修改看护位置")
+    @PostMapping("/edit/manage")
+    public R<Boolean> isOnline(@RequestBody@Validated ChangeManageVo vo){
+        return R.success(patientClient.setManageType(vo.getClinicId(),vo.getManage()));
+    }
+
+
     @ApiOperation("判断看护人是否在线")
     @PostMapping("/online/{assistId}")
     public R<Boolean> isOnline(@PathVariable("assistId")String assistId){

+ 27 - 0
nb-service/app-doctor/src/main/java/com/nb/app/doctor/controller/vo/ChangeManageVo.java

@@ -0,0 +1,27 @@
+package com.nb.app.doctor.controller.vo;
+
+import com.nb.web.api.enums.ClinicManageEnum;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author lifang
+ * @version 1.0.0
+ * @ClassName ChangeManageVo.java
+ * @Description TODO
+ * @createTime 2022年09月28日 09:20:00
+ */
+@Data
+@ApiModel("修改看护位置")
+public class ChangeManageVo {
+    @ApiModelProperty(value = "临床id",required = true)
+    @NotNull(message = "临床id不能为空")
+    private String clinicId;
+
+    @ApiModelProperty(value = "看护位置",required = true,example = "0(院内管理)1(居家管理)")
+    @NotNull(message = "看护位置不能为空")
+    private ClinicManageEnum manage;
+}

+ 5 - 5
nb-service/app-doctor/src/main/java/com/nb/app/doctor/controller/vo/MonitorEvalVo.java

@@ -58,22 +58,22 @@ public class MonitorEvalVo {
     private String eruptPainDuration;
 
     @ApiModelProperty("恶心呕吐")
-    private Integer nauseaVomit;
+    private String nauseaVomit;
 
     @ApiModelProperty("瘙痒")
-    private Integer itch;
+    private String itch;
 
     @ApiModelProperty("眩晕")
-    private Integer vertigo;
+    private String vertigo;
 
     @ApiModelProperty("喉咙疼痛")
-    private Integer soreThroat;
+    private String soreThroat;
 
     @ApiModelProperty("声音嘶哑")
     private String hoarseness;
 
     @ApiModelProperty("满意度")
-    private Integer satisfaction;
+    private String satisfaction;
 
     @ApiModelProperty(value = "泵号")
     private String deviceId;

+ 2 - 1
nb-service/web-service/src/main/java/com/nb/web/service/bus/service/LocalBusPatientService.java

@@ -598,7 +598,7 @@ public class LocalBusPatientService extends BaseService<BusPatientMapper, BusPat
         if(hospital==null){
             throw new CustomException("当前医院不存在,请刷新后再试");
         }
-        PatientInviteCodeUtil.InviteCodeNode inviteCodeNode = inviteCodeUtil.generateCode(6, tenantId,hospital.getName(),doctorId,doctorName,patient.getId(),patientCode);
+        PatientInviteCodeUtil.InviteCodeNode inviteCodeNode = inviteCodeUtil.generateCode(6, tenantId,hospital.getName(),doctorId,doctorName,patient.getId(),patientCode,manageType);
 
         result.setPatientCode(patientCode);
         result.setPatientId(patient.getId());
@@ -606,6 +606,7 @@ public class LocalBusPatientService extends BaseService<BusPatientMapper, BusPat
         result.setTenantName(hospital.getName());
         result.setInviteCode(inviteCodeNode.getInviteCode());
         result.setExpiredAtTime(inviteCodeNode.getExpiredAtTime());
+        result.setManage(manageType);
         return result;
     }
 

+ 4 - 1
nb-service/web-service/src/main/java/com/nb/web/service/bus/utils/PatientInviteCodeUtil.java

@@ -4,6 +4,7 @@ import cn.hutool.core.util.RandomUtil;
 import cn.hutool.core.util.StrUtil;
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.nb.core.exception.CustomException;
+import com.nb.web.api.enums.ClinicManageEnum;
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
 import org.redisson.api.RLock;
@@ -43,7 +44,7 @@ public class PatientInviteCodeUtil {
         this.patientCodeMap = redissonClient.getMapCache("patient-code-invite");
     }
 
-    public synchronized InviteCodeNode generateCode(int length,String tenantId,String tenantName, String doctorId, String doctorName,String patientId,String patientCode){
+    public synchronized InviteCodeNode generateCode(int length, String tenantId, String tenantName, String doctorId, String doctorName, String patientId, String patientCode, ClinicManageEnum manageType){
         String key= Optional.ofNullable(doctorId).orElse("") +patientCode;
         InviteCodeNode result = patientCodeMap.get(key);
         if(result!=null){
@@ -56,6 +57,7 @@ public class PatientInviteCodeUtil {
         result.setDoctorName(doctorName);
         result.setTenantName(tenantName);
         result.setPatientCode(patientCode);
+        result.setManage(manageType);
         for (int i = 0; i < 10; i++) {
             String code = RandomUtil.randomNumbers(length);
             if(inviteCodeMap.get(code)==null){
@@ -97,6 +99,7 @@ public class PatientInviteCodeUtil {
         private String doctorName;
         private String  patientCode;
         private String inviteCode;
+        private ClinicManageEnum manage;
         private Date expiredAtTime;
 
     }