Kaynağa Gözat

终末质控-科室排名调整

zz 1 ay önce
ebeveyn
işleme
9c24cb58fc

+ 13 - 12
src/views/allcase/index.vue

@@ -57,13 +57,15 @@
     </div>
     <!-- 科室排名 -->
     <div class="chart">
-      <div style="display: flex;" >
-        <Title :title="rankName+'排名'"/>
-        <div style="display: flex;justify-content: center;margin-left: auto" @click="departmentRankStatus = !departmentRankStatus">
-          <el-icon style="line-height: 16px;" :class="departmentRankStatus === true ? 'el-icon-caret-top' : 'el-icon-caret-bottom'"></el-icon>
-          <div>{{departmentRankStatus === true ? '隐藏' : '显示'}}</div>
-        </div>
-      </div>
+      <CardTitle :title="rankName+'排名'">
+        <el-image
+          class="title_arrow"
+          :class="{'arrow_top': !quxian_show}"
+          :src="require('../../assets/images/arrow-down.png')"
+          fit="contain"
+          @click="departmentRankStatus = !departmentRankStatus">
+        </el-image>
+      </CardTitle>
       <div v-show="departmentRankStatus" style="display: flex;justify-content: center;margin-top: 20px;">
           <div style="width: 60%;margin-right: 20px;">
             <div style="display: flex;" class="mb20">
