浏览代码

不良事件添加内容

lighter 1 年之前
父节点
当前提交
fee15241e1

+ 5 - 0
src/main/java/thyyxxk/webserver/controller/inpatient/adverseevent/AdverseEventController.java

@@ -78,4 +78,9 @@ public class AdverseEventController {
     public ResultVo<String> updatePrinted(@RequestParam("pid") Integer pid) {
         return service.updatePrinted(pid);
     }
+
+    @PostMapping("/updateFeedback")
+    public ResultVo<String> updateFeedback(@RequestBody HandlerInfo body) {
+        return service.updateFeedback(body);
+    }
 }

+ 17 - 33
src/main/java/thyyxxk/webserver/dao/his/inpatient/adverseevent/AdverseEventDao.java

@@ -20,14 +20,15 @@ public interface AdverseEventDao {
             "nurse_reason_else, patient_reason, patient_reason_else, environ_reason, " +
             "environ_reason_else, manage_reason, manage_reason_else, pro_nurse, " +
             "pro_nurse_else, pro_patient, pro_patient_else, pro_environ, pro_environ_else, " +
-            "pro_manage, pro_manage_else, user_id, dept_dealer_id, dept_dealer_name) VALUES " +
+            "pro_manage, pro_manage_else, user_id, dept_dealer_id, dept_dealer_name," +
+            "event_result) VALUES " +
             "(#{tid}, #{category}, #{occurDatetime}, #{submitDatetime}, #{department}, #{deptCode}," +
             "#{userName}, #{userLevel}, #{workYear}, #{course}, #{result}, #{nurseReason}, " +
             "#{nurseReasonElse}, #{patientReason}, #{patientReasonElse}, #{environReason}, " +
             "#{environReasonElse}, #{manageReason}, #{manageReasonElse}, #{proNurse}, " +
             "#{proNurseElse}, #{proPatient}, #{proPatientElse}, #{proEnviron}, " +
             "#{proEnvironElse}, #{proManage}, #{proManageElse}, #{userId}," +
-            "#{deptDealerId}, #{deptDealerName})")
+            "#{deptDealerId}, #{deptDealerName}, #{eventResult})")
     void submitNewReport(ReportDetail reportDetail);
 
     @Update("update adverse_event set category=#{category}, occur_datetime=#{occurDatetime}, " +
@@ -40,10 +41,10 @@ public interface AdverseEventDao {
             "pro_nurse_else=#{proNurseElse}, pro_patient=#{proPatient}, " +
             "pro_patient_else=#{proPatientElse}, pro_environ=#{proEnviron}, " +
             "pro_environ_else=#{proEnvironElse}, pro_manage=#{proManage}, " +
-            "pro_manage_else=#{proManageElse} where p_id=#{pid}")
+            "pro_manage_else=#{proManageElse}, event_result=#{eventResult} where p_id=#{pid}")
     void modifyReport(ReportDetail reportDetail);
 
