Browse Source

终末病历质控-问题数量-下钻列表

liyanyan 1 month ago
parent
commit
17aab32967
2 changed files with 229 additions and 7 deletions
  1. 228 6
      src/views/allcase/defectNumber.vue
  2. 1 1
      src/views/allcase/index.vue

+ 228 - 6
src/views/allcase/defectNumber.vue

@@ -2,7 +2,7 @@
   <div class="dashboard-container">
     <div class="tableBox">
       <div class="block">
-        <el-form :model="formData" class="demo-form-inline" label-suffix=":" label-width="74px">
+        <el-form v-if="$route.query.from != 'ZMBLZK_WTSL'" :model="formData" class="demo-form-inline" label-suffix=":" label-width="74px">
           <el-row :gutter="20">
             <el-col :span="6">
               <el-form-item label="出院时间">
@@ -60,8 +60,117 @@
             </el-col>
           </el-row>
         </el-form>
+        <!--终末病历质控-问题数量-->
+        <el-form style="width: 100%" v-else ref="ZmblzkWtslForm" :model="formDataZmblzkWtsl" class="demo-form-inline" label-suffix=":" label-width="74px">
+          <el-row :gutter="24">
+            <el-col :span="7">
+              <el-form-item label="所属院区" prop="YQ_CODE">
+                <el-select style="width: 100%;" placeholder="请选择所属院区" v-model="formDataZmblzkWtsl.YQ_CODE" multiple collapse-tags
+                clearable filterable @change="yqChange">
+                <el-option v-for="(item, index) in searchOptions.yqArray" :key="index" :label="item.dep_name"
+                  :value="item.dep_id"></el-option>
+              </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="出院科室" prop="KS_CODE">
+                  <el-cascader style="width: 100%;" placeholder="请选择科室" v-model="formDataZmblzkWtsl.KS_CODE"
+                    :options="searchOptions.ksArray" filterable :props="searchOptions.cascaderProps" clearable collapse-tags
+                    @change="ksChange">
+                  </el-cascader>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="出院病区" prop="BQ_CODE">
+                <el-cascader style="width: 100%;" placeholder="请选择病区" v-model="formDataZmblzkWtsl.BQ_CODE"
+                  :options="searchOptions.bqArray" filterable :props="searchOptions.cascaderProps" clearable
+                  collapse-tags>
+                </el-cascader>
+              </el-form-item>
+            </el-col>
+            <el-col :span="5">
+              <el-form-item label="病案号" prop="AAA28">
+                <el-input style="width: 100%;" v-model="formDataZmblzkWtsl.AAA28" placeholder="请输入病案号"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row :gutter="24">
+            <el-col :span="7">
+              <el-form-item label="出院日期">
+                <div style="width: 100%;display: flex;gap: 5px;">
+                  <el-form-item prop="start_time">
+                  <el-date-picker style="width: 94%;" v-model="formDataZmblzkWtsl.start_time" type="date" placeholder="请选择开始时间"
+                                 value-format="yyyyMMdd" format="yyyy年MM月dd日">
+                  </el-date-picker>
+                </el-form-item>
+                  <el-form-item prop="end_time">
+                  <el-date-picker style="width: 100%;" v-model="formDataZmblzkWtsl.end_time" type="date" placeholder="请选择结束时间"
+                                  value-format="yyyyMMdd" format="yyyy年MM月dd日" @onClick="onClickEndTime">
+                  </el-date-picker>
+                </el-form-item>
+                </div>
+               
+              </el-form-item>
+
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="病案质量" prop="lb_level">
+                <el-select v-model="formDataZmblzkWtsl.lb_level" clearable filterable placeholder="请选择病案质量" style="width: 100%;">
+                  <el-option v-for="(item, index) in searchOptions.bazlArray" :label="item.name" :value="item.id" :key="index"></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="离院方式" prop="AEM01C">
+                <el-select v-model="formDataZmblzkWtsl.AEM01C" clearable filterable placeholder="请选择离院方式" style="width: 100%;">
+                  <el-option v-for="(item, index) in searchOptions.lyTypeArray" :label="item.name" :value="item.id" :key="index"></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="5">
+              <el-form-item label="住院天数" prop="endDay1">
+                <div style="width: 100%;display: flex;gap: 5px;">
+                  <el-form-item prop="endDay1">
+                    <el-input style="width: 100%;" v-model="formDataZmblzkWtsl.endDay1">
+                      <template slot="append">天</template>
+                    </el-input>
+                  </el-form-item>
+                  -
+                  <el-form-item prop="endDay2">
+                    <el-input style="width: 100%;" v-model="formDataZmblzkWtsl.endDay2">
+                      <template slot="append">天</template>
+                    </el-input>
+                </el-form-item>
+                </div>
+              </el-form-item>
+
+            </el-col>
+          </el-row>
+          <el-row :gutter="24">
+            <el-col :span="7">
+              <el-form-item label="问题描述" prop="rule_id">
+                <el-select v-model="formDataZmblzkWtsl.rule_id" clearable filterable placeholder="请选择问题描述" style="width: 100%;">
+                  <el-option v-for="(item,key, index) in searchOptions.wtArray" :label="item" :value="key" :key="index"></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="规则类型" prop="rule_type">
+                <el-select v-model="formDataZmblzkWtsl.rule_type" clearable filterable placeholder="请选择规则类型" style="width: 100%;">
+                  <el-option v-for="(item, index) in searchOptions.ruleTypeArray" :label="item.name" :value="item.id" :key="index"></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="5" :offset="6">
+              <el-form-item style="text-align: right;">
+                <el-button plain @click="handleResetZmblzkWtsl" icon="el-icon-refresh">重置</el-button>
+                <el-button type="primary" @click="funQuery" class="export-btn" icon="el-icon-search">查询</el-button>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
       </div>
