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

上传检验报告时自动归档

lighter 3 місяців тому
батько
коміт
1aae6ef427

+ 15 - 2
src/main/java/thyyxxk/webserver/controller/examinations/YjReqController.java

@@ -1,12 +1,15 @@
 package thyyxxk.webserver.controller.examinations;
 
+import cn.hutool.core.util.IdUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
+import thyyxxk.webserver.config.envionment.ArchiveConfig;
 import thyyxxk.webserver.dao.his.examinations.InspectionsDao;
 import thyyxxk.webserver.entity.ResultVo;
+import thyyxxk.webserver.entity.login.UserInfo;
 import thyyxxk.webserver.entity.yiji.IndexInquiry;
 import thyyxxk.webserver.entity.yiji.YjReqIndex;
 import thyyxxk.webserver.service.hutoolcache.UserCache;
@@ -24,13 +27,15 @@ public class YjReqController {
     private final ZyYjReqService zyYjReqService;
     private final InspectionsDao dao;
     private final UserCache userCache;
+    private final ArchiveConfig archiveConfig;
 
     @Autowired
-    public YjReqController(MzYjReqService mzYjReqService, ZyYjReqService zyYjReqService, InspectionsDao dao, UserCache userCache) {
+    public YjReqController(MzYjReqService mzYjReqService, ZyYjReqService zyYjReqService, InspectionsDao dao, UserCache userCache, ArchiveConfig archiveConfig) {
         this.mzYjReqService = mzYjReqService;
         this.zyYjReqService = zyYjReqService;
         this.dao = dao;
         this.userCache = userCache;
+        this.archiveConfig = archiveConfig;
     }
 
     @PostMapping("/queryYjReqIndex")
@@ -43,8 +48,16 @@ public class YjReqController {
 
     @PostMapping("/uploadYjPdf")
     public ResultVo<String> uploadYjPdf(YjReqIndex index) {
+        UserInfo user = userCache.getUserInfoByToken();
         index.setUid(index.getPatNo() + "_" + index.getReqNo());
-        index.setStaffDept(userCache.getUserInfoByToken().getDeptCode());
+        index.setStaffId(user.getCode());
+        index.setStaffDept(user.getDeptCode());
+        String archiveDir = archiveConfig.getPath();
+        String suffixDir = "/archive/emr/" + index.getPatNo() + "/"
+                + index.getTimes() + "/jianCha/" + index.getUid() + ".pdf";
+        index.setArchiveDir(archiveDir + suffixDir);
+        index.setSuffixDir(suffixDir);
+        index.setArchiveId(IdUtil.simpleUUID());
         if (null == index.getReqDoctor()) {
             index.setReqDoctor("");
         }

+ 7 - 4
src/main/java/thyyxxk/webserver/dao/his/examinations/InspectionsDao.java

@@ -43,13 +43,16 @@ public interface InspectionsDao {
     @Select("select rtrim(social_no) from mz_patient_mi where patient_id=#{patNo}")
     String selectOutpatientSocialNo(String patNo);
 
-    @Delete("delete from t_check_data where patient_uid=#{uid}")
-    void deleteOldReport(String uid);
-
-    @Insert("insert into t_check_data (patient_uid,patient_name,pat_no,times,examin_eparts,room_code, " +
+    @Insert("delete from t_check_data where patient_uid=#{uid};" +
+            "insert into t_check_data (patient_uid,patient_name,pat_no,times,examin_eparts,room_code, " +
             "examination_see,examinationre_sult,doctor_code,check_doctor_code,check_time,report_time, " +
             "patient_from,report_url,top_req_no) " +
             "values (#{uid},#{patName},#{patNo},#{times},#{groupName},#{staffDept},'','',#{reqDoctor},'', " +
             "'','',#{patientFrom},#{reportUrl},#{reqNo})")
     void insertNewCheckData(YjReqIndex index);
+
+    @Insert("delete from patient_archive where pat_no=#{patNo} and times=#{times} and document_id=#{uid};" +
+            "insert into patient_archive (id,pat_no,times,document_id,create_id,name,path,type) " +
+            "values (#{archiveId},#{patNo},#{times},#{uid},#{staffId},#{patName},#{suffixDir},5)")
+    void insertArchive(YjReqIndex index);
 }

+ 4 - 0
src/main/java/thyyxxk/webserver/entity/yiji/YjReqIndex.java

@@ -21,5 +21,9 @@ public class YjReqIndex {
     private String staffDept;
     private String reqDoctor;
     private String reportUrl;
+    private String staffId;
+    private String archiveDir;
+    private String archiveId;
+    private String suffixDir;
     private MultipartFile file;
 }

+ 4 - 2
src/main/java/thyyxxk/webserver/service/yj_req/YjReqInterface.java

@@ -1,5 +1,6 @@
 package thyyxxk.webserver.service.yj_req;
 
+import cn.hutool.core.io.FileUtil;
 import lombok.Data;
 import org.springframework.web.client.RestTemplate;
 import thyyxxk.webserver.config.exception.BizException;
@@ -19,15 +20,16 @@ public interface YjReqInterface {
         saveReq.setUid(yjReq.getUid());
         try {
             saveReq.setFile(yjReq.getFile().getBytes());
+            FileUtil.writeBytes(saveReq.getFile(), yjReq.getArchiveDir());
         } catch (Exception e) {
             throw new BizException(e.getMessage());
         }
         String url = "https://staticweb.hnthyy.cn/wxserver/api/saveJcbg/save";
         String result = restTemplate.postForObject(url, saveReq, String.class);
         yjReq.setReportUrl(result);
-        dao.deleteOldReport(yjReq.getUid());
         dao.insertNewCheckData(yjReq);
-        return result;
+        dao.insertArchive(yjReq);
+        return "OK";
     }
 
     @Data