Browse Source

死亡病历查询

xiaochan 2 years ago
parent
commit
adfce7e2f4

+ 9 - 0
src/api/emr-control/query-die.ts

@@ -0,0 +1,9 @@
+import request from "./request";
+
+export function selectDieEmrData(start: string, end: string) {
+    return request({
+        url: '/queryEmr/selectDieEmrData',
+        method: 'get',
+        params: {start, end}
+    })
+}

+ 2 - 0
src/components/query-components/XcQuery.vue

@@ -85,7 +85,9 @@ const submit = async (reset = false) => {
 
   let queryData = extractQueryData(pageJson.value);
 
+  pageJson.value.tableConfig.loading = true
   let res = await executeSQL(pageJson.value.submitQuerySql, queryData) as any[]
+  pageJson.value.tableConfig.loading = false
   pageJson.value.tableConfig.data = res
   pageJson.value.pageConfig.total = res.length
 

+ 5 - 0
src/router/modules/dashboard.js

@@ -497,6 +497,11 @@ const route = [
                 component: createNameComponent(() => import('@/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr_control_rule/EmrControlRule.vue')),
                 meta: {title: '环节质控'},
             },
+            {
+                path: 'dieQuery',
+                component: createNameComponent(() => import('@/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/query-die/QueryDie.vue')),
+                meta: {title: '死亡病历分析'},
+            },
             {
                 path: 'finalQualityControl',
                 component: createNameComponent(() => import('@/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/final-quality-control/FinalQualityControl.vue')),

+ 8 - 0
src/utils/store-public.ts

@@ -63,3 +63,11 @@ export const appStore = computed<{
 }>(() => {
     return store.state.app
 })
+
+
+export const windowSizeStore = computed<{
+    h: number,
+    n: number
+}>(() => {
+    return store.state.app['windowSize']
+})

+ 18 - 0
src/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/query-die/QueryDie.vue

@@ -0,0 +1,18 @@
+<script setup lang="ts">
+import {ref} from "vue";
+import DieEmr from "@/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/query-die/comp/DieEmr.vue";
+
+const tabs = ref('dieEmr')
+</script>
+
+<template>
+  <el-tabs v-model="tabs">
+    <el-tab-pane name="dieEmr" label="死亡病历">
+      <DieEmr/>
+    </el-tab-pane>
+  </el-tabs>
+</template>
+
+<style scoped lang="scss">
+
+</style>

+ 51 - 0
src/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/query-die/comp/DieEmr.vue

@@ -0,0 +1,51 @@
+<script setup lang="ts">
+import {onMounted, ref} from "vue";
+import {getDateRangeFormatDate, getFormatDatetime} from '@/utils/date'
+import {selectDieEmrData} from "@/api/emr-control/query-die";
+import XcTable from "@/components/xiao-chan/xc-table/XcTable.vue";
+import {windowSizeStore} from "@/utils/store-public";
+import {Export} from '@/utils/ExportExcel'
+
+const dateRange = ref([])
+const resData = ref({
+  data: [],
+  header: []
+})
+
+
+const queryClick = async () => {
+  let {startTime, endTime} = getDateRangeFormatDate(dateRange.value)
+  resData.value = await selectDieEmrData(startTime, endTime) as any
+}
+
+const exportExcelClick = () => {
+  let title = {}
+  resData.value.header.forEach(item => {
+    title[item] = item
+  })
+  let {startTime, endTime} = getDateRangeFormatDate(dateRange.value)
+  Export(resData.value.data, title, `${getFormatDatetime(startTime, 'YYYY-MM-DD')}至${getFormatDatetime(endTime, 'YYYY-MM-DD')}`)
+}
+
+onMounted(() => {
+  dateRange.value = ['2021-01-01', '2023-08-09']
+})
+
+</script>
+
+<template>
+  <el-header>
+    <el-date-picker type="daterange" v-model="dateRange" style="width: 250px" :clearable="false"/>
+    <el-button type="primary" v-el-btn="queryClick">查询</el-button>
+    <el-button type="primary" @click="exportExcelClick">Excel</el-button>
+  </el-header>
+  <el-main style="height: 100%">
+    <xc-table :local-data="resData.data" :final-height="windowSizeStore.h / 1.15">
+      <el-table-column v-for="item in resData.header" :label="item" :prop="item" show-overflow-tooltip/>
+    </xc-table>
+  </el-main>
+</template>
+
+<style scoped lang="scss">
+
+</style>