Переглянути джерело

首页质控编码员->医生排名

zz 2 місяців тому
батько
коміт
8a740d26f0

+ 3 - 3
src/api/excel.js

@@ -200,12 +200,12 @@ export function bmyDoctorRanking(data) {
 }
 
 // 首页质控(编码员)--医师排病历总数
-export function bmyDoctorRankingBlExport(params) {
+export function bmyDoctorRankingBlExport(data) {
   return request_blob({
     url: `/bazb/case-quality/doctor_ranking_list`,
-    method: 'get',
+    method: 'post',
     responseType: 'blob',
-    params: params
+    data
   })
 }
 

+ 11 - 22
src/views/encoder/components/doctorBl/SearchBox.vue

@@ -5,32 +5,15 @@
         <el-col :span="9">
           <el-form-item label="出院时间">
             <div class="selects">
-              <el-date-picker v-model="data.time[0]" type="date" format="yyyy 年 MM 月 dd 日"
-                              value-format="yyyyMMdd" placeholder="开始日期"></el-date-picker>
-
-              <el-date-picker
-                v-model="data.time[1]"
-                type="date"
-                style="margin-left: 10px"
-                format="yyyy 年 MM 月 dd 日"
-                value-format="yyyyMMdd"
-                placeholder="结束日期"
-              ></el-date-picker>
+              <el-date-picker v-model="data.time[0]" type="date" format="yyyy 年 MM 月 dd 日" value-format="yyyyMMdd" placeholder="开始日期"></el-date-picker>
+              <el-date-picker v-model="data.time[1]" type="date" style="margin-left: 10px" format="yyyy 年 MM 月 dd 日" value-format="yyyyMMdd" placeholder="结束日期"></el-date-picker>
             </div>
-            <!--            <el-date-picker-->
-            <!--              v-model="data.time"-->
-            <!--              type="daterange"-->
-            <!--              start-placeholder="开始时间"-->
-            <!--              end-placeholder="结束时间"-->
-            <!--              value-format="yyyyMMdd"-->
-            <!--              style="width: 100%;">-->
-            <!--            </el-date-picker>-->
           </el-form-item>
         </el-col>
         <el-col :span="5">
           <el-form-item label="医师姓名">
-            <el-select v-model="data.doctor_name" multiple collapse-tags filterable clearable placeholder="全部" style="width: 100%;">
-              <el-option v-for="(item, index) of doctors" :key="index" :label="item" :value="item"></el-option>
+            <el-select v-model="data.doctor_code" multiple collapse-tags filterable clearable placeholder="全部" style="width: 100%;">
+              <el-option v-for="(item, index) of doctors" :key="index" :label="item.name" :value="item.code"></el-option>
             </el-select>
           </el-form-item>
         </el-col>
@@ -60,6 +43,8 @@
 </template>
 
 <script>
+import { data } from 'autoprefixer';
+
 export default {
   props: {
     data: {
@@ -68,7 +53,7 @@ export default {
         return {
           time: [],
           level: '',
-          doctor_name: [],
+          doctor_code: [],
           AAC11N: ''
         }
       }
@@ -82,6 +67,9 @@ export default {
     }
   },
   created() {
+    if (this.data.doctor_code) {
+      this.$set(this.data, 'doctor_code', this.data.doctor_code);
+    }
     this.getDoctors()
     this.getDepartment()
   },
@@ -99,6 +87,7 @@ export default {
       })
     },
     onSubmit() {
+
       this.$emit('search')
     },
     onReset() {

+ 6 - 12
src/views/encoder/components/doctorBlKf/SearchBox.vue

@@ -4,20 +4,14 @@
       <el-row :gutter="20">
         <el-col :span="6">
           <el-form-item label="出院时间">
-            <el-date-picker
-              v-model="data.time"
-              type="daterange"
-              start-placeholder="开始时间"
-              end-placeholder="结束时间"
-              value-format="yyyyMMdd"
-              style="width: 100%;">
-            </el-date-picker>
+            <el-date-picker v-model="data.time[0]" type="date" format="yyyy 年 MM 月 dd 日" value-format="yyyyMMdd" placeholder="开始日期" clearable></el-date-picker>
+            <el-date-picker v-model="data.time[1]" type="date" style="margin-left: 10px" format="yyyy 年 MM 月 dd 日" value-format="yyyyMMdd" placeholder="结束日期" clearable></el-date-picker>
           </el-form-item>
         </el-col>
         <el-col :span="6">
           <el-form-item label="医师姓名">
-            <el-select v-model="data.doctor_name" multiple collapse-tags filterable clearable placeholder="全部" style="width: 100%;">
-              <el-option v-for="(item, index) of doctors" :key="index" :label="item" :value="item"></el-option>
+            <el-select v-model="data.doctor_code" multiple collapse-tags filterable clearable placeholder="全部" style="width: 100%;">
+              <el-option v-for="(item, index) of doctors" :key="index" :label="item.name" :value="item.code"></el-option>
             </el-select>
           </el-form-item>
         </el-col>
@@ -47,7 +41,7 @@ export default {
       default() {
         return {
           time: [],
-          doctor_name: [],
+          doctor_code: [],
           AAC11N: ''
         }
       }
@@ -88,4 +82,4 @@ export default {
 
 <style>
 
-</style>
+</style>

+ 24 - 76
src/views/encoder/doctorBl.vue

@@ -26,80 +26,34 @@ export default {
   },
   data() {
     return {
-      searchData: {
-        time: ['', ''],
-        level: '',
-        doctor_name: [],
-        AAC11N: '',
-        sort: []
-      },
-      tableData: [
-        // {
-        //   "AAA28": "00045458",
-        //   "ZYH": "805905",
-        //   "AAC01": "2023-06-28 08:36:00",
-        //   "AAC11N": "康复医学科",
-        //   "KZRXM": "王德强",
-        //   "ZHFZRYSXM": "王德强",
-        //   "ZZYSXM": "孙芳菲",
-        //   "ZYYSXM": "赵威东",
-        //   "ZZYISXM": "",
-        //   "home_bmy_score": 100,
-        //   "bl_level": "甲级"
-        // },
-        // {
-        //   "AAA28": "00047338",
-        //   "ZYH": "805903",
-        //   "AAC01": "2023-06-28 08:35:00",
-        //   "AAC11N": "康复医学科",
-        //   "KZRXM": "王德强",
-        //   "ZHFZRYSXM": "王德强",
-        //   "ZZYSXM": "孙芳菲",
-        //   "ZYYSXM": "赵威东",
-        //   "ZZYISXM": "",
-        //   "home_bmy_score": 100,
-        //   "bl_level": "甲级"
-        // }
-      ],
-      paginationData: {
-        page: 1,
-        page_size: 10,
-        total: 0
-      }
+      searchData: {},//搜索
+      tableData: [],//表单数据
+      paginationData: { page: 1, page_size: 10, total: 0 }//分页
     }
   },
   created() {
-    const {start_time, end_time, doctor_name} = this.$route.query
-    if (start_time || end_time) {
-      const time = ['', '']
-      start_time ? time[0] = start_time : ''
-      end_time ? time[1] = end_time : ''
-      this.$set(this.searchData, 'time', time)
-    }
-
-    this.$set(this.searchData, 'doctor_name', [doctor_name])
+    let query = this.$route.query;
+    //时间范围
+    let timeArray = [];
+    timeArray[0] = query['start_time'];
+    timeArray[1] = query['end_time'];
+    //医师code
+    let doctor_code = [];
+    doctor_code[0] = query['doctor_code'];
+    let params = {};
+    params['time'] = timeArray;
+    params['doctor_code'] = doctor_code;
+    params['sf_type'] = query['sf_type']
+    this.searchData = params;
     this.getList()
   },
   methods: {
+    //获取table数据
     getList() {
-      const {
-        page,
-        page_size
-      } = this.paginationData
-      const {time} = this.searchData
-      const params = {
-        is_export: 0,
-        page,
-        page_size,
-        ...this.searchData
-      }
-      if (time && time.length) {
-        params.start_time = time[0]
-        params.end_time = time[1]
-      }
-      this.$axios2.get('/case-quality/doctor_ranking_list', {params}).then(res => {
-        this.tableData = res.data.list
-        this.paginationData.total = res.data.count
+      let params =  Object.assign({},this.searchData, this.paginationData);
+      this.$axios2.post('/case-quality/doctor_ranking_list', params).then(res => {
+        this.tableData = res.data.data;
+        this.paginationData.total = res.data.count;
       });
     },
     handleSearch() {
@@ -125,16 +79,10 @@ export default {
       this.searchData.sort = val
       this.getList()
     },
+    //导出
     handleExport() {
-      const {time} = this.searchData
-      const params = {
-        is_export: 1,
-        ...this.searchData
-      }
-      if (time && time.length) {
-        params.start_time = time[0]
-        params.end_time = time[1]
-      }
+      let params =  this.searchData;
+      params['is_export'] = 1;
       bmyDoctorRankingBlExport(params).then(res => {
         const content = res.data; // 后台返回二进制数据
         const blob = new Blob([content]);

+ 19 - 32
src/views/encoder/doctorBlKf.vue

@@ -25,46 +25,33 @@ export default {
   },
   data() {
     return {
-      searchData: {
-        time: [],
-        doctor_name: [],
-        AAC11N: '',
-        sort: []
-      },
+      searchData: {},
       tableData: [],
-      paginationData: {
-        page: 1,
-        page_size: 10,
-        total: 0
-      }
+      paginationData: { page: 1, page_size: 10, total: 0 }
     }
   },
   created() {
-    const { start_time, end_time, doctor_name } = this.$route.query
-    this.$set(this.searchData, 'time', [start_time, end_time])
-    this.$set(this.searchData, 'doctor_name', [doctor_name])
+    let query = this.$route.query;
+    //时间范围
+    let timeArray = [];
+    timeArray[0] = query['start_time'];
+    timeArray[1] = query['end_time'];
+    //医师code
+    let doctor_code = [];
+    doctor_code[0] = query['doctor_code'];
+    let params = {};
+    params['time'] = timeArray;
+    params['doctor_code'] = doctor_code;
+    params['sf_type'] = query['sf_type']
+    this.searchData = params;
     this.getList()
   },
   methods: {
     getList() {
-      const {
-        page,
-        page_size
-      } = this.paginationData
-      const { time } = this.searchData
-      const params = {
-        is_export: 0,
-        page,
-        page_size,
-        ...this.searchData
-      }
-      if (time && time.length) {
-        params.start_time = time[0]
-        params.end_time = time[1]
-      }
+      let params =  Object.assign({},this.searchData, this.paginationData);
       this.$axios.post('/bmy/doctorErrorRanking', params).then(res => {
-        this.tableData = res.data.list
-        this.paginationData.total = res.data.count
+        this.tableData = res.data.data;
+        this.paginationData.total = res.data.total;
       });
     },
     handleSearch() {
@@ -125,4 +112,4 @@ export default {
 
 <style>
 
-</style>
+</style>

+ 29 - 7
src/views/encoder/index.vue

@@ -3,6 +3,11 @@
     <!-- 搜索栏 -->
     <div class="bg-card" style="margin-bottom: 18px">
       <el-form :inline="true" :model="formInline" class="demo-form-inline">
+        <el-form-item label="病例状态" style="margin-bottom: 0">
+          <el-select class="width150" v-model="formInline.YQ_CODES" placeholder="请选择病例状态" multiple>
+            <el-option v-for="(item, index) in searchInfoOptions.blStatusArray" :label="item.label" :value="item.value" :key="index"></el-option>
+          </el-select>
+        </el-form-item>
         <el-form-item label="所属院区" style="margin-bottom: 0">
           <el-select class="width150" v-model="formInline.YQ_CODES" placeholder="请选择所属院区" multiple>
             <el-option v-for="(item, index) in searchInfoOptions.yqArray" :label="item.YQ_NAME" :value="item.id" :key="index"></el-option>
@@ -213,7 +218,7 @@
                 </el-table-column>
                 <el-table-column  label="缺陷占比" width="120" align="center">
                   <template slot-scope="scope">
-                    <span v-if="scope.row.count">{{(scope.row.count/tongjiData.qxSum *100).toFixed(2)}}%</span>
+                    <span v-if="scope.row.percentage">{{scope.row.percentage}}</span>
                   </template>
                 </el-table-column>
               </el-table>
@@ -360,6 +365,13 @@ export default {
         yqArray:[],//院区options
         depArray:[],//科室options
         bqArray:[],//病区options
+        blStatusArray:[
+          {'label':'全部','value':0},
+          {'label':'在院','value':1},
+          {'label':'出院','value':2},
+          {'label':'未编码','value':3},
+          {'label':'已编码','value':4},
+        ],
       },
       qxSearchOptions: {//缺陷详情options
         bmyArray:[],//编码员options
@@ -790,6 +802,7 @@ export default {
       this.paginationData.size = val;
       this.getQuexianData();
     },
+    //跳页
     handleCurrentChange(val) {
       this.paginationData.page = val;
       this.getQuexianData();
@@ -817,6 +830,7 @@ export default {
       this.paginationDataDoctor.size = val;
       this.getDoctorRank();
     },
+    //跳页
     handleDoctorCurrentChange(val) {
       this.paginationDataDoctor.page = val;
       this.getDoctorRank();
@@ -827,8 +841,8 @@ export default {
       let params = Object.assign({},this.formInline, this.ysSearch);//将顶部搜索条件与医师排名搜索条件合并成一个
       params['prop'] = this.ysSortParams.prop;//排序字段
       params['order'] = this.ysSortParams.order;//排序规则
-      params['page'] = this.paginationData.page;//页码
-      params['size'] = this.paginationData.size;//页数
+      params['page'] = this.paginationDataDoctor.page;//页码
+      params['size'] = this.paginationDataDoctor.size;//页数
       this.$axios_new.post('/api/bmy/doctorRanking', params).then(res => {
         this.doctor_tableData = res.data.data;
         this.paginationDataDoctor.total = res.data.total;
@@ -863,13 +877,21 @@ export default {
     },
     // 医生病历总数
     toPageDoctor(row) {
-      const { start_time, end_time } = this.formInline;
-      this.$router.push({ name: 'DoctorBl', query: { doctor_name: row.docker_name, start_time, end_time } });
+      let params = {};
+      params['start_time'] = this.formInline.start_time;
+      params['end_time'] = this.formInline.end_time;
+      params['doctor_code'] = row.code;
+      params['sf_type'] = this.ysSearch.sf_type;
+      this.$router.push({ name: 'DoctorBl', query: params });
     },
     // 医生病历扣分
     toPageDoctorKf(row) {
-      const { start_time, end_time } = this.formInline;
-      this.$router.push({ name: 'DoctorBlKf', query: { doctor_name: row.docker_name, start_time, end_time } });
+      let params = {};
+      params['start_time'] = this.formInline.start_time;
+      params['end_time'] = this.formInline.end_time;
+      params['doctor_code'] = row.code;
+      params['sf_type'] = this.ysSearch.sf_type;
+      this.$router.push({ name: 'DoctorBlKf', query: params });
     },
   },
 };