瀏覽代碼

病案室

yuwandanmian 1 年之前
父節點
當前提交
56665cc52c

+ 10 - 0
src/api/qc.js

@@ -0,0 +1,10 @@
+import request from '@/utils/request'
+
+// 病案室-质控列表
+export function getBlZkList(data) {
+  return request({
+    url: '/bl_zk/getBlZkList',
+    method: 'post',
+    data: data
+  })
+}

+ 186 - 0
src/views/recordsRoom/qc/components/SearchBox.vue

@@ -0,0 +1,186 @@
+<template>
+  <div class="app-container">
+    <el-form :inline="true" :model="data" class="demo-form-inline">
+      <el-form-item label="">
+        <el-select v-model="data.level" filterable clearable placeholder="整改级别">
+          <el-option v-for="item of levels" :key="item.id" :label="item.name" :value="item.id" />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="">
+        <el-input v-model="data.ZKYS" placeholder="质控医师" />
+      </el-form-item>
+      <el-form-item label="">
+        <el-select v-model="data.BLZT" filterable clearable placeholder="病历状态">
+          <el-option v-for="item of BLZTs" :key="item.id" :label="item.name" :value="item.id" />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="">
+        <el-select v-model="data.BLDJ" filterable clearable placeholder="病历等级">
+          <el-option v-for="item of BLDJs" :key="item.id" :label="item.name" :value="item.id" />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="">
+        <el-input v-model="data.AAA28" placeholder="住院号码" />
+      </el-form-item>
+      <el-form-item label="">
+        <el-input v-model="data.AAA01" placeholder="姓名" />
+      </el-form-item>
+      <el-form-item label="">
+        <el-select v-model="data.dep_id" filterable clearable placeholder="出院科室">
+          <el-option v-for="item of deportments" :key="item.id" :label="item.name" :value="item.id" />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="">
+        <el-date-picker
+          v-model="data.AAB01_START"
+          type="date"
+          :picker-options="pickerOptions1"
+          placeholder="入院开始日期"
+        />
+      </el-form-item>
+      <el-form-item label="">
+        <el-date-picker
+          v-model="data.AAC01_START"
+          type="date"
+          :picker-options="pickerOptions2"
+          placeholder="入院结束日期"
+        />
+      </el-form-item>
+      <el-form-item label="">
+        <el-date-picker
+          v-model="data.AAC01_START"
+          type="date"
+          :picker-options="pickerOptions1"
+          placeholder="出院开始日期"
+        />
+      </el-form-item>
+      <el-form-item label="">
+        <el-date-picker
+          v-model="data.AAC01_END"
+          type="date"
+          :picker-options="pickerOptions2"
+          placeholder="出院结束日期"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" @click="onSubmit">查询</el-button>
+      </el-form-item>
+      <el-form-item>
+        <el-button @click="onReset">重置</el-button>
+      </el-form-item>
+    </el-form>
+  </div>
+</template>
+
+<script>
+import { getDeportmentList } from '@/api/admin'
+export default {
+  props: {
+    data: {
+      type: Object,
+      default() {
+        return {
+          BLZT: '',
+          level: '',
+          ZKYS: '',
+          BLDJ: '',
+          AAA28: '',
+          AAA01: '',
+          AAC11N: '',
+          AAB01_START: '',
+          AAB01_END: '',
+          AAC01_START: '',
+          AAC01_END: ''
+        }
+      }
+    }
+  },
+  data() {
+    return {
+      pickerOptions1: {
+        disabledDate: (time) => {
+          if (this.data.end_time) {
+            return time.getTime() > new Date(this.data.end_time).getTime()
+          } else {
+            return time.getTime() > Date.now()
+          }
+        }
+      },
+      pickerOptions2: {
+        disabledDate: (time) => {
+          if (this.data.start_time) {
+            return time.getTime() < new Date(this.data.start_time).getTime()
+          } else {
+            return time.getTime() > Date.now()
+          }
+        }
+      },
+      deportments: [],
+      levels: [
+        {
+          id: 1,
+          name: '强制'
+        },
+        {
+          id: 2,
+          name: '建议'
+        }
+      ],
+      BLDJs: [
+        {
+          id: 1,
+          name: '甲'
+        },
+        {
+          id: 2,
+          name: '乙'
+        },
+        {
+          id: 3,
+          name: '丙'
+        }
+      ],
+      BLZTs: [
+        {
+          id: 0,
+          name: '未改'
+        },
+        {
+          id: 2,
+          name: '已改'
+        }
+      ]
+    }
+  },
+  created() {
+    this.getDeportmentList()
+  },
+  methods: {
+    onSubmit() {
+      this.$emit('search')
+    },
+    onReset() {
+      this.$emit('reset')
+    },
+    getDeportmentList() {
+      getDeportmentList().then(res => {
+        const { p } = res
+        if (Object.keys(p.list).length) {
+          for (const key in p.list) {
+            this.deportments.push({
+              id: key,
+              name: p.list[key]
+            })
+          }
+        }
+      }).catch(error => {
+        console.log(error)
+      })
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+
+</style>

+ 118 - 0
src/views/recordsRoom/qc/components/TableBox.vue

@@ -0,0 +1,118 @@
+<template>
+  <div class="app-container">
+    <el-table
+      v-loading="loading"
+      :data="data"
+      style="width: 100%"
+    >
+      <el-table-column type="index" label="#" width="80" />
+      <el-table-column
+        prop="AAA28"
+        label="住院号码"
+        width="200"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="AAA01"
+        label="姓名"
+        width="200"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="CH"
+        label="床号"
+        width="200"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="AAA29"
+        label="住院次数"
+        width="200"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="AAC11N"
+        label="接收科室"
+        width="200"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="JSR"
+        label="接收人"
+        width="200"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="AAB01"
+        label="入院时间"
+        width="200"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="AAC01"
+        label="出院时间"
+        width="200"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="ZKY"
+        label="质控员"
+        width="200"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="ZGQR"
+        label="整改日期"
+        width="200"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="BLZT"
+        label="病历状态"
+        width="200"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="sum_minus_points"
+        label="总扣分"
+        width="200"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="home_minus_points"
+        label="首页扣分"
+        width="200"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="ZKKS"
+        label="质控科室"
+        width="200"
+        show-overflow-tooltip
+      />
+    </el-table>
+  </div>
+</template>
+
+<script>
+
+export default {
+  props: {
+    data: {
+      type: Array,
+      default() {
+        return []
+      }
+    },
+    loading: {
+      type: Boolean,
+      default() {
+        return false
+      }
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+</style>

+ 129 - 0
src/views/recordsRoom/qc/index.vue

@@ -0,0 +1,129 @@
+<template>
+  <div>
+    <SearchBoxVue :data="searchData" @search="handleSearch" @reset="handleReset" />
+    <TableBoxVue :loading="loading" :data="tableData" style="margin-top: -40px;" />
+    <pagination
+      :auto-scroll="false"
+      :total="paginationData.total"
+      :page="paginationData.page"
+      :limit="paginationData.limit"
+      @pagination="handlePagination"
+    />
+  </div>
+</template>
+
+<script>
+import SearchBoxVue from './components/SearchBox.vue'
+import TableBoxVue from './components/TableBox.vue'
+import { getBlZkList } from '@/api/qc'
+
+export default {
+  components: {
+    SearchBoxVue,
+    TableBoxVue
+  },
+  data() {
+    return {
+      loading: false,
+      searchData: {
+        BLZT: '',
+        level: '',
+        ZKYS: '',
+        BLDJ: '',
+        AAA28: '',
+        AAA01: '',
+        AAC11N: '',
+        AAB01_START: '',
+        AAB01_END: '',
+        AAC01_START: '',
+        AAC01_END: ''
+      },
+      tableData: [],
+      paginationData: {
+        total: 0,
+        page: 1,
+        limit: 10
+      }
+    }
+  },
+  created() {
+    this.getList()
+  },
+  methods: {
+    getList() {
+      const {
+        BLZT,
+        level,
+        ZKYS,
+        BLDJ,
+        AAA28,
+        AAA01,
+        AAC11N,
+        AAB01_START,
+        AAB01_END,
+        AAC01_START,
+        AAC01_END
+      } = this.searchData
+      const { page, limit } = this.paginationData
+      const params = {
+        BLZT,
+        level,
+        ZKYS,
+        BLDJ,
+        AAA28,
+        AAA01,
+        AAC11N,
+        AAB01_START,
+        AAB01_END,
+        AAC01_START,
+        AAC01_END,
+        page,
+        page_size: limit
+      }
+      params.AAB01_START = AAB01_START ? AAB01_START / 1000 : ''
+      params.AAB01_END = AAB01_END ? AAB01_END / 1000 : ''
+      params.AAC01_START = AAC01_START ? AAC01_START / 1000 : ''
+      params.AAC01_END = AAC01_END ? AAC01_END / 1000 : ''
+      this.loading = true
+      getBlZkList(params).then(res => {
+        const { p } = res
+        this.paginationData.total = p.count
+        this.tableData = p.list
+      }).catch(error => {
+        console.log(error)
+      }).finally(() => {
+        this.loading = false
+      })
+    },
+    handlePagination(param) {
+      this.paginationData.page = param.page
+      this.paginationData.limit = param.limit
+      this.getList()
+    },
+    handleSearch() {
+      this.paginationData.page = 1
+      this.getList()
+    },
+    handleReset() {
+      this.searchData = {
+        BLZT: '',
+        level: '',
+        ZKYS: '',
+        BLDJ: '',
+        AAA28: '',
+        AAA01: '',
+        AAC11N: '',
+        AAB01_START: '',
+        AAB01_END: '',
+        AAC01_START: '',
+        AAC01_END: ''
+      }
+      this.handleSearch()
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+
+</style>