Browse Source

[修改] 病案室

yuwandanmian 1 year ago
parent
commit
e69b61a867

+ 6 - 3
src/views/recordsRoom/qc/caseViews.vue

@@ -281,9 +281,12 @@ export default {
     },
     // 鼠标右击事件
     handleMouseupHandle() {
-      this.dialogData.blbh = this.is_active_blbh
-      this.dialogData.text = window.getSelection().toString()
-      this.dialogData.bSwitch = true
+      const text = window.getSelection().toString()
+      if (text.trim().length) {
+        this.dialogData.blbh = this.is_active_blbh
+        this.dialogData.text = text
+        this.dialogData.bSwitch = true
+      }
     },
     // 获取新病案指控结果
     getCaseQualityResults() {

+ 101 - 83
src/views/recordsRoom/qc/components/CreateControlResultDialog.vue

@@ -19,7 +19,7 @@
         <el-row :gutter="0">
           <el-col :span="8">
             <el-form-item label="住院号码" prop="ZYH">
-              <el-input v-model="blData.ZYH" disabled placeholder="请输入"></el-input>
+              <el-input v-model="ruleForm.ZYH" disabled placeholder="请输入"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="8">
@@ -36,12 +36,12 @@
           </el-col>
           <el-col :span="8">
             <el-form-item label="接收人" prop="JSR">
-              <el-input v-model="blData.JSR" disabled placeholder="请输入"></el-input>
+              <el-input v-model="ruleForm.JSR" placeholder="请输入"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="8">
             <el-form-item label="接收科室" prop="JSKS">
-              <el-input v-model="blData.JSKS" disabled placeholder="请输入"></el-input>
+              <el-input v-model="ruleForm.JSKS" placeholder="请输入"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="8">
@@ -53,7 +53,7 @@
           </el-col>
           <el-col :span="8">
             <el-form-item label="扣分" prop="score">
-              <el-input v-model="ruleForm.score" placeholder="请输入"></el-input>
+              <el-input-number v-model="ruleForm.score" controls-position="right" :min="0" :max="100" placeholder="请输入" style="width: 100%;"></el-input-number>
             </el-form-item>
           </el-col>
           <el-col :span="8">
@@ -78,30 +78,54 @@
           </el-col>
           <el-col :span="8">
             <el-form-item label="质控分类" prop="category">
-              <el-select v-model="ruleForm.category" placeholder="请选择">
-                <el-option v-for="item of selectData.category" :key="item" :label="item" :value="item"></el-option>
-              </el-select>
+              <el-autocomplete
+                class="inline-input"
+                v-model="ruleForm.category"
+                :fetch-suggestions="querySearchCategory"
+                placeholder="请输入"
+                @select="handleSelectCategory"
+              >
+                <template slot-scope="{ item }">
+                  <div class="name">{{ item }}</div>
+                </template>
+              </el-autocomplete>
             </el-form-item>
           </el-col>
           <el-col :span="8">
             <el-form-item label="质控项目" prop="title">
-              <el-select v-model="ruleForm.title" placeholder="请选择">
-                <el-option v-for="item of selectData.title" :key="item" :label="item" :value="item"></el-option>
-              </el-select>
+              <el-autocomplete
+                class="inline-input"
+                v-model="ruleForm.title"
+                :fetch-suggestions="querySearchTitle"
+                placeholder="请输入"
+                @select="handleSelectTitle"
+              >
+                <template slot-scope="{ item }">
+                  <div class="name">{{ item }}</div>
+                </template>
+              </el-autocomplete>
             </el-form-item>
           </el-col>
           <el-col :span="8">
             <el-form-item label="质控类型" prop="type">
-              <el-select v-model="ruleForm.type" placeholder="请选择">
-                <el-option v-for="item of selectData.type" :key="item" :label="item" :value="item"></el-option>
-              </el-select>
+              <el-autocomplete
+                class="inline-input"
+                v-model="ruleForm.type"
+                :fetch-suggestions="querySearchType"
+                placeholder="请输入"
+                @select="handleSelectType"
+              >
+                <template slot-scope="{ item }">
+                  <div class="name">{{ item }}</div>
+                </template>
+              </el-autocomplete>
             </el-form-item>
           </el-col>
         </el-row>
         <el-row :gutter="0">
           <el-col :span="24">
-            <el-form-item label="质控内容" prop="rule">
-              <el-input type="textarea" v-model="ruleForm.rule" :autosize="{ minRows: 4 }" placeholder="请输入"></el-input>
+            <el-form-item label="质控内容" prop="basis">
+              <el-input type="textarea" v-model="ruleForm.basis" :autosize="{ minRows: 4 }" placeholder="请输入"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="24">
@@ -113,7 +137,7 @@
       </el-form>
       <span slot="footer" class="dialog-footer">
         <el-button @click="data.bSwitch">取 消</el-button>
-        <el-button type="primary" @click="onSubmit">确 定</el-button>
+        <el-button type="primary" @click="onSubmit" :loading="loading">确 定</el-button>
       </span>
     </el-dialog>
   </div>
@@ -138,6 +162,7 @@ export default {
   },
   data() {
     return {
+      loading: false,
       selectData: {
         rule: [],
         category: [],
@@ -146,64 +171,7 @@ export default {
         level: [],
         zgjb: []
       },
-      blData: {},
       deportments: [],
-      // selectData: {
-      //   "rule": [{
-      //       "id": 1,
-      //       "category": "病程类",
-      //       "title": "首次病程记录",
-      //       "notice": "入院后8小时内完成首次病程记录",
-      //       "score": 0.5,
-      //       "type": "时效性",
-      //       "level": 2
-      //     },
-      //     {
-      //       "id": 2,
-      //       "category": "出院记录",
-      //       "title": "输血记录",
-      //       "notice": "输血记录中无患者信息和核对情况描述",
-      //       "score": 1,
-      //       "type": "内涵质控",
-      //       "level": 2
-      //     }
-      //   ],
-      //   "category": [
-      //     "病程类",
-      //     "入院记录",
-      //     "出院记录"
-      //   ],
-      //   "title": [
-      //     "诊疗经过",
-      //     "输血记录",
-      //     "首次病程记录"
-      //   ],
-      //   "type": [
-      //     "时效性",
-      //     "内涵质控",
-      //     "专科质控"
-      //   ],
-      //   "level": [
-      //     {
-      //       "id": 1,
-      //       "name": "强制"
-      //     },
-      //     {
-      //       "id": 2,
-      //       "name": "建议"
-      //     }
-      //   ],
-      //   "zgjb": [
-      //     "终末质控",
-      //     "事中质控"
-      //   ]
-      // },
-      // blData: {
-      //   "AAA28": "00071350",
-      //   "ZYH": "399621",
-      //   "JSR": "赵阳",
-      //   "JSKS": "泌尿外科一病区"
-      // },
       ruleForm: {
         ZYH: '',
         ZKR: '',
@@ -216,10 +184,10 @@ export default {
         rule_id: '',
         type: '',
         notice: '',
-        rule: '',
+        basis: '',
         level: '',
         ZGQX: '',
-        score: ''
+        score: undefined
       },
       rules: {
         ZYH: [
@@ -241,15 +209,15 @@ export default {
           { required: true, message: '请选择', trigger: 'blur' }
         ],
         category: [
-          { required: true, message: '请选择', trigger: 'blur' }
+          { required: true, message: '请选择', trigger: 'change' }
         ],
         title: [
-          { required: true, message: '请选择', trigger: 'blur' }
+          { required: true, message: '请选择', trigger: 'change' }
         ],
         notice: [
           { required: true, message: '请输入', trigger: 'blur' }
         ],
-        rule: [
+        basis: [
           { required: true, message: '请输入', trigger: 'blur' }
         ],
         score: [
@@ -265,9 +233,54 @@ export default {
     this.getRuleData()
     this.getBlInfo()
     this.getDeportmentList()
-    this.$set(this.ruleForm, 'rule', this.data.text)
+    this.$set(this.ruleForm, 'basis', this.data.text)
   },
   methods: {
+    // 质控分类
+    querySearchCategory(queryString, cb) {
+      var categorys = this.selectData.category;
+      var results = queryString ? categorys.filter(this.createFilterCategory(queryString)) : categorys;
+      // 调用 callback 返回建议列表的数据
+      cb(results);
+    },
+    createFilterCategory(queryString) {
+      return (restaurant) => {
+        return (restaurant.toLowerCase().indexOf(queryString.toLowerCase()) === 0);
+      };
+    },
+    handleSelectCategory(item) {
+      this.$set(this.ruleForm, 'category', item)
+    },
+    // 质控项目
+    querySearchTitle(queryString, cb) {
+      var titles = this.selectData.title;
+      var results = queryString ? titles.filter(this.createFilterTitle(queryString)) : titles;
+      // 调用 callback 返回建议列表的数据
+      cb(results);
+    },
+    createFilterTitle(queryString) {
+      return (restaurant) => {
+        return (restaurant.toLowerCase().indexOf(queryString.toLowerCase()) === 0);
+      };
+    },
+    handleSelectTitle(item) {
+      this.$set(this.ruleForm, 'title', item)
+    },
+    // 质控类型
+    querySearchType(queryString, cb) {
+      var types = this.selectData.type;
+      var results = queryString ? types.filter(this.createFilterType(queryString)) : types;
+      // 调用 callback 返回建议列表的数据
+      cb(results);
+    },
+    createFilterType(queryString) {
+      return (restaurant) => {
+        return (restaurant.toLowerCase().indexOf(queryString.toLowerCase()) === 0);
+      };
+    },
+    handleSelectType(item) {
+      this.$set(this.ruleForm, 'type', item)
+    },
     // 获取规则数据
     getRuleData() {
       getRuleData().then(res => {
@@ -277,7 +290,10 @@ export default {
     // 获取病历相关信息
     getBlInfo() {
       getBlInfo({ blbh: this.data.blbh }).then(res => {
-        this.blData = res.p
+        const { ZYH, JSKS, JSR } = res.p
+        this.$set(this.ruleForm, 'ZYH', ZYH)
+        this.$set(this.ruleForm, 'JSKS', JSKS)
+        this.$set(this.ruleForm, 'JSR', JSR)
       })
     },
     // 质控模板变化
@@ -311,7 +327,6 @@ export default {
     onSubmit() {
       this.$refs['ruleForm'].validate((valid) => {
         if (valid) {
-          alert('submit!');
           const {
             ZYH,
             ZKR,
@@ -324,7 +339,7 @@ export default {
             rule_id,
             type,
             notice,
-            rule,
+            basis,
             level,
             ZGQX,
             score
@@ -341,16 +356,19 @@ export default {
             rule_id,
             type,
             notice,
-            rule,
+            basis,
             level,
             ZGQX: ZGQX/1000,
             score
           }
+          this.loading=true
           addCaseQuality(params).then(res => {
             const { m } = res
             this.$message.success(m || '成功')
             this.data.bSwitch = false
             this.$emit('refresh')
+          }).finally(res => {
+            this.loading=false
           })
         } else {
           return false;

+ 9 - 9
src/views/recordsRoom/qc/components/TableBox.vue

@@ -19,31 +19,31 @@
       <el-table-column
         prop="AAA01"
         label="姓名"
-        width="200"
+        width="140"
         show-overflow-tooltip
       />
       <el-table-column
         prop="CH"
         label="床号"
-        width="200"
+        width="140"
         show-overflow-tooltip
       />
       <el-table-column
         prop="AAA29"
         label="住院次数"
-        width="200"
+        width="140"
         show-overflow-tooltip
       />
       <el-table-column
         prop="AAC11N"
         label="接收科室"
-        width="200"
+        width="140"
         show-overflow-tooltip
       />
       <el-table-column
         prop="JSR"
         label="接收人"
-        width="200"
+        width="140"
         show-overflow-tooltip
       />
       <el-table-column
@@ -61,7 +61,7 @@
       <el-table-column
         prop="ZKY"
         label="质控员"
-        width="200"
+        width="140"
         show-overflow-tooltip
       />
       <el-table-column
@@ -73,19 +73,19 @@
       <el-table-column
         prop="BLZT"
         label="病历状态"
-        width="200"
+        width="140"
         show-overflow-tooltip
       />
       <el-table-column
         prop="sum_minus_points"
         label="总扣分"
-        width="200"
+        width="140"
         show-overflow-tooltip
       />
       <el-table-column
         prop="home_minus_points"
         label="首页扣分"
-        width="200"
+        width="140"
         show-overflow-tooltip
       />
       <el-table-column