@@ -362,7 +364,7 @@ export default {
     rankName(){
       return this.departmentOptions.rankTypeArray.find(item => item.type_id === this.departmentSearch.rank_type).name
     },
-    //
+    //计算科室排名显示的出院科室名称还是出院院区名称
     rankTableFiled(){
       let filed = this.departmentOptions.rankTypeArray.find(item => item.type_id === this.departmentSearch.rank_type).filed
       this.departmentOptions.tableField[1]['label'] = filed;
@@ -411,16 +413,15 @@ export default {
       this.formData.KS_CODE = [];
       this.formData.BQ_CODE = [];
       this.$axios.post('CaseHistory/Terminal/getKsOptions',{'YQ_CODE':this.formData.YQ_CODE}).then(res=>{
-        this.searchOptions.ksArray = res.data.ksArray;
-        this.searchOptions.bqArray = res.data.bqArray;
+        this.searchOptions.ksArray = res.data.ksArray;//科室
+        this.searchOptions.bqArray = res.data.bqArray;//病区
       })
     },
     //科室change事件
     ksChange(){
       this.formData.BQ_CODE = [];
-      console.log(this.formData);
       this.$axios.post('CaseHistory/Terminal/getBqOptions',{'KS_CODE':this.formData.KS_CODE}).then(res=>{
-        this.searchOptions.bqArray = res.data.bqArray;
+        this.searchOptions.bqArray = res.data.bqArray;//病区
       })
     },
     //获取头部搜索options

+ 1 - 1
src/views/recordsRoom/qc/caseViews.vue

@@ -120,7 +120,7 @@
       <!-- 添加质控结果 -->
       <CreateControlResultDialogVue v-if="dialogData.bSwitch" :AAA28="valData" :data="dialogData"
         @refresh="handelRefreshResults" :MED_REC_ID="mainHomeData.MED_REC_ID" :CWH="mainHomeData.CWH"
-        :AAA29="mainHomeData.AAA29" :JSKS="mainHomeData.AAC11C"/>
+        :AAA29="mainHomeData.AAA29" :JSKS="mainHomeData.AAC11C" @close="dialogData.bSwitch = false"/>
       <!-- 右键菜单 -->
       <ul v-show="gridCustomizeVisible" :style="{ left: left + 'px', top: top + 'px' }" class="contextmenu">
         <li @click="onCreate">添加</li>

+ 174 - 41
src/views/recordsRoom/qc/components/CreateControlResultDialog.vue

@@ -5,84 +5,91 @@
         label-suffix=":">
         <el-row :gutter="0">
           <el-col :span="20">
-            <el-form-item label="质控模板" prop="rule_id">
+            <el-form-item label="质控规则" prop="rule_id">
               <el-select v-model="ruleForm.rule_id" clearable filterable @change="handleRuleIdChange"
-                placeholder="请选择质控模板">
-                <el-option v-for="item of selectData.rule" :key="item.id" :label="item.category"
-                  :value="item.id"></el-option>
+                placeholder="请选择质控规则">
+                <el-option v-for="(item,index) of zkInfoArray" :key="index" :label="item.field" :value="item.id"></el-option>
               </el-select>
+              <i class="el-icon-circle-plus-outline" style="font-size: 28px;margin-left: 10px;" @click="addRule"></i>
             </el-form-item>
           </el-col>
         </el-row>
         <el-row :gutter="0">
           <el-col :span="8">
-            <el-form-item label="病案号" prop="MED_REC_ID">
+            <el-form-item label="病案号">
               <el-input v-model="ruleForm.MED_REC_ID" disabled placeholder="请输入"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="床位号" prop="CWH">
+            <el-form-item label="床位号" >
               <el-input v-model="ruleForm.CWH" disabled placeholder="请输入"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="住院次数" prop="AAA29">
+            <el-form-item label="住院次数">
               <el-input v-model="ruleForm.AAA29" disabled placeholder="请输入"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="接收端" prop="cate">
-              <el-select v-model="ruleForm.cate" filterable clearable placeholder="请选择" style="width: 100%">
-                <el-option v-for="item of receiving" :key="item.id" :label="item.name" :value="item.id" />
+            <el-form-item label="错误扣分" prop="down" >
+              <el-input v-model="ruleForm.down" disabled></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="错误等级">
+              <el-select v-model="ruleForm.level" disabled>
+                <el-option v-for="(item,index) of addRuleOptions.levelArray" :key="index" :label="item.name" :value="item.id"></el-option>
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="接收人" prop="JSR">
-              <el-select v-model="ruleForm.JSR" filterable clearable multiple :filter-method="filterRecipient"
-                placeholder="请选择" style="width: 100%">
-                <el-option v-for="item of recipient" :key="item.id" :label="`${item.name} ${item.base_code}`"
-                  :value="item.name" />
+            <el-form-item label="错误分类" >
+              <el-select v-model="ruleForm.type" disabled>
+                <el-option v-for="(item,index) of addRuleOptions.typeArray" :key="index" :label="item.name" :value="item.id"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="接收端" prop="cate">
+              <el-select v-model="ruleForm.cate" filterable clearable placeholder="请选择" style="width: 100%">
+                <el-option v-for="item of receiving" :key="item.id" :label="item.name" :value="item.id" />
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="8">
             <el-form-item label="接收科室" prop="JSKS">
               <el-select v-model="ruleForm.JSKS" filterable clearable multiple :filter-method="filterDeportments"
-                placeholder="请选择" style="width: 100%">
-                <el-option v-for="item of deportments" :key="item.id" :label="item.name" :value="item.name" />
+                         placeholder="请选择" style="width: 100%">
+                <el-option v-for="(item,index) of deportments" :key="index" :label="item.name" :value="item.dep_id" />
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="质控人" prop="ZKR">
-              <el-select v-model="ruleForm.ZKR" filterable clearable multiple :filter-method="filterRecipient"
+            <el-form-item label="接收人" prop="JSR">
+              <el-select v-model="ruleForm.JSR" filterable clearable multiple :filter-method="filterRecipient"
                 placeholder="请选择" style="width: 100%">
                 <el-option v-for="item of recipient" :key="item.id" :label="`${item.name} ${item.base_code}`"
                   :value="item.name" />
               </el-select>
             </el-form-item>
           </el-col>
+          <!--
           <el-col :span="8">
-            <el-form-item label="扣分" prop="score">
-              <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">
-            <el-form-item label="整改期限" prop="ZGQX">
-              <el-input-number v-model="ruleForm.ZGQX" controls-position="right" :min="0" :max="100" placeholder="请输入"
-                style="width: 100%"></el-input-number>
+            <el-form-item label="质控人" >
+              <el-select v-model="ruleForm.ZKR" filterable clearable multiple :filter-method="filterRecipient"
+                placeholder="请选择" style="width: 100%">
+                <el-option v-for="item of recipient" :key="item.id" :label="`${item.name} ${item.base_code}`"
+                  :value="item.name" />
+              </el-select>
             </el-form-item>
           </el-col>
+          -->
           <el-col :span="8">
-            <el-form-item label="状态" prop="level">
-              <el-select v-model="ruleForm.level" placeholder="请选择">
-                <el-option v-for="item of selectData.level" :key="item.id" :label="item.name"
-                  :value="item.id"></el-option>
-              </el-select>
+            <el-form-item label="整改期限">
+              <el-input-number v-model="ruleForm.correction_date" controls-position="right" :min="0" :max="100" placeholder="请输入"></el-input-number>
             </el-form-item>
           </el-col>
+          <!--
           <el-col :span="10">
             <el-form-item label="质控目录" prop="title">
               <el-cascader v-model="ruleForm.title" :options="categoryOptions" placeholder="请选择质控目录" filterable
@@ -93,8 +100,10 @@
                 }"></el-cascader>
             </el-form-item>
           </el-col>
+          -->
         </el-row>
         <el-row :gutter="0">
+          <!--
           <el-col :span="24">
             <el-form-item label="质控内容" prop="basis">
               <el-input type="textarea" v-model="ruleForm.basis" :autosize="{ minRows: 4 }"
@@ -107,13 +116,59 @@
                 placeholder="请输入"></el-input>
             </el-form-item>
           </el-col>
+          -->
+          <el-col :span="24">
+            <el-form-item label="整改说明" prop="basis">
+              <el-input type="textarea" v-model="ruleForm.basis" placeholder="请填写整改说明"></el-input>
+            </el-form-item>
+          </el-col>
         </el-row>
       </el-form>
       <span slot="footer" class="dialog-footer">
-        {{ JSKS }}
         <el-button type="primary" :loading="loading" @click="onSubmit">发送整改通知</el-button>
       </span>
     </el-dialog>
+    <el-dialog title="添加质控规则" center :visible.sync="addRuleDialog" width="450px">
+      <el-form :inline="true" :rules="zkRules" >
+        <el-form-item label="质控名称" prop="field">
+          <el-input v-model="addRuleForm.field" placeholder="请输入规则名称" style="width: 300px;"></el-input>
+        </el-form-item>
+        <el-form-item label="错误扣分" prop="down">
+          <el-input v-model="addRuleForm.down" placeholder="错误扣分" style="width: 300px;"></el-input>
+        </el-form-item>
+        <el-form-item label="错误级别" prop="level">
+          <el-select v-model="addRuleForm.level" placeholder="规则类型" style="width: 300px;">
+            <el-option v-for="(item,index) in addRuleOptions.levelArray" :key="index" :label="item.name" :value="item.id">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="缺陷分类" prop="type">
+          <el-select v-model="addRuleForm.type" placeholder="缺陷分类" style="width: 300px;">
+            <el-option v-for="(item,index) in addRuleOptions.typeArray" :key="index" :label="item.name" :value="item.id">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="缺陷类型" prop="error_type">
+          <el-select v-model="addRuleForm.error_type" placeholder="缺陷类型" style="width: 300px;">
+            <el-option v-for="(item,index) in addRuleOptions.errorTypeArray" :key="index" :label="item.name" :value="item.id">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="缺陷类别" prop="category">
+          <el-select v-model="addRuleForm.category" placeholder="缺陷类别" style="width: 300px;">
+            <el-option v-for="(item,index) in addRuleOptions.categoryArray" :key="index" :label="item.name" :value="item.id">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="错误描述" prop="desc">
+          <el-input type="textarea" v-model="addRuleForm.desc" placeholder="错误描述" style="width: 300px;"></el-input>
+        </el-form-item>
+      </el-form>
+      <el-footer style="display: flex; justify-content: center; align-items: center; padding: 20px 0;">
+        <el-button @click="addRule">取消</el-button>
+        <el-button type="primary" @click="addRuleSubmit">提交</el-button>
+      </el-footer>
+    </el-dialog>
   </div>
 </template>
 
@@ -157,6 +212,42 @@ export default {
   },
   data() {
     return {
+      //添加质控
+      addRuleOptions:{
+        levelArray:[
+          {'id':0,'name':'强制'},
+          {'id':1,'name':'建议'},
+        ],
+        typeArray:[
+          {'id':1,'name':'患者基本信息'},
+          {'id':2,'name':'诊疗信息'},
+          {'id':3,'name':'费用信息'},
+        ],
+        errorTypeArray:[
+          {'id':1,'name':'逻辑性'},
+          {'id':2,'name':'规范性'},
+          {'id':3,'name':'编码'},
+        ],
+        categoryArray:[
+          {'id':1,'name':'A类'},
+          {'id':2,'name':'B类'},
+          {'id':3,'name':'C类'},
+          {'id':4,'name':'D类'},
+        ],
+      },
+      zkRules:{
+        AAA28: [{ required: true, message: '请输入', trigger: 'blur' }],
+        ZKR: [{ required: true, message: '请输入', trigger: 'blur' }],
+        ZKKS: [{ required: true, message: '请输入', trigger: 'blur' }],
+      },
+      zkInfoArray:[],//
+      addRuleDialog:false,
+      addRuleForm:{},
+      errorTypeArray:[
+        {'id':1,'name':'强制'},
+        {'id':2,'name':'建议'},
+      ],
+      //
       loading: false,
       selectData: {
         rule: [],
@@ -241,8 +332,36 @@ export default {
     this.$set(this.ruleForm, 'basis', this.data.text);
     this.$set(this.ruleForm, 'ZYH', this.AAA28);
     this.getStoredRealname(); // 获取当前登录人
+    this.getZkInfo();
   },
   methods: {
+    success(msg) {
+      this.$message({
+        message: msg,
+        type: 'success',
+      });
+    },
+    //获取人工质控规则
+    getZkInfo(){
+      this.$axios.post('/artificial/department/getZkInfo', {}).then(res => {
+        this.zkInfoArray = res.data;
+      })
+    },
+    //添加质控弹窗状态
+    addRule(){
+      this.addRuleDialog = !this.addRuleDialog;
+    },
+    //添加质控规则提交
+    addRuleSubmit(){
+      let params = this.addRuleForm;
+      this.$axios.post('/artificial/department/addRule', params).then(res => {
+        if (res.code == 200){
+          this.getZkInfo();
+          this.addRule();
+          this.success(res.msg);
+        }
+      })
+    },
     // 质控分类
     querySearchCategory(queryString, cb) {
       var categorys = this.selectData.category;
@@ -298,14 +417,15 @@ export default {
     // 质控模板变化
     handleRuleIdChange(val) {
       if (val) {
-        const item = this.selectData.rule.filter(item => item.id)[0];
-        const { category, level, notice, score, type, title } = item;
+        const item = this.zkInfoArray.filter(item => item.id)[0];
+        const { category, error_type, notice, down, type, title ,level} = item;
         this.$set(this.ruleForm, 'category', category);
-        this.$set(this.ruleForm, 'level', level);
+        this.$set(this.ruleForm, 'error_type', error_type);
         this.$set(this.ruleForm, 'notice', notice);
-        this.$set(this.ruleForm, 'score', score);
-        this.$set(this.ruleForm, 'type', type);
+        this.$set(this.ruleForm, 'down', item['down']);
+        this.$set(this.ruleForm, 'type', item['type']);
         this.$set(this.ruleForm, 'title', title);
+        this.$set(this.ruleForm, 'level', level);
       }
     },
     // 部门
@@ -313,6 +433,8 @@ export default {
       this.$axios
         .get('/user/depDropDown')
         .then(res => {
+          this.deportments = res.data;
+          /*
           const { data } = res;
           if (data.length) {
             data.forEach(ele => {
@@ -322,6 +444,8 @@ export default {
               });
             });
           }
+          console.log(this.deportments);
+           */
         })
         .catch(error => {
           console.log(error);
@@ -356,9 +480,18 @@ export default {
     },
     // 提交
     onSubmit() {
-      let params = this.ruleForm;
+      let params = {};
+      params['MED_REC_ID'] = this.ruleForm.MED_REC_ID;
+      params['rule_id'] = this.ruleForm.rule_id;
+      params['cate'] = this.ruleForm.cate;
+      params['JSKS'] = this.ruleForm.JSKS;
+      params['JSR'] = this.ruleForm.JSR;
+      params['basis'] = this.ruleForm.basis;
       this.$axios.post('artificial/department/addQualityControlInfo',params).then(res=>{
-
+        if (res.code == 200){
+          this.$emit('close');
+          this.success(res.msg);
+        }
       })
       return;
       this.$refs['ruleForm'].validate(valid => {