Переглянути джерело

病案复印/封存/借阅导出

lighter 1 рік тому
батько
коміт
dba1445b7b

+ 12 - 4
src/main/java/thyyxxk/webserver/controller/inpatient/casefrontsheet/FrontSheetExportController.java

@@ -1,13 +1,12 @@
 package thyyxxk.webserver.controller.inpatient.casefrontsheet;
 
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 import thyyxxk.webserver.config.exception.ExceptionEnum;
 import thyyxxk.webserver.entity.ResultVo;
 import thyyxxk.webserver.entity.casefrontsheet.CaseFrontsheetMain;
+import thyyxxk.webserver.entity.casefrontsheet.request.ExportDclRequest;
+import thyyxxk.webserver.entity.casefrontsheet.response.ExportDclResponse;
 import thyyxxk.webserver.service.inpatient.casefrontsheet.CaseFrontSheetExportService;
 import thyyxxk.webserver.utils.ResultVoUtil;
 
@@ -31,4 +30,13 @@ public class FrontSheetExportController {
         }
         return ResultVoUtil.success(list);
     }
+
+    @PostMapping("/getExportableDclData")
+    public ResultVo<List<ExportDclResponse>> getExportableDclData(@RequestBody ExportDclRequest request) {
+        List<ExportDclResponse> list = service.getExportableDclData(request);
+        if (list.isEmpty()) {
+            return ResultVoUtil.fail(ExceptionEnum.NO_DATA_EXIST);
+        }
+        return ResultVoUtil.success(list);
+    }
 }

+ 31 - 0
src/main/java/thyyxxk/webserver/dao/his/inpatient/casefrontsheet/FrontSheetExportDao.java

@@ -6,6 +6,7 @@ import org.apache.ibatis.annotations.Select;
 import thyyxxk.webserver.entity.casefrontsheet.CaseFrontsheetDisdiag;
 import thyyxxk.webserver.entity.casefrontsheet.CaseFrontsheetMain;
 import thyyxxk.webserver.entity.casefrontsheet.CaseFrontsheetSurgery;
+import thyyxxk.webserver.entity.casefrontsheet.response.ExportDclResponse;
 
 import java.util.List;
 
@@ -73,4 +74,34 @@ public interface FrontSheetExportDao {
             "name=(select top 1 rtrim(d.name) from zd_icd9_cm3 d where d.yb_code=a.code order by code) " +
             "from t_case_frontsheet_surgery a where bah=#{bah} and times=#{times}")
     List<CaseFrontsheetSurgery> fetchSurgeries(@Param("bah") String bah, @Param("times") int times);
+
+    @Select("select bah, times, duplicate_time as opTime,visit_staff, remark, " +
+            "admissDate=(select d.admiss_date from t_case_frontsheet_main d where d.bah=a.bah and d.admiss_times=a.times), " +
+            "disDate=(select d.dismiss_date from t_case_frontsheet_main d where d.bah=a.bah and d.admiss_times=a.times), " +
+            "disDept=(select d.dismiss_dept from t_case_frontsheet_main d where d.bah=a.bah and d.admiss_times=a.times), " +
+            "doctor=(select d.main_doctor_name from t_case_frontsheet_main d where d.bah=a.bah and d.admiss_times=a.times), " +
+            "patName=(select rtrim(d.name) from a_patient_mi d where d.inpatient_no=a.bah), " +
+            "opStaff=(select rtrim(d.name) from a_employee_mi d where d.code=a.duplicate_staff) " +
+            "from t_case_frontsheet_duplicate a where a.duplicate_time>=#{begin} and a.duplicate_time<=#{end}")
+    List<ExportDclResponse> getDuplicateSheets(String begin, String end);
+
+    @Select("select bah, times, closedown_time as opTime,visit_staff, remark, " +
+            "admissDate=(select d.admiss_date from t_case_frontsheet_main d where d.bah=a.bah and d.admiss_times=a.times), " +
+            "disDate=(select d.dismiss_date from t_case_frontsheet_main d where d.bah=a.bah and d.admiss_times=a.times), " +
+            "disDept=(select d.dismiss_dept from t_case_frontsheet_main d where d.bah=a.bah and d.admiss_times=a.times), " +
+            "doctor=(select d.main_doctor_name from t_case_frontsheet_main d where d.bah=a.bah and d.admiss_times=a.times), " +
+            "patName=(select rtrim(d.name) from a_patient_mi d where d.inpatient_no=a.bah), " +
+            "opStaff=(select rtrim(d.name) from a_employee_mi d where d.code=a.closedown_staff) " +
+            "from t_case_frontsheet_closedown a where a.closedown_time>=#{begin} and a.closedown_time<=#{end}")
+    List<ExportDclResponse> getCloseDownSheets(String begin, String end);
+
+    @Select("select bah, times, pat_name,lend_time as opTime,remark, " +
+            "admissDate=(select d.admiss_date from t_case_frontsheet_main d where d.bah=a.bah and d.admiss_times=a.times), " +
+            "dis_date, dis_dept, lend_staff as visitStaff, " +
+            "doctor=(select d.main_doctor_name from t_case_frontsheet_main d where d.bah=a.bah and d.admiss_times=a.times), " +
+            "opStaff=(select rtrim(d.name) from a_employee_mi d where d.code=a.op_staff), " +
+            "state=case when state='RETURNED' then '已归还' else '未归还' end, " +
+            "return_time, lend_staff_phone from t_case_frontsheet_lendout a " +
+            " where a.lend_time>=#{begin} and a.lend_time<=#{end}")
+    List<ExportDclResponse> getLendOutSheets(String begin, String end);
 }

