|
@@ -25,7 +25,7 @@
|
|
<el-col :span="16">
|
|
<el-col :span="16">
|
|
<div class="box_wrapper">
|
|
<div class="box_wrapper">
|
|
<el-form :inline="true" :model="formInline" class="demo-form-inline">
|
|
<el-form :inline="true" :model="formInline" class="demo-form-inline">
|
|
- <el-form-item label="时间">
|
|
|
|
|
|
+ <el-form-item label="出院时间">
|
|
<el-date-picker
|
|
<el-date-picker
|
|
v-model="formInline.time"
|
|
v-model="formInline.time"
|
|
type="daterange"
|
|
type="daterange"
|
|
@@ -42,13 +42,16 @@
|
|
</el-form>
|
|
</el-form>
|
|
<!-- 排名柱状图 -->
|
|
<!-- 排名柱状图 -->
|
|
<div class="rank-box">
|
|
<div class="rank-box">
|
|
- <div id="myChart1" style="width: 100%; height: 400px; background: yellow"></div>
|
|
|
|
|
|
+ <Title :title="'科室排名Rank10'" style="margin-bottom: 0;" />
|
|
|
|
+ <div v-if="rankData.length" id="myChart1" style="width: 100%; height: 400px;"></div>
|
|
|
|
+ <el-empty v-else description="暂无排名数据"></el-empty>
|
|
</div>
|
|
</div>
|
|
<div class="table-box">
|
|
<div class="table-box">
|
|
|
|
+ <Title :title="'科室排名'" />
|
|
<el-table :data="tableData" style="width: 100%">
|
|
<el-table :data="tableData" style="width: 100%">
|
|
<el-table-column type="index" label="序号" width="80" align="center"></el-table-column>
|
|
<el-table-column type="index" label="序号" width="80" align="center"></el-table-column>
|
|
<el-table-column prop="dep_name" label="出院科室"></el-table-column>
|
|
<el-table-column prop="dep_name" label="出院科室"></el-table-column>
|
|
- <el-table-column prop="" label="">
|
|
|
|
|
|
+ <el-table-column prop="" label="" align="center">
|
|
<template slot="header" slot-scope="scope">
|
|
<template slot="header" slot-scope="scope">
|
|
<span>{{ scope._self.ruleName }}</span>
|
|
<span>{{ scope._self.ruleName }}</span>
|
|
</template>
|
|
</template>
|
|
@@ -56,8 +59,16 @@
|
|
<span>{{ (scope.row.res * 100).toFixed(2) + '%' }}</span>
|
|
<span>{{ (scope.row.res * 100).toFixed(2) + '%' }}</span>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
- <el-table-column prop="numerator" label="正确病历数"></el-table-column>
|
|
|
|
- <el-table-column prop="denominator" label="病历总数"></el-table-column>
|
|
|
|
|
|
+ <el-table-column prop="numerator" label="正确病历数" align="center">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <span class="link" @click="toPage(scope.row, 1)">{{ scope.row.numerator }}</span>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column prop="denominator" label="病历总数" align="center">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <span class="link" @click="toPage(scope.row, 0)">{{ scope.row.denominator }}</span>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
</el-table>
|
|
</el-table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@@ -67,28 +78,15 @@
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script>
|
|
<script>
|
|
|
|
+import * as echarts from 'echarts';
|
|
|
|
+import Title from '@/components/Title';
|
|
export default {
|
|
export default {
|
|
|
|
+ components: {
|
|
|
|
+ Title
|
|
|
|
+ },
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
menus: [
|
|
menus: [
|
|
- // {
|
|
|
|
- // id: 1,
|
|
|
|
- // name: '一、人力资源配置指标',
|
|
|
|
- // children: [
|
|
|
|
- // {
|
|
|
|
- // id: 11,
|
|
|
|
- // name: '指标一、住院病案管理人员月均负担出院患者病历数',
|
|
|
|
- // },
|
|
|
|
- // {
|
|
|
|
- // id: 12,
|
|
|
|
- // name: '指标二、门诊病案管理人员月均负担门诊患者病历数',
|
|
|
|
- // },
|
|
|
|
- // {
|
|
|
|
- // id: 13,
|
|
|
|
- // name: '指标三、病案编码人员月均负担出院患者病历数',
|
|
|
|
- // },
|
|
|
|
- // ],
|
|
|
|
- // },
|
|
|
|
{
|
|
{
|
|
id: 2,
|
|
id: 2,
|
|
name: '二、病历书写时效性指标',
|
|
name: '二、病历书写时效性指标',
|
|
@@ -239,21 +237,28 @@ export default {
|
|
if (!value) return true;
|
|
if (!value) return true;
|
|
return data.name.indexOf(value) !== -1;
|
|
return data.name.indexOf(value) !== -1;
|
|
},
|
|
},
|
|
|
|
+ // 菜单点击
|
|
handleNodeClick(data) {
|
|
handleNodeClick(data) {
|
|
const { id, name } = data;
|
|
const { id, name } = data;
|
|
if (id > 10) {
|
|
if (id > 10) {
|
|
this.ruleId = id;
|
|
this.ruleId = id;
|
|
this.ruleName = name.split('、')[1];
|
|
this.ruleName = name.split('、')[1];
|
|
}
|
|
}
|
|
- if (id > 10 && this.formInline.year) {
|
|
|
|
- this.getList();
|
|
|
|
|
|
+ if (id > 10 && this.formInline.time.length) {
|
|
|
|
+ this.getList()
|
|
|
|
+ this.getRankList()
|
|
}
|
|
}
|
|
- console.log(this.ruleName)
|
|
|
|
},
|
|
},
|
|
|
|
+ // 搜索
|
|
onSearch() {
|
|
onSearch() {
|
|
- this.getList()
|
|
|
|
- this.getRankList()
|
|
|
|
|
|
+ if (this.ruleId && this.formInline.time.length) {
|
|
|
|
+ this.getList()
|
|
|
|
+ this.getRankList()
|
|
|
|
+ } else {
|
|
|
|
+ this.$message.error('请完善指标和出院时间!')
|
|
|
|
+ }
|
|
},
|
|
},
|
|
|
|
+ // 获取科室排名
|
|
getList() {
|
|
getList() {
|
|
const params = {
|
|
const params = {
|
|
type: this.ruleId,
|
|
type: this.ruleId,
|
|
@@ -275,6 +280,7 @@ export default {
|
|
}
|
|
}
|
|
});
|
|
});
|
|
},
|
|
},
|
|
|
|
+ // 获取排名rank10
|
|
getRankList() {
|
|
getRankList() {
|
|
const params = {
|
|
const params = {
|
|
type: this.ruleId,
|
|
type: this.ruleId,
|
|
@@ -292,9 +298,107 @@ export default {
|
|
if (Array.isArray(res.data.data)) {
|
|
if (Array.isArray(res.data.data)) {
|
|
this.rankData = res.data.data;
|
|
this.rankData = res.data.data;
|
|
} else {
|
|
} else {
|
|
- this.tableData = [];
|
|
|
|
|
|
+ this.rankData = [];
|
|
}
|
|
}
|
|
|
|
+ if (this.rankData.length) {
|
|
|
|
+ this.$nextTick(() => {
|
|
|
|
+ this.initCharts1()
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ // 柱状图
|
|
|
|
+ initCharts1() {
|
|
|
|
+ let dataName = [];
|
|
|
|
+ let dataFleg = [];
|
|
|
|
+ for (let item in this.rankData) {
|
|
|
|
+ dataName.push(this.rankData[item].dep_name);
|
|
|
|
+ dataFleg.push((this.rankData[item].res * 100).toFixed(2));
|
|
|
|
+ }
|
|
|
|
+ // 销毁上一次实例
|
|
|
|
+ echarts.init(document.getElementById('myChart1')).dispose();
|
|
|
|
+ // 构建新实例
|
|
|
|
+ let myChart = echarts.init(document.getElementById('myChart1'));
|
|
|
|
+ window.addEventListener('resize', function () {
|
|
|
|
+ myChart.resize();
|
|
});
|
|
});
|
|
|
|
+ if (this.rankData.length) {
|
|
|
|
+ myChart.setOption({
|
|
|
|
+ toolbox: {
|
|
|
|
+ feature: {
|
|
|
|
+ saveAsImage: {
|
|
|
|
+ name: '科室排名',
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ tooltip: {
|
|
|
|
+ trigger: 'axis',
|
|
|
|
+ axisPointer: {
|
|
|
|
+ type: 'cross',
|
|
|
|
+ crossStyle: {
|
|
|
|
+ color: '#999',
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ legend: {
|
|
|
|
+ show: true,
|
|
|
|
+ },
|
|
|
|
+ xAxis: {
|
|
|
|
+ type: 'category',
|
|
|
|
+ data: dataName,
|
|
|
|
+ axisLabel: {
|
|
|
|
+ rotate: 15
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ grid: {
|
|
|
|
+ left: '3%',
|
|
|
|
+ right: '3%',
|
|
|
|
+ bottom: '3%',
|
|
|
|
+ containLabel: true,
|
|
|
|
+ },
|
|
|
|
+ yAxis: {
|
|
|
|
+ type: 'value',
|
|
|
|
+ axisLabel: {
|
|
|
|
+ show: true,
|
|
|
|
+ interval: 0,
|
|
|
|
+ formatter: '{value} %'
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ series: [
|
|
|
|
+ {
|
|
|
|
+ data: dataFleg,
|
|
|
|
+ type: 'bar',
|
|
|
|
+ showBackground: true,
|
|
|
|
+ barMaxWidth: 30,
|
|
|
|
+ label: {
|
|
|
|
+ show: true,
|
|
|
|
+ position: 'top',
|
|
|
|
+ },
|
|
|
|
+ name: this.ruleName,
|
|
|
|
+ backgroundStyle: {
|
|
|
|
+ color: 'rgba(180, 180, 180, 0.2)',
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ ],
|
|
|
|
+ });
|
|
|
|
+ } else {
|
|
|
|
+ myChart.setOption({
|
|
|
|
+ title: {
|
|
|
|
+ text: '暂无数据',
|
|
|
|
+ x: 'center',
|
|
|
|
+ y: 'center',
|
|
|
|
+ textStyle: {
|
|
|
|
+ fontSize: 14,
|
|
|
|
+ fontWeight: 'normal',
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ // 跳转列表页
|
|
|
|
+ toPage(row, status) {
|
|
|
|
+ const { time } = this.formInline
|
|
|
|
+ this.$router.push({ path: '/caseIndexAnalysisList', query: { ruleId: this.ruleId, ruleName: this.ruleName, start: time[0], end: time[1], dep_id: row.dep_id, status }})
|
|
}
|
|
}
|
|
},
|
|
},
|
|
};
|
|
};
|
|
@@ -323,7 +427,11 @@ export default {
|
|
margin-bottom: 20px;
|
|
margin-bottom: 20px;
|
|
}
|
|
}
|
|
.table-box {
|
|
.table-box {
|
|
-
|
|
|
|
|
|
+ .link {
|
|
|
|
+ color: #409eff;
|
|
|
|
+ font-weight: 600;
|
|
|
|
+ cursor: pointer;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
::v-deep.el-table .el-table__header tr th {
|
|
::v-deep.el-table .el-table__header tr th {
|
|
background: #f1f6ff;
|
|
background: #f1f6ff;
|