Browse Source

危急值导出功能

lighter 6 months ago
parent
commit
c27f43a72b

+ 5 - 0
src/main/java/thyyxxk/webserver/controller/zhuyuanyizheng/CriticalValuesController.java

@@ -38,6 +38,11 @@ public class CriticalValuesController {
         return service.getCriticalValues(patNo, id);
     }
 
+    @GetMapping("/getExportCriticalValues")
+    public ResultVo<List<CriticalValue>> getExportCriticalValues(@RequestParam("label") String label) {
+        return service.getExportCriticalValues(label);
+    }
+
     @GetMapping("/handleZyCriticalValue")
     public ResultVo<String> handleZyCriticalValue(@RequestParam("id") Integer id) {
         return service.handleZyCriticalValue(id);

+ 6 - 0
src/main/java/thyyxxk/webserver/dao/his/zhuyuanyisheng/PatientCriticalValuesDao.java

@@ -55,6 +55,12 @@ public interface PatientCriticalValuesDao {
             "from t_critical_message where patient_type='INPATIENT' ")
     List<CriticalValue> selectAllInpatientCriticalValues();
 
+    @Select("select *, " +
+            "handleStaffName=(select rtrim(d.name) from a_employee_mi d where d.code=handle_staff) " +
+            "from t_critical_message where patient_type='INPATIENT' " +
+            "and send_time>=#{d1} and send_time<=#{d2}")
+    List<CriticalValue> selectExportInpatientCriticalValues(String d1, String d2);
+
     @Select("select *, " +
             "handleStaffName=(select rtrim(d.name) from a_employee_mi d where d.code=handle_staff) " +
             "from t_critical_message where pat_no=#{patNo}")

+ 32 - 0
src/main/java/thyyxxk/webserver/service/zhuyuanyisheng/PatientCriticalValuesService.java

@@ -237,6 +237,38 @@ public class PatientCriticalValuesService {
         return ResultVoUtil.success(list);
     }
 
+    public ResultVo<List<CriticalValue>> getExportCriticalValues(String label) {
+        String[] dateArr = getDateArrByLabel(label);
+        List<CriticalValue> list = dao.selectExportInpatientCriticalValues(dateArr[0], dateArr[1]);
+        if (list.isEmpty()) {
+            return ResultVoUtil.fail(ExceptionEnum.NO_DATA_EXIST);
+        }
+        return ResultVoUtil.success(list);
+    }
+
+    private String[] getDateArrByLabel(String label) {
+        String end = DateUtil.formatDate(new Date()) + " 23:59:59";
+        String start;
+        switch (label) {
+            case "1week":
+                start = DateUtil.getOffsetDate(-7) + " 00:00:00";
+                return new String[]{start, end};
+            case "1month":
+                start = DateUtil.getOffsetDate(-30) + " 00:00:00";
+                return new String[]{start, end};
+            case "3months":
+                start = DateUtil.getOffsetDate(-90) + " 00:00:00";
+                return new String[]{start, end};
+            case "6months":
+                start = DateUtil.getOffsetDate(-180) + " 00:00:00";
+                return new String[]{start, end};
+            case "1year":
+            default:
+                start = DateUtil.getOffsetDate(-365) + " 00:00:00";
+                return new String[]{start, end};
+        }
+    }
+
     public ResultVo<String> handleZyCriticalValue(Integer id) {
         String handleStaff = TokenUtil.getInstance().getTokenUserId();
         String url = "http://192.168.200.6:8320/hospitalAppsApi/criticalValue/updateState?user=" + handleStaff + "&id=" + id;