Sfoglia il codice sorgente

智能开方保存时,病症加强判断

cc12458 1 anno fa
parent
commit
489f9277eb
2 ha cambiato i file con 40 aggiunte e 16 eliminazioni
  1. 12 0
      src/api/diagnosis.js
  2. 28 16
      src/components/TCMDiagnosis.vue

+ 12 - 0
src/api/diagnosis.js

@@ -29,6 +29,18 @@ export function addDiagnosisData(data) {
     })
 };
 
+export function addDiagnosisData2(data) {
+    return request({
+        url: '/outpatient/diagnosisMgr/Add',
+        method: 'post',
+        data,
+    }).then(res => {
+        if (res.ResultCode !== 0) throw Error(res.ResultInfo || `错误`);
+        if (!res.Data.mainDiagnosis) return {mainDiagnosis: res.Data};
+        return res.Data;
+    });
+}
+
 // 修改诊断页面数据
 export function editDiagnosisData(data) {
     return request({

+ 28 - 16
src/components/TCMDiagnosis.vue

@@ -9,7 +9,7 @@
       <div class="value">
         <el-popover placement="bottom" width="180" trigger="focus" :close-delay="100">
           <el-input
-            :class="{invalid: name && !zy_dise_id}"
+            :class="{invalid: name && (!zy_dise_id || invalid_dis)}"
             :size="size"
             slot="reference"
             :placeholder="key1?key1:'中医病名'"
@@ -43,7 +43,7 @@
       <div class="value">
         <el-popover placement="bottom" width="180" trigger="focus" :close-delay="100">
           <el-input
-            :size="size"
+            :size="size" :class="{invalid: syndrome && invalid_symptom}"
             slot="reference"
             :placeholder="key2?key2:'中医证型'"
             v-model="key2"
@@ -87,7 +87,7 @@ import {
   getXDiseaseName,
   getCCardType
 } from "@/api/knowledge.js";
-import { addDiagnosisData } from "@/api/diagnosis.js";
+import {addDiagnosisData2} from '@/api/diagnosis.js';
 import { addRecipeFrom } from "@/api/dataAnalysis.js";
 import { mapGetters } from "vuex";
 export default {
@@ -113,6 +113,9 @@ export default {
   },
   data() {
     return {
+      invalid_dis: false,
+      invalid_symptom: false,
+
       name: "", // 病名
       zy_dise_id: "", // 病名id
 
@@ -153,6 +156,7 @@ export default {
     key1: {
       handler: function() {
         if (this.key1 == "") {
+          this.invalid_dis = false;
           this.zy_dise_id = "";
           this.name = "";
         }
@@ -161,6 +165,7 @@ export default {
     key2: {
       handler: function() {
         if (this.key2 == "") {
+          this.invalid_symptom = false;
           this.syndrome = "";
           this.zhengxingid = "";
         }
@@ -263,6 +268,7 @@ export default {
     },
     // 病名选中
     handleBm(item) {
+      this.invalid_dis = false
       this.zy_dise_id = item.disid;
       this.name = item.disname;
       this.key1 = item.disname;
@@ -292,6 +298,7 @@ export default {
     },
     // 证型选中\
     handleZx(item) {
+      this.invalid_dis = false
       this.syndrome = item.symname;
       this.key2 = item.symname;
       this.zhengxingid = item.symid;
@@ -371,20 +378,25 @@ export default {
           zhengxing: ""
         }
       };
-      let res = await addDiagnosisData(params).catch(() => ({ResultCode: -1}));
-      if (+res.ResultCode === 0) {
-        if (!this.name) {
-          res.ResultCode = -1;
-          res.ResultInfo = `请选择${this.title}病名`;
-        } else if (!this.zy_dise_id) {
-          res.ResultCode = -1;
-          res.ResultInfo = `当前疾病编码与医保不匹配,请更换中医病名等诊断信息!`;
-        } else {
-          this.addRecipeFrom().catch();
-        }
+      try {
+        if (!this.name) throw {message: `请选择${this.title}病名`};
+        if (!this.zy_dise_id) throw {message: `当前疾病编码与医保不匹配,请更换中医病名等诊断信息!`};
+        let {mainDiagnosis} = await addDiagnosisData2(params);
+
+        this.invalid_dis = !mainDiagnosis.disid;
+        this.invalid_symptom = !mainDiagnosis.symptomid;
+        const tips = [
+          this.invalid_dis ? `${this.title}病名` : '',
+          this.invalid_symptom ? `证型` : '',
+        ].filter(Boolean).join(',');
+        if (tips) throw {message: `当前${tips}与医保不匹配,请更换${tips}等诊断信息!`};
+
+        this.addRecipeFrom().catch();
+        return true
+      } catch (e) {
+        this.$message.error(e.message);
       }
-      if (+res.ResultCode !== 0 && res.ResultInfo) this.$message.error(res.ResultInfo)
-      return +res.ResultCode === 0;
+      return false;
     }
   }
 };