-    @Select("select p_id,category,occur_datetime,submit_datetime,accepted,handled " +
+    @Select("select p_id,category,occur_datetime,submit_datetime,handled " +
             "from adverse_event with(nolock) where user_id=#{userId} and deleted=0 " +
             "order by occur_datetime desc")
     List<ReportIndex> getHistories(@Param("userId") String paramString);
@@ -56,7 +57,7 @@ public interface AdverseEventDao {
     List<String> getLeaderDepts(@Param("code") String code);
 
     @Select("<script>" +
-            "select p_id,category,occur_datetime,submit_datetime,user_name,accepted,handled " +
+            "select p_id,category,occur_datetime,submit_datetime,user_name,handled " +
             "from adverse_event with(nolock) where deleted=0 and dept_code in " +
             "<foreach collection='deptCodes' item='deptCode' separator=',' open='(' close=')'>" +
             "#{deptCode}" +
@@ -65,26 +66,6 @@ public interface AdverseEventDao {
             "</script>")
     List<ReportIndex> getReportsForDeptLeader(@Param("deptCodes") List<String> deptCodes);
 
-    @Select("<script>" +
-            "select p_id,category,occur_datetime,submit_datetime,user_name " +
-            "from adverse_event with(nolock) where dept_code in " +
-            "<foreach collection='deptCodes' item='deptCode' separator=',' open='(' close=')'>" +
-            "#{deptCode}" +
-            "</foreach> " +
-            "and accepted=0 and deleted=0 order by occur_datetime desc" +
-            "</script>")
-    List<ReportIndex> getUnAcceptedReports(@Param("deptCodes") List<String> deptCodes);
-
-    @Select("<script>" +
-            "select p_id,category,occur_datetime,submit_datetime,user_name " +
-            "from adverse_event with(nolock) where dept_code in " +
-            "<foreach collection='deptCodes' item='deptCode' separator=',' open='(' close=')'>" +
-            "#{deptCode}" +
-            "</foreach> " +
-            "and accepted=1 and handled=0 and deleted=0 order by occur_datetime desc" +
-            "</script>")
-    List<ReportIndex> getAcceptedReports(@Param("deptCodes") List<String> deptCodes);
-
     @Select("<script>" +
             "select p_id,category,occur_datetime,submit_datetime,user_name " +
             "from adverse_event with(nolock) where dept_code in " +
@@ -95,22 +76,20 @@ public interface AdverseEventDao {
             "</script>")
     List<ReportIndex> getHandledReports(@Param("deptCodes") List<String> deptCodes);
 
-    @Select("select p_id,category,occur_datetime,submit_datetime,accepted,handled," +
-            "user_name,dept_code, department, dept_dealer_name, printed from adverse_event with(nolock) where " +
-            "deleted=0 and occur_datetime>=#{start} and occur_datetime<=#{end} and dept_code like #{ward} " +
-            "order by occur_datetime desc")
+    @Select("select p_id,category,occur_datetime,submit_datetime,handled," +
+            "user_name,dept_code, department, dept_dealer_name, printed " +
+            "from adverse_event with(nolock) where " +
+            "deleted=0 and occur_datetime>=#{start} and occur_datetime<=#{end} " +
+            "and dept_code like #{ward} order by occur_datetime desc")
     IPage<ReportIndex> getAllReports(IPage<ReportIndex> iPage, @Param("start") Date start,
                                     @Param("end") Date end, @Param("ward") String ward);
 
-    @Update("update adverse_event set accepted=1 where p_id=#{pid}")
-    void updateAccepted(@Param("pid") Integer pid);
-
     @Select("select rtrim(code_rs) code, rtrim(name) name from a_employee_mi with(nolock) where code=#{code}")
     CodeName selectUserCodeRsAndName(@Param("code") String code);
 
     @Update("update adverse_event set handled=1, dept_dealing=#{dealing}, " +
             "dept_dealer_id=#{userId}, dept_dealer_name=#{userName}, " +
-            "dept_deal_time=#{datetime} where p_id=#{pid}")
+            "dept_deal_time=#{datetime},event_level=#{eventLevel} where p_id=#{pid}")
     void updateDeptHandled(HandlerInfo handlerInfo);
 
     @Update("update adverse_event set final_dealing=#{dealing}, " +
@@ -127,4 +106,9 @@ public interface AdverseEventDao {
 
     @Update("update adverse_event set printed=1 where p_id=#{pid}")
     void updatePrinted(@Param("pid") Integer pid);
+
+    @Update("update adverse_event set feedback=#{feedback}," +
+            "feedback_staff_id=#{userId},feedback_staff_name=#{userName}, " +
+            "feedback_time=getdate() where p_id=#{pid}")
+    void updateFeedback(HandlerInfo handlerInfo);
 }

+ 4 - 0
src/main/java/thyyxxk/webserver/entity/adverseevent/HandlerInfo.java

@@ -5,12 +5,16 @@ import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.util.Date;
+import java.util.List;
 
 @Data
 public class HandlerInfo {
     private Integer pid;
     private String userId;
     private String userName;
+    private Integer eventLevel;
+    private String feedback;
+    private List<String> feedbackList;
     private String dealing;
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")

+ 9 - 0
src/main/java/thyyxxk/webserver/entity/adverseevent/ReportDetail.java

@@ -23,6 +23,7 @@ public class ReportDetail {
     private String userName;
     private String userLevel;
     private Integer workYear;
+    private Integer eventResult;
     private String course;
     private String result;
     private String nurseReason;
@@ -52,6 +53,7 @@ public class ReportDetail {
     private String userId;
     private String deptDealerId;
     private String deptDealerName;
+    private Integer eventLevel;
     private String deptDealing;
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@@ -69,6 +71,13 @@ public class ReportDetail {
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
     private Date deleteTime;
+
+    private String feedback;
+    private List<String> feedbackList;
+    private String feedbackStaffId;
+    private String feedbackStaffName;
+    private Date feedbackTime;
+
     private Integer printed;
     private Boolean isModify;
 

+ 0 - 1
src/main/java/thyyxxk/webserver/entity/adverseevent/ReportIndex.java

@@ -19,7 +19,6 @@ public class ReportIndex {
     private String userName;
     private String deptCode;
     private String department;
-    private Integer accepted;
     private Integer handled;
     private String deptDealerName;
     private Integer printed;

+ 16 - 8
src/main/java/thyyxxk/webserver/service/inpatient/adverseevent/AdverseEventService.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import thyyxxk.webserver.config.exception.ExceptionEnum;
 import thyyxxk.webserver.constants.Capacity;
 import thyyxxk.webserver.dao.his.inpatient.adverseevent.AdverseEventDao;
 import thyyxxk.webserver.entity.ResultVo;
@@ -14,10 +15,7 @@ import thyyxxk.webserver.entity.adverseevent.ReportDetail;
 import thyyxxk.webserver.entity.adverseevent.ReportIndex;
 import thyyxxk.webserver.entity.dictionary.CodeName;
 import thyyxxk.webserver.service.redislike.RedisLikeService;
-import thyyxxk.webserver.utils.DateUtil;
-import thyyxxk.webserver.utils.ExcelUtil;
-import thyyxxk.webserver.utils.ResultVoUtil;
-import thyyxxk.webserver.utils.TokenUtil;
+import thyyxxk.webserver.utils.*;
 
 import javax.servlet.http.HttpServletResponse;
 import java.util.*;
@@ -30,7 +28,6 @@ import java.util.*;
 public class AdverseEventService {
     private final AdverseEventDao dao;
     private final RedisLikeService redis;
-    private static final String DEPT_LEVEL = "dept";
 
     @Autowired
     public AdverseEventService(AdverseEventDao dao, RedisLikeService redis) {
@@ -65,9 +62,6 @@ public class AdverseEventService {
     }
 
     public ResultVo<ReportDetail> getReportDetail(Integer pid, String level) {
-        if (DEPT_LEVEL.equals(level)) {
-            dao.updateAccepted(pid);
-        }
         return ResultVoUtil.success(getReport(pid));
     }
 
@@ -139,6 +133,19 @@ public class AdverseEventService {
         return ResultVoUtil.success();
     }
 
+    public ResultVo<String> updateFeedback(HandlerInfo body) {
+        if (ListUtil.isBlank(body.getFeedbackList())) {
+            return ResultVoUtil.fail(ExceptionEnum.NULL_POINTER, "反馈选项不能为空!");
+        }
+        body.setFeedback(arrToStr(body.getFeedbackList()));
+        String userid = TokenUtil.getInstance().getTokenUserId();
+        String userName = redis.getEmployeeName(userid);
+        body.setUserId(userid);
+        body.setUserName(userName);
+        dao.updateFeedback(body);
+        return ResultVoUtil.success();
+    }
+
     private ReportDetail getReport(Integer pid) {
         ReportDetail report = dao.getReportDetail(pid);
         report.setNurseReasonArr(strToArr(report.getNurseReason()));
@@ -149,6 +156,7 @@ public class AdverseEventService {
         report.setProPatientArr(strToArr(report.getProPatient()));
         report.setProEnvironArr(strToArr(report.getProEnviron()));
         report.setProManageArr(strToArr(report.getProManage()));
+        report.setFeedbackList(strToArr(report.getFeedback()));
         return report;
     }