Browse Source

编码员缺陷病案

yuwandanmian 1 year ago
parent
commit
0d1fb92629

+ 1 - 1
src/api/excel.js

@@ -151,7 +151,7 @@ export function otherStatisticsMenuExport(data) {
 // 编码员缺陷导出
 export function encoderErrorExport(data) {
   return request_blob({
-    url: `/api/home_bmy_quality/bmyErrorDetailsList`,
+    url: `/api/bmy/bmyQualityList`,
     method: 'post',
     responseType: 'blob',
     data

+ 1 - 1
src/router/index.js

@@ -490,7 +490,7 @@ export const constantRoutes = [
         component: () => import('@/views/encoder/errors'),
         hidden: true,//不在导航栏展示
         meta: { 
-          title: '缺陷病案',
+          title: '编码员缺陷病案',
           keepAlive: 0,
           canMultipleOpen: true 
         },

+ 18 - 2
src/views/data/query/index.vue

@@ -369,7 +369,7 @@ export default {
       value1: '',
       selectList: [],
       labelText: '',
-      keyList: ['OPE_LEVEL', 'SSPB', 'ABC03C', 'RYQK', 'AAA02C', 'RJSS', 'AEM01C', 'AAC11N', 'LNSSQ', 'LNSSH', 'AEL01'],
+      keyList: ['OPE_LEVEL', 'SSPB', 'ABC03C', 'RYQK', 'AAA02C', 'RJSS', 'AEM01C', 'AAC11N', 'LNSSQ', 'LNSSH', 'AEL01', 'AEE10'],
       tabKeyList: [
         'ICD10_ID1_first',
         'ICD10_NAME_first',
@@ -406,13 +406,15 @@ export default {
       AEM01C: '',
       SUM_ARG_STAY: '',
       SUM_ARG_F_D: '',
-      is_tm_path: ['/hospital-caseViews', '/embedIndex-caseViews', '/reviewIndex-caseViews', '/whitelist-caseViews', '/whitelist-search']
+      is_tm_path: ['/hospital-caseViews', '/embedIndex-caseViews', '/reviewIndex-caseViews', '/whitelist-caseViews', '/whitelist-search'],
+      doctors: []
     };
   },
   mounted() {},
   created() {
     this.funQuery(1);
     this.selectInfo();
+    this.getDoctors()
   },
   methods: {
     handleSelectChange(val, index) {
@@ -432,6 +434,12 @@ export default {
         }
       }
     },
+    // 获取医生选线
+    getDoctors() {
+      this.$axios.post('/selectStaff').then(res => {
+        this.doctors = res.data
+      })
+    },
     /**
      * 根据下拉框选择出现对应数据
      * @param {val} 选中当前
@@ -653,6 +661,14 @@ export default {
             id: '2',
           },
         ];
+      } else if (val.key == 'AEE10') {
+        val.selectList = [
+          {
+            label: '全部',
+            id: '0',
+          },
+          ...this.doctors
+        ];
       }
       this.$nextTick();
     },

+ 27 - 30
src/views/encoder/components/errors/SearchBox.vue

@@ -4,25 +4,12 @@
       <el-row :gutter="20">
         <el-col :span="6">
           <el-form-item label="住院号码">
-            <el-input v-model="data.user" placeholder="请输入"></el-input>
+            <el-input v-model="data.AAA28" placeholder="请输入"></el-input>
           </el-form-item>
         </el-col>
         <el-col :span="6">
           <el-form-item label="住院科室">
-            <el-select v-model="data.region" placeholder="全部" style="width: 100%;">
-              <el-option label="区域一" value="shanghai"></el-option>
-              <el-option label="区域二" value="beijing"></el-option>
-            </el-select>
-          </el-form-item>
-        </el-col>
-        <el-col :span="6">
-          <el-form-item label="缺陷描述">
-            <el-input v-model="data.user" placeholder="请输入"></el-input>
-          </el-form-item>
-        </el-col>
-        <el-col :span="6">
-          <el-form-item label="缺陷归类">
-            <el-select v-model="data.region" placeholder="全部" style="width: 100%;">
+            <el-select v-model="data.AAC11N" placeholder="全部" style="width: 100%;">
               <el-option label="区域一" value="shanghai"></el-option>
               <el-option label="区域二" value="beijing"></el-option>
             </el-select>
@@ -31,18 +18,18 @@
         <el-col :span="6">
           <el-form-item label="出院时间">
             <el-date-picker
-              v-model="data.time"
-              type="datetimerange"
-              start-placeholder="开始日期"
-              end-placeholder="结束日期"
-              :default-time="['12:00:00']"
+              v-model="data.AAC01"
+              type="daterange"
+              start-placeholder="开始时间"
+              end-placeholder="结束时间"
+              value-format="yyyyMMdd"
               style="width: 100%;">
             </el-date-picker>
           </el-form-item>
         </el-col>
         <el-col :span="6">
           <el-form-item label="住院医师">
-            <el-select v-model="data.region" placeholder="全部" style="width: 100%;">
+            <el-select v-model="data.AEE04" placeholder="全部" style="width: 100%;">
               <el-option label="区域一" value="shanghai"></el-option>
               <el-option label="区域二" value="beijing"></el-option>
             </el-select>
@@ -57,23 +44,23 @@
           </el-form-item>
         </el-col>
         <el-col :span="6">
-          <el-form-item label="手术编号">
-            <el-input v-model="data.user" placeholder="请输入"></el-input>
+          <el-form-item label="手术名称">
+            <el-input v-model="data.ICD9_NAME" placeholder="请输入"></el-input>
           </el-form-item>
         </el-col>
         <el-col :span="6">
-          <el-form-item label="诊断名称">
-            <el-input v-model="data.user" placeholder="请输入"></el-input>
+          <el-form-item label="手术编号">
+            <el-input v-model="data.ICD9_ID1" placeholder="请输入"></el-input>
           </el-form-item>
         </el-col>
         <el-col :span="6">
-          <el-form-item label="诊断编码">
-            <el-input v-model="data.user" placeholder="请输入"></el-input>
+          <el-form-item label="诊断名称">
+            <el-input v-model="data.ICD10_NAME" placeholder="请输入"></el-input>
           </el-form-item>
         </el-col>
         <el-col :span="6">
-          <el-form-item label="手术名称">
-            <el-input v-model="data.user" placeholder="请输入"></el-input>
+          <el-form-item label="诊断编码">
+            <el-input v-model="data.ICD10_ID1" placeholder="请输入"></el-input>
           </el-form-item>
         </el-col>
         <el-col :span="6">
@@ -93,7 +80,17 @@ export default {
     data: {
       type: Object,
       default() {
-        return {}
+        return {
+          AAA28: '',
+          AAC11N: '',
+          AAC01: [],
+          AEE04: '',
+          AEE08: '',
+          ICD9_ID1: '',
+          ICD9_NAME: '',
+          ICD10_ID1: '',
+          ICD10_NAME: ''
+        }
       }
     }
   }

+ 34 - 31
src/views/encoder/components/errors/TableBox.vue

@@ -10,19 +10,16 @@
       >
         <el-checkbox v-model="checkAll" :indeterminate="isIndeterminate" @change="handleCheckAllChange">全选</el-checkbox>
         <el-checkbox-group v-model="codes" @change="handleChange">
-          <el-checkbox label="field">缺陷字段</el-checkbox>
+          <el-checkbox label="field_name">缺陷字段</el-checkbox>
           <el-checkbox label="desc">缺陷描述</el-checkbox>
           <el-checkbox label="AAA28">住院号码</el-checkbox>
           <el-checkbox label="AAA01">姓名</el-checkbox>
-          <el-checkbox label="time">出院时间</el-checkbox>
+          <el-checkbox label="AAC01">出院时间</el-checkbox>
           <el-checkbox label="AAC11N">出院科室</el-checkbox>
           <el-checkbox label="AEE08">编码员</el-checkbox>
           <el-checkbox label="AEE04">住院医师</el-checkbox>
           <el-checkbox label="ICD10_NAME">主要诊断名称</el-checkbox>
           <el-checkbox label="ICD10_ID1">主要诊断编码</el-checkbox>
-          <el-checkbox label="ICD9_NAME">主要手术名称</el-checkbox>
-          <el-checkbox label="ICD9_ID1">主要手术编码</el-checkbox>
-          <el-checkbox label="level">缺陷分级</el-checkbox>
           <el-checkbox label="type">缺陷归类</el-checkbox>
         </el-checkbox-group>
         <el-button slot="reference" type="primary" plain icon="el-icon-setting" style="margin-left: 10px;"></el-button>
@@ -38,20 +35,13 @@
         align="center">
       </el-table-column>
       <el-table-column
-        v-if="codes.includes('field')"
-        prop="field"
+        v-if="codes.includes('field_name')"
+        prop="field_name"
         label="缺陷字段"
         show-overflow-tooltip
         width="160"
         align="center">
       </el-table-column>
-      <el-table-column
-        v-if="codes.includes('desc')"
-        prop="desc"
-        label="缺陷描述"
-        show-overflow-tooltip
-        align="center">
-      </el-table-column>
       <el-table-column
         v-if="codes.includes('AAA28')"
         prop=""
@@ -82,19 +72,18 @@
         prop="AAC11N"
         label="出院科室"
         show-overflow-tooltip
-        width="160"
         align="center">
       </el-table-column>
       <el-table-column
-        v-if="codes.includes('coder_name')"
-        prop="coder_name"
+        v-if="codes.includes('AEE08')"
+        prop="AEE08"
         label="编码员"
         width="120"
         align="center">
       </el-table-column>
       <el-table-column
-        v-if="codes.includes('ZYYS')"
-        prop="ZYYS"
+        v-if="codes.includes('AEE04')"
+        prop="AEE04"
         label="住院医师"
         width="120"
         align="center">
@@ -104,7 +93,6 @@
         prop="ICD10_NAME"
         label="主要诊断名称"
         show-overflow-tooltip
-        width="160"
         align="center">
       </el-table-column>
       <el-table-column
@@ -112,7 +100,20 @@
         prop="ICD10_ID1"
         label="主要诊断编码"
         show-overflow-tooltip
-        width="160"
+        align="center">
+      </el-table-column>
+      <el-table-column
+        v-if="codes.includes('ICD9_NAME')"
+        prop="ICD9_NAME"
+        label="主要手术名称"
+        show-overflow-tooltip
+        align="center">
+      </el-table-column>
+      <el-table-column
+        v-if="codes.includes('ICD9_ID1')"
+        prop="ICD9_ID1"
+        label="主要手术编码"
+        show-overflow-tooltip
         align="center">
       </el-table-column>
     </el-table>
@@ -131,32 +132,34 @@
     },
     data() {
       const defaultCodes = [
-        'field',
-        'desc',
+        'field_name',
         'AAA28',
         'AAA01',
         'AAC01',
         'AAC11N',
-        'coder_name',
-        'ZYYS',
+        'AEE08',
+        'AEE04',
         'ICD10_NAME',
-        'ICD10_ID1'
+        'ICD10_ID1',
+        'ICD9_NAME',
+        'ICD9_ID1'
       ]
       return {
         checkAll: true,
         isIndeterminate: false,
         defaultCodes,
         codes: [
-          'field',
-          'desc',
+          'field_name',
           'AAA28',
           'AAA01',
           'AAC01',
           'AAC11N',
-          'coder_name',
-          'ZYYS',
+          'AEE08',
+          'AEE04',
           'ICD10_NAME',
-          'ICD10_ID1'
+          'ICD10_ID1',
+          'ICD9_NAME',
+          'ICD9_ID1'
         ],
       }
     },

+ 50 - 38
src/views/encoder/errors.vue

@@ -15,6 +15,7 @@
 import SearchBoxVue from './components/errors/SearchBox.vue'
 import TableBoxVue from './components/errors/TableBox.vue'
 import Pagination from '@/components/Pagination'
+import { encoderErrorExport } from '@/api/excel'
 
 export default {
   components: {
@@ -27,27 +28,32 @@ export default {
       formInline: {
         AAA28: '',
         AAC11N: '',
-        time: []
+        AAC01: [],
+        AEE04: '',
+        AEE08: '',
+        ICD9_ID1: '',
+        ICD9_NAME: '',
+        ICD10_ID1: '',
+        ICD10_NAME: ''
       },
       tableData: [
         {
-          "error_rule": 16,
-          "auth": "AAA17C",
-          "field": "现住址邮政编码",
-          "ZYH": "722801",
-          "AAA28": "",
+          "field_name": "健康卡号",
+          "desc": "健康卡号未填写",
+          "AAA28": "00260972",
           "AAA01": "",
-          "AAC01": "2022-04-16 09:00:00",
-          "AAC11N": "",
+          "ZYH": "809257",
+          "AAC01": "2023-08-07 09:15:00",
+          "AAC11N": "神经外科",
+          "AEE08": "张三",
+          "AEE03": "李一",
+          "AEE04": "周一",
+          "ICD10_ID1": "S06.500x002",
+          "ICD10_NAME": "创伤性硬脑膜下血肿",
+          "ICD9_ID1": "01.2408",
+          "ICD9_NAME": "颅内血肿清除术",
           "level": "强制",
-          "type": "患者基本信息",
-          "desc": "现住址邮政编码未填写",
-          "coder_name": "编码员姓名",
-          "ZYYS": "住院医师姓名",
-          "ICD10_NAME": "主要诊断名称",
-          "ICD10_ID1": "主要诊断编码",
-          "ICD9_NAME": "主要手术名称",
-          "ICD9_ID1": "主要手术编码"
+          "type": "患者基本信息"
         }
       ],
       paginationData: {
@@ -58,32 +64,33 @@ export default {
     }
   },
   created() {
+    const { start_time, end_time } = this.$route.query
+    this.$set(this.formInline, 'AAC01', [start_time, end_time])
     this.getList()
   },
   methods: {
     getList() {
       const {
-        AAA28,
-        AAC11N,
-        time
+        AAC01
       } = this.formInline
       const {
         page,
         page_size
       } = this.paginationData
       const params = {
-        error_rule: this.$route.query.error_rule,
+        hospital_name: '',
+        bl_type: 2,
+        is_export: 0,
+        rule_id: this.$route.query.rule_id,
         page,
         page_size,
-        AAA28,
-        AAC11N,
-        is_export: 0
+        ...this.formInline
       }
-      if (time && time.length) {
-        params.start_time = time[0]
-        params.end_time = time[1]
+      if (AAC01 && AAC01.length) {
+        params.start_time = AAC01[0]
+        params.end_time = AAC01[1]
       }
-      this.$axios.post('/home_bmy_quality/bmyErrorDetailsList', params).then(res => {
+      this.$axios.post('/bmy/bmyQualityList', params).then(res => {
         this.tableData = res.data.list
         this.paginationData.total = res.data.count
       });
@@ -96,7 +103,13 @@ export default {
       this.formInline = {
         AAA28: '',
         AAC11N: '',
-        time: []
+        AAC01: [],
+        AEE04: '',
+        AEE08: '',
+        ICD9_ID1: '',
+        ICD9_NAME: '',
+        ICD10_ID1: '',
+        ICD10_NAME: ''
       }
     },
     handlePagination(val) {
@@ -107,19 +120,18 @@ export default {
     },
     handleExport() {
       const {
-        AAA28,
-        AAC11N,
-        time
+        AAC01
       } = this.formInline
       const params = {
-        error_rule: this.$route.query.error_rule,
-        AAA28,
-        AAC11N,
-        is_export: 1
+        hospital_name: '',
+        bl_type: 2,
+        is_export: 0,
+        rule_id: this.$route.query.rule_id,
+        ...this.formInline
       }
-      if (time && time.length) {
-        params.start_time = time[0]
-        params.end_time = time[1]
+      if (AAC01 && AAC01.length) {
+        params.start_time = AAC01[0]
+        params.end_time = AAC01[1]
       }
       encoderErrorExport(params).then(res => {
         const content = res.data; // 后台返回二进制数据

+ 6 - 1
src/views/encoder/index.vue

@@ -196,7 +196,7 @@
                   width="140"
                   align="center">
                   <template slot-scope="scope">
-                    <span class="link">{{ scope.row.count }}</span>
+                    <span class="link" @click="toPage(scope.row)">{{ scope.row.count }}</span>
                   </template>
                 </el-table-column>
               </el-table>
@@ -294,6 +294,11 @@
       this.getQuexianData()
     },
     methods: {
+      // 缺陷详情列表
+      toPage(row) {
+        const { start_time, end_time } = this.formInline
+        this.$router.push({ name: 'EncoderErrors', query: { rule_id: row.error_rule, start_time, end_time }})
+      },
       // 全局筛选
       async onGobalSearch() {
         await this.getTongjiData()