+ 10 - 0
src/main/java/thyyxxk/webserver/entity/casefrontsheet/request/ExportDclRequest.java

@@ -0,0 +1,10 @@
+package thyyxxk.webserver.entity.casefrontsheet.request;
+
+import lombok.Data;
+
+@Data
+public class ExportDclRequest {
+    private String type;
+    private String begin;
+    private String end;
+}

+ 23 - 0
src/main/java/thyyxxk/webserver/entity/casefrontsheet/response/ExportDclResponse.java

@@ -0,0 +1,23 @@
+package thyyxxk.webserver.entity.casefrontsheet.response;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class ExportDclResponse {
+    private String bah;
+    private Integer times;
+    private Date opTime;
+    private String visitStaff;
+    private String remark;
+    private Date admissDate;
+    private Date disDate;
+    private String disDept;
+    private String doctor;
+    private String patName;
+    private String opStaff;
+    private String state;
+    private Date returnTime;
+    private String lendStaffPhone;
+}

+ 17 - 0
src/main/java/thyyxxk/webserver/service/inpatient/casefrontsheet/CaseFrontSheetExportService.java

@@ -1,5 +1,6 @@
 package thyyxxk.webserver.service.inpatient.casefrontsheet;
 
+import com.alibaba.fastjson.JSON;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -10,11 +11,14 @@ import thyyxxk.webserver.dao.his.inpatient.casefrontsheet.FrontSheetExportDao;
 import thyyxxk.webserver.entity.casefrontsheet.CaseFrontsheetDisdiag;
 import thyyxxk.webserver.entity.casefrontsheet.CaseFrontsheetMain;
 import thyyxxk.webserver.entity.casefrontsheet.CaseFrontsheetSurgery;
+import thyyxxk.webserver.entity.casefrontsheet.request.ExportDclRequest;
+import thyyxxk.webserver.entity.casefrontsheet.response.ExportDclResponse;
 import thyyxxk.webserver.service.redislike.RedisLikeService;
 import thyyxxk.webserver.utils.DateUtil;
 import thyyxxk.webserver.utils.DecimalUtil;
 import thyyxxk.webserver.utils.StringUtil;
 
+import java.util.ArrayList;
 import java.util.List;
 
 @Slf4j
@@ -107,4 +111,17 @@ public class CaseFrontSheetExportService {
     private int negationCalculatingResidue(int source) {
         return source % 2 == 0 ? 1 : 0;
     }
+
+    public List<ExportDclResponse> getExportableDclData(ExportDclRequest request) {
+        switch (request.getType()) {
+            case "DUPLICATE":
+                return dao.getDuplicateSheets(request.getBegin(), request.getEnd());
+            case "CLOSEDOWN":
+                return dao.getCloseDownSheets(request.getBegin(), request.getEnd());
+            case "LENDOUT":
+                return dao.getLendOutSheets(request.getBegin(), request.getEnd());
+            default:
+                return new ArrayList<>();
+        }
+    }
 }