Просмотр исходного кода

智能辩证推导完成后,加载中医电子病历页面 并且自动保存病历

中医诊疗 -> 智能辩证(推导) -> 加载中医电子病历页面(自动保存病历)
cc12458 1 год назад
Родитель
Сommit
0f8de64437
2 измененных файлов с 48 добавлено и 30 удалено
  1. 39 18
      src/views/diagnosis/DialecticalQ.vue
  2. 9 12
      src/views/diagnosis/Emr.vue

+ 39 - 18
src/views/diagnosis/DialecticalQ.vue

@@ -139,6 +139,8 @@
       <el-button type="primary" @click="submit" size="small" v-if="pageType!=3">推导</el-button>
       <el-button type="primary" @click="submit" size="small" v-if="pageType==3">自动生成病历</el-button>
     </div>
+
+    <Emr ref="emr" v-if="hack__show_EMR" style="display: none"></Emr>
   </div>
 </template>
 <script>
@@ -151,9 +153,12 @@ import {
 } from "@/api/diagnosis.js";
 import { addRecipeFrom } from "@/api/dataAnalysis.js";
 import { setTimeout } from "timers";
+import Emr from "@/views/diagnosis/Emr.vue";
 export default {
+  components: {Emr},
   data() {
     return {
+      hack__show_EMR: false,
       year: "",
       month: "",
       day: "",
@@ -275,14 +280,16 @@ export default {
       let arr = [];
       let arr1 = [];
 
-      this.info.asks.forEach(item1 => {
-        item1.answers.forEach(item2 => {
-          if (item2.checked) {
-            arr.push(item2);
-            arr1.push(item1.askname);
-          }
+      try {
+        this.info.asks.forEach(item1 => {
+          item1.answers.forEach(item2 => {
+            if (item2.checked) {
+              arr.push(item2);
+              arr1.push(item1.askname);
+            }
+          });
         });
-      });
+      } catch (e) {}
       let set = new Set(arr1);
 
       let arr2 = Array.from(set);
@@ -342,13 +349,11 @@ export default {
         spinner: "el-icon-loading",
         background: "rgba(0, 0, 0, 0.7)"
       });
-      let res = await submitDialetQ(params).catch(err => {
-        loading.close();
-      });
-
-      if (res.ResultCode == 0) {
+      let res = await submitDialetQ(params).catch(err => {});
+      if (res && res.ResultCode == 0) {
         this.addRecipeFrom();
         if (this.pageType != 3) {
+          await this.hackLoadEMR();
           this.addDiagnosisData(res.Data, loading);
           this._znQuestionSave(null);
         } else {
@@ -363,6 +368,7 @@ export default {
           return;
         }
       }
+      loading.close();
     },
     // 提交中医诊断
     async addDiagnosisData(obj, loading) {
@@ -454,13 +460,15 @@ export default {
 
         // this.form.checkList1 = res.Data.itemids.split(',')
         let ids = res.Data.itemids.split(",");
-        this.info.asks.forEach(item1 => {
-          item1.answers.forEach(item2 => {
-            if (ids.indexOf(item2.answered) != -1) {
-              item2.checked = true;
-            }
+        try {
+          this.info.asks.forEach(item1 => {
+            item1.answers.forEach(item2 => {
+              if (ids.indexOf(item2.answered) != -1) {
+                item2.checked = true;
+              }
+            });
           });
-        });
+        } catch (e) { }
 
         this.answerClick();
         setTimeout(() => {
@@ -469,6 +477,19 @@ export default {
       } else {
         this.$message.error(res.ResultInfo);
       }
+    },
+
+    async hackLoadEMR() {
+      this.hack__show_EMR = true;
+      const event = (type) => new Promise((resolve) => this.$nextTick(() => {
+        this.$refs.emr.$on(type, (payload) => resolve({ref: this.$refs.emr, payload}));
+      }))
+
+      let { ref } = await event('hack_loaded');
+      ref.isSkip = false;
+      ref.submit(null);
+      await event('hack_save');
+      this.hack__show_EMR = false;
     }
   },
   computed: {

+ 9 - 12
src/views/diagnosis/Emr.vue

@@ -63,6 +63,7 @@ export default {
   },
   data() {
     return {
+      isSkip: true,
       isEdit: false, // 是否修改
       activeId: "",
       pid: "",
@@ -294,7 +295,6 @@ export default {
           }
         }
       });
-
       if (isReq) {
         this.$message.warning("请完成必填项填写");
         this.setActiveID(this.activeId);
@@ -712,13 +712,10 @@ export default {
         background: "rgba(0, 0, 0, 0.7)"
       });
 
-      let res = await addEMR(params).catch(err => {
-        loading.close();
-      });
-
+      let res = await addEMR(params).catch(err => {});
+      loading.close();
+      if (!this.isSkip) return this.$emit("hack_save", res);
       if (res.ResultCode == 0) {
-        loading.close();
-
         this.$message({
           type: "success",
           message: "保存成功",
@@ -842,6 +839,8 @@ export default {
           console.log(this.$refs.edit.imageUrl, "图片地址");
         }, 1000);
       }
+
+      this.$emit('hack_loaded')
     },
     // 修改 中医电子病历
     async editEMR(next = null) {
@@ -868,13 +867,11 @@ export default {
         spinner: "el-icon-loading",
         background: "rgba(0, 0, 0, 0.7)"
       });
-      let res = await editEMR(params).catch(err => {
-        loading.close();
-      });
+      let res = await editEMR(params).catch(err => {});
+      loading.close();
+      if (!this.isSkip) return this.$emit("hack_save", res);
 
       if (res.ResultCode == 0) {
-        loading.close();
-
         this.$message({
           type: "success",
           message: "保存成功",