Browse Source

电子病历优化

xiao 2 years ago
parent
commit
341a948d5f

+ 3 - 3
src/main/java/thyyxxk/webserver/controller/zhuyuanyizheng/EmrController.java

@@ -38,12 +38,12 @@ public class EmrController {
     }
 
     @PostMapping("/insertEmrData")
-    public ResultVo<String> insertEmrData(@RequestBody @Validated EmrPatientData param) {
+    public ResultVo<Map<String, Object>> insertEmrData(@RequestBody @Validated EmrPatientData param) {
         return server.insertEmrData(param);
     }
 
     @GetMapping("/deletePatientEmrByDocumentId")
-    public ResultVo<String> deletePatientEmrByDocumentId(@RequestParam("documentId") String documentId) {
+    public ResultVo<List<String>> deletePatientEmrByDocumentId(@RequestParam("documentId") String documentId) {
         return server.deletePatientEmrByDocumentId(documentId);
     }
 
@@ -81,7 +81,7 @@ public class EmrController {
 
     @GetMapping("/getExtractDataElement")
     public ResultVo<JSONObject> getExtractDataElement(@RequestParam("patNo") String patNo,
-                                                               @RequestParam("times") Integer times) {
+                                                      @RequestParam("times") Integer times) {
         return server.getExtractDataElement(patNo, times);
     }
 

+ 12 - 10
src/main/java/thyyxxk/webserver/service/zhuyuanyisheng/EmrServer.java

@@ -139,10 +139,10 @@ public class EmrServer {
      *
      * @param param 结构化文档
      */
-    public void extractDataElement(EmrPatientData param) {
+    public Map<String, Object> extractDataElement(EmrPatientData param) {
         EmrDataExtract emrDataExtract = dao.extractDataSource(param.getEmrCategoryCode());
         if (emrDataExtract == null) {
-            return;
+            return new HashMap<>();
         }
         // 获取 需要提取的数据元
         List<String> strings = JSON.parseArray(emrDataExtract.getDataExtract(), String.class);
@@ -169,6 +169,7 @@ public class EmrServer {
             dao.updatePatientDataSource(param.getPatNo(), param.getTimes(), JSON.toJSONString(jsonObject));
         }
         log.info("提取到的数据:{}", JSON.toJSONString(extractedData));
+        return extractedData;
     }
 
     /**
@@ -177,16 +178,16 @@ public class EmrServer {
      * @param param 参数
      * @return 提示
      */
-    public ResultVo<String> insertEmrData(EmrPatientData param) {
+    public ResultVo<Map<String, Object>> insertEmrData(EmrPatientData param) {
         param.setCreateId(TokenUtil.getTokenUserId());
         boolean isUpdated = dao.whetherThereIsAMedicalRecord(param.getPatNo(), param.getTimes(), param.getEmrDocumentId()).equals(1);
+        Map<String, Object> extractedData = extractDataElement(param);
         if (isUpdated) {
             dao.updateCreatedTemplate(param);
         } else {
             dao.emrInsertForTheFirstTime(param);
         }
-        new ExtractData(param).start();
-        return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION, isUpdated ? "保存成功,已覆盖原数据。" : "保存到本院成功");
+        return ResultVoUtil.success(extractedData);
     }
 
     /**
@@ -194,15 +195,15 @@ public class EmrServer {
      * 这里用的是逻辑删除
      *
      * @param documentId 电子病历id
-     * @return 提示
+     * @return 删除电子病历的同时需要删除, 提取到的数据源.
      */
-    public ResultVo<String> deletePatientEmrByDocumentId(String documentId) {
+    public ResultVo<List<String>> deletePatientEmrByDocumentId(String documentId) {
         EmrPatientData patientData = dao.getCategoryCodeByDocumentId(documentId);
-
         EmrDataExtract emrDataExtract = dao.extractDataSource(patientData.getEmrCategoryCode());
+        List<String> strings = new ArrayList<>();
         if (emrDataExtract != null) {
             // 获取 需要提取的数据元
-            List<String> strings = JSON.parseArray(emrDataExtract.getDataExtract(), String.class);
+            strings  = JSON.parseArray(emrDataExtract.getDataExtract(), String.class);
             log.info("需要提取的数据:{}", strings);
             // 获取到已经提取的数据
             EmrDataElement emrDataElement = dao.obtainPatientSOriginalData(patientData.getPatNo(), patientData.getTimes());
@@ -217,9 +218,10 @@ public class EmrServer {
         }
         // 删除病历
         dao.deletePatientEmrByDocumentId(documentId, TokenUtil.getTokenUserId());
-        return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION, "删除成功.");
+        return ResultVoUtil.success(strings);
     }
 
+
     /**
      * 查询患者是否有指定的病历了
      *