-      <el-table :data="tableData" style="width: 100%">
+      <el-table :data="tableData" style="width: 100%" v-if="$route.query.from != 'ZMBLZK_WTSL'">
         <el-table-column type="index" label="序号" width="80"></el-table-column>
         <el-table-column prop="AAC11N" label="出院科室" width="200"></el-table-column>
         <el-table-column prop="AAA28" label="病案号" width="160">
@@ -84,6 +193,27 @@
           </template>
         </el-table-column>
       </el-table>
+      <!--终末病历质控-问题数量-->
+      <el-table :data="tableData" style="width: 100%" v-else>
+        <el-table-column type="index" label="序号" width="80"></el-table-column>
+        <el-table-column prop="notice" label="问题描述" width="200" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="AAA28" label="病案号" width="120">
+          <template slot-scope="scope">
+            <span class="blue" @click="funGoto(scope.row.MED_REC_ID, scope.row.rule_id)">
+              {{ scope.row.AAA28 }}
+            </span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="AAA01" label="患者姓名" width="120"></el-table-column>
+        <el-table-column prop="AAC01" label="出院时间" width="160"></el-table-column>
+        <el-table-column prop="AAC11N" label="出院科室" width="150" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="AAC04" label="住院天数" width="80"></el-table-column>
+        <el-table-column prop="AEE03" label="主治医师" width="120"></el-table-column>
+        <el-table-column prop="AEM01C_MC" label="离院方式" width="150" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="AAB01" label="入院时间" width="160"></el-table-column>
+        <el-table-column prop="ICD10_NAME" label="主要诊断名称" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="ICD9_NAME" label="主要手术名称" show-overflow-tooltip></el-table-column>
+      </el-table>
       <!-- 分页控制 -->
       <mPagination v-if="tableData && tableData.length !== 0" :data="paginationData" @pageChangeEvent="pageHasChanged"></mPagination>
     </div>
@@ -105,6 +235,7 @@ export default {
     ...mapGetters(['name']),
   },
   data() {
+    let query = this.$route.query;
     return {
       formData: {
         problem: 'all',
@@ -128,7 +259,38 @@ export default {
       levelList: [], //问题属性
       departmentList: [],
       doctorList: [], // 医师姓名列表
-      sort:''
+      sort:'',
+      formDataZmblzkWtsl: { // 终末病历质控-问题数量
+        YQ_CODE: query.YQ_CODE? query.YQ_CODE.split(',') : [],
+        KS_CODE: query.KS_CODE? query.KS_CODE.split(',') : [],
+        BQ_CODE: query.BQ_CODE? query.BQ_CODE.split(',') : [],
+        AAA28: query.AAA28 || '',
+        start_time: query.startTime? query.startTime : this.storageGet('start_time'),
+        end_time: query.endTime ? query.endTime : this.storageGet('end_time'),
+        lb_level: '',
+        AEM01C: '',
+        rule_id: '',
+        rule_type: '',
+        endDay1: '',
+        endDay2: ''
+      },
+      searchOptions: {
+        yqArray: [],//院区options
+        ksArray: [],//科室options
+        bqArray: [],//病区options
+        bazlArray: [], //病案质量
+        lyTypeArray: [], //离院方式
+        wtArray: [], // 问题描述
+        ruleTypeArray: [], // 规则类型
+        cascaderProps: {
+          multiple: true,      // 开启多选模式
+          label: 'dep_name',
+          value: 'dep_id',
+          children: 'children',
+          checkStrictly: true, // 允许独立选择任意层级
+          emitPath: false,     // 是否返回完整路径(true 返回路径数组,false 只返回末节点值)
+        },
+      },
     };
   },
   mounted() {
@@ -147,6 +309,9 @@ export default {
     // 获取医生列表
     this.getDoctorList();
     this.funQuery();
+    if(query.from == 'ZMBLZK_WTSL') {// 终末病历质控-问题数量
+      this.getSearchOptions();
+    }
   },
   methods: {
     // 获取医生列表
@@ -192,8 +357,15 @@ export default {
       this.funQuery()
     },
     funQuery() {
-      //查询
-      let pramse = {
+      //查询 来源是否终末病历质控-问题数量
+      let pramse = this.$route.query.from == 'ZMBLZK_WTSL' ? {
+        ...this.formDataZmblzkWtsl,
+        YQ_CODE: this.formDataZmblzkWtsl.YQ_CODE.join(','),
+        KS_CODE: this.formDataZmblzkWtsl.KS_CODE.join(','),
+        BQ_CODE: this.formDataZmblzkWtsl.BQ_CODE.join(','),
+        page: this.paginationData.currentPage,
+        limit: this.paginationData.pageSize,
+      } : {
         start_time: this.formData.startTime || '',
         end_time: this.formData.endTime || '',
         level: this.formData.level,
@@ -218,7 +390,57 @@ export default {
         this.paginationData.total = res.data.count;
         this.tableData = res.data.data;
       });
-    }
+    },
+    handleResetZmblzkWtsl() {
+      this.$refs.ZmblzkWtslForm.resetFields();
+    },
+    getSearchOptions() {
+      this.$axios.post('CaseHistory/Terminal/getQxBlSearchOptions', {}).then(res => {
+        this.searchOptions.yqArray = res.data.yqArray;//院区
+        this.searchOptions.ksArray = this.cancelChildren(res.data.ksArray);//科室
+        this.searchOptions.bqArray = this.cancelChildren(res.data.bqArray);//病区
+        this.searchOptions.bazlArray = res.data.bazlArray
+        this.searchOptions.lyTypeArray = res.data.lyTypeArray
+        this.searchOptions.wtArray = res.data.wtArray
+        this.searchOptions.ruleTypeArray = res.data.ruleTypeArray
+
+      })
+    },
+    //  将下拉框为空的children属性设置为undefined
+    cancelChildren(arr) {
+      if (!arr) {
+        return [];
+      }
+      return arr.map(item => {
+        if (item.children.length == 0) {
+          item.children = undefined;
+        } else {
+          item.children.map(childreItem => {
+            if (childreItem.children.length == 0) {
+              childreItem.children = undefined;
+            }
+            return childreItem
+          })
+        }
+        return item
+      })
+    },
+     //院区change事件
+     yqChange() {
+      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 = this.cancelChildren(res.data.ksArray);//科室
+        this.searchOptions.bqArray = this.cancelChildren(res.data.bqArray);//病区
+      })
+    },
+    //科室change事件
+    ksChange() {
+      this.formData.BQ_CODE = [];
+      this.$axios.post('CaseHistory/Terminal/getBqOptions', { 'KS_CODE': this.formData.KS_CODE }).then(res => {
+        this.searchOptions.bqArray = this.cancelChildren(res.data.bqArray);//病区
+      })
+    },
   },
 };
 </script>

+ 1 - 1
src/views/allcase/index.vue

@@ -155,7 +155,7 @@
                   </el-button>
                 </div>
                 <div class="summary-card-body">
-                  <a @click="urlGoto('/defectNumber?','')" class="summary-content-text" type="text">
+                  <a @click="urlGoto('/defectNumber?','from=ZMBLZK_WTSL')" class="summary-content-text" type="text">
                     {{ summaryData.question_total }}
                   </a>
                   <span>个</span>