|
@@ -110,7 +110,7 @@
|
|
|
<span class="pind10"></span>
|
|
|
<!-- 中间选择输入框开始 -->
|
|
|
<span v-if="keyList.includes(item.key)">
|
|
|
- <el-select class="width150" filterable v-model="item.value" placeholder="请选择">
|
|
|
+ <el-select class="width150" filterable v-model="item.value" placeholder="请选择">
|
|
|
<el-option v-for="(itemo, indexo) in item.selectList" :key="indexo" :label="itemo.label" :value="itemo.id"></el-option>
|
|
|
</el-select>
|
|
|
</span>
|
|
@@ -135,7 +135,6 @@
|
|
|
<!-- <el-button type="primary" @click="funRead">重置</el-button> -->
|
|
|
</span>
|
|
|
<!-- 增减重置选项按钮结束 -->
|
|
|
-
|
|
|
</el-form-item>
|
|
|
<el-form-item label="患者年龄">
|
|
|
<div class="zkSelect">
|
|
@@ -201,7 +200,7 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="tableBox">
|
|
|
- <div class="flextab" style="margin: 0;margin-bottom:15px;">
|
|
|
+ <div class="flextab" style="margin: 0; margin-bottom: 15px">
|
|
|
<div class="flextabtitle-box">
|
|
|
<!-- <Title :title="'病案列表'" /> -->
|
|
|
<div class="h-title">
|
|
@@ -209,10 +208,26 @@
|
|
|
<span class="text">病案列表</span>
|
|
|
</div>
|
|
|
<div class="flextab-item">
|
|
|
- <div>平均住院日: <span class="s-1">{{ ARG_STAY }}</span><span class="s-2"> 天</span></div>
|
|
|
- <div>平均费用: <span class="s-1">{{ ARG_F_D }}</span><span class="s-2"> 元;</span></div>
|
|
|
- <div>例数: <span class="s-1">{{paginationData.total?paginationData.total:0}}</span><span class="s-2"> 例</span></div>
|
|
|
- <div>死亡例数: <span class="s-1">{{AEM01C?AEM01C:0}}</span><span class="s-2"> 例</span></div>
|
|
|
+ <div>
|
|
|
+ 平均住院日:
|
|
|
+ <span class="s-1">{{ ARG_STAY }}</span>
|
|
|
+ <span class="s-2">天</span>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ 平均费用:
|
|
|
+ <span class="s-1">{{ ARG_F_D }}</span>
|
|
|
+ <span class="s-2">元;</span>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ 例数:
|
|
|
+ <span class="s-1">{{ paginationData.total ? paginationData.total : 0 }}</span>
|
|
|
+ <span class="s-2">例</span>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ 死亡例数:
|
|
|
+ <span class="s-1">{{ AEM01C ? AEM01C : 0 }}</span>
|
|
|
+ <span class="s-2">例</span>
|
|
|
+ </div>
|
|
|
<div>
|
|
|
总费用:
|
|
|
<span class="s-1">{{ SUM_ARG_F_D ? SUM_ARG_F_D : 0 }}</span>
|
|
@@ -225,7 +240,7 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
-
|
|
|
+
|
|
|
<el-button class="btn1" type="primary" icon="el-icon-download" @click="funExport('质控列表', '/qualityList')">导出execl</el-button>
|
|
|
</div>
|
|
|
|
|
@@ -242,7 +257,7 @@
|
|
|
<el-table-column prop="AAA04" label="年龄"></el-table-column>
|
|
|
|
|
|
<template v-for="(item, ind) in formData1.seniorList">
|
|
|
- <el-table-column :key="ind" v-if=" tabKeyList.includes(item.key) " :label="funkdef(item.key)" :prop="item.key"></el-table-column>
|
|
|
+ <el-table-column :key="ind" v-if="tabKeyList.includes(item.key)" :label="funkdef(item.key)" :prop="item.key"></el-table-column>
|
|
|
</template>
|
|
|
<el-table-column prop="ABC01N" label="主诊断名称"></el-table-column>
|
|
|
<el-table-column prop="ABC01C" label="主诊断编码"></el-table-column>
|
|
@@ -294,6 +309,7 @@ import Title from '@/components/Title';
|
|
|
import { mapGetters } from 'vuex';
|
|
|
import mPagination from '@/components/m-pagination';
|
|
|
// import { json } from 'stream/consumers';
|
|
|
+import { medicalRecordExport } from '@/api/excel';
|
|
|
|
|
|
export default {
|
|
|
name: 'Dashboard',
|
|
@@ -362,8 +378,24 @@ export default {
|
|
|
value1: '',
|
|
|
selectList: [],
|
|
|
labelText: '',
|
|
|
- keyList: ['OPE_LEVEL', 'SSPB', 'ABC03C','RYQK', 'AAA02C', 'RJSS', 'AEM01C', 'AAC11N', 'LNSSQ', 'LNSSH', 'AEL01'],
|
|
|
- tabKeyList: ['ICD10_ID1_first', 'ICD10_NAME_first', 'ICD10_ID1', 'ICD10_NAME','ICD9_ID1', 'ICD9_NAME', 'ABC03C','RYQK', 'OPE_LEVEL', 'ABA01N', 'ABA01C', 'AEL01', 'RJSS','LNSSQ','LNSSH'], // 表头key动态展示
|
|
|
+ keyList: ['OPE_LEVEL', 'SSPB', 'ABC03C', 'RYQK', 'AAA02C', 'RJSS', 'AEM01C', 'AAC11N', 'LNSSQ', 'LNSSH', 'AEL01'],
|
|
|
+ tabKeyList: [
|
|
|
+ 'ICD10_ID1_first',
|
|
|
+ 'ICD10_NAME_first',
|
|
|
+ 'ICD10_ID1',
|
|
|
+ 'ICD10_NAME',
|
|
|
+ 'ICD9_ID1',
|
|
|
+ 'ICD9_NAME',
|
|
|
+ 'ABC03C',
|
|
|
+ 'RYQK',
|
|
|
+ 'OPE_LEVEL',
|
|
|
+ 'ABA01N',
|
|
|
+ 'ABA01C',
|
|
|
+ 'AEL01',
|
|
|
+ 'RJSS',
|
|
|
+ 'LNSSQ',
|
|
|
+ 'LNSSH',
|
|
|
+ ], // 表头key动态展示
|
|
|
tableData: [],
|
|
|
payList: [], //支付方式
|
|
|
departmentList: [], //出院科室
|
|
@@ -380,14 +412,12 @@ export default {
|
|
|
},
|
|
|
ARG_F_D: '',
|
|
|
ARG_STAY: '',
|
|
|
- AEM01C:'',
|
|
|
+ AEM01C: '',
|
|
|
SUM_ARG_STAY: '',
|
|
|
- SUM_ARG_F_D: ''
|
|
|
+ SUM_ARG_F_D: '',
|
|
|
};
|
|
|
},
|
|
|
- mounted() {
|
|
|
-
|
|
|
- },
|
|
|
+ mounted() {},
|
|
|
created() {
|
|
|
this.funQuery(1);
|
|
|
this.selectInfo();
|
|
@@ -405,7 +435,7 @@ export default {
|
|
|
* @param {val} 选中当前
|
|
|
*/
|
|
|
getOneCleck(val, index) {
|
|
|
- this.$set(this.formData1.seniorList[index], 'value', '')
|
|
|
+ this.$set(this.formData1.seniorList[index], 'value', '');
|
|
|
var that = this;
|
|
|
this.labelText = val.key;
|
|
|
var text = this.fieldList.filter(item => val.key == item.id);
|
|
@@ -582,14 +612,14 @@ export default {
|
|
|
},
|
|
|
];
|
|
|
} else if (val.key == 'AAC11N') {
|
|
|
- console.log('vvvvvvvvvvvvvvvvv')
|
|
|
- let selectArr = []
|
|
|
+ console.log('vvvvvvvvvvvvvvvvv');
|
|
|
+ let selectArr = [];
|
|
|
for (let item in this.departmentList) {
|
|
|
this.departmentList[item];
|
|
|
selectArr.push({
|
|
|
label: this.departmentList[item].name,
|
|
|
id: this.departmentList[item].id,
|
|
|
- });
|
|
|
+ });
|
|
|
}
|
|
|
val.selectList = selectArr;
|
|
|
} else if (val.key == 'LNSSQ' || val.key == 'LNSSH') {
|
|
@@ -653,9 +683,9 @@ export default {
|
|
|
};
|
|
|
} else {
|
|
|
pramse = {
|
|
|
- AAC04: `${min?min:0}-${max?max:0}`,
|
|
|
- AAC0401:`${min?min:0}`,
|
|
|
- AAC0402:`${max?max:0}`,
|
|
|
+ AAC04: `${min ? min : 0}-${max ? max : 0}`,
|
|
|
+ AAC0401: `${min ? min : 0}`,
|
|
|
+ AAC0402: `${max ? max : 0}`,
|
|
|
AAA04: this.formData1.ageyear || null, //年龄
|
|
|
AAA40: this.formData1.ageday || null, //不足一周岁年龄
|
|
|
age_start_type: this.formData1.age_start_type || null,
|
|
@@ -669,7 +699,25 @@ export default {
|
|
|
};
|
|
|
}
|
|
|
console.error('pramse', pramse);
|
|
|
- this.funExeclPost(fileName, pramse, httpUrl, 'xlsx');
|
|
|
+ medicalRecordExport(pramse).then(res => {
|
|
|
+ const content = res.data; // 后台返回二进制数据
|
|
|
+ const blob = new Blob([content]);
|
|
|
+ const fileName = `病案列表.csv`;
|
|
|
+ if ('download' in document.createElement('a')) {
|
|
|
+ // 非IE下载
|
|
|
+ const elink = document.createElement('a');
|
|
|
+ elink.download = fileName;
|
|
|
+ elink.style.display = 'none';
|
|
|
+ elink.href = URL.createObjectURL(blob);
|
|
|
+ document.body.appendChild(elink);
|
|
|
+ elink.click();
|
|
|
+ URL.revokeObjectURL(elink.href); // 释放URL 对象
|
|
|
+ document.body.removeChild(elink);
|
|
|
+ } else {
|
|
|
+ // IE10+下载
|
|
|
+ navigator.msSaveBlob(blob, fileName);
|
|
|
+ }
|
|
|
+ });
|
|
|
},
|
|
|
funExeclPost(fileName, pramse, httpUrl, format) {
|
|
|
//导出
|
|
@@ -678,18 +726,40 @@ export default {
|
|
|
console.error('111', res);
|
|
|
});
|
|
|
},
|
|
|
+
|
|
|
+ // 导出
|
|
|
+ onExport() {
|
|
|
+ medicalRecordExport(params).then(res => {
|
|
|
+ const content = res.data; // 后台返回二进制数据
|
|
|
+ const blob = new Blob([content]);
|
|
|
+ const fileName = `门诊病例.csv`;
|
|
|
+ if ('download' in document.createElement('a')) {
|
|
|
+ // 非IE下载
|
|
|
+ const elink = document.createElement('a');
|
|
|
+ elink.download = fileName;
|
|
|
+ elink.style.display = 'none';
|
|
|
+ elink.href = URL.createObjectURL(blob);
|
|
|
+ document.body.appendChild(elink);
|
|
|
+ elink.click();
|
|
|
+ URL.revokeObjectURL(elink.href); // 释放URL 对象
|
|
|
+ document.body.removeChild(elink);
|
|
|
+ } else {
|
|
|
+ // IE10+下载
|
|
|
+ navigator.msSaveBlob(blob, fileName);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
funGoto(val) {
|
|
|
this.storageSet('getData', val);
|
|
|
- const { path } = this.$route
|
|
|
- let toPath
|
|
|
+ const { path } = this.$route;
|
|
|
+ let toPath;
|
|
|
if (path === '/hospital-search') {
|
|
|
- toPath = '/hospital-details'
|
|
|
+ toPath = '/hospital-details';
|
|
|
} else {
|
|
|
- toPath = '/details'
|
|
|
+ toPath = '/details';
|
|
|
}
|
|
|
// status = 1 代表不能复制文本
|
|
|
- this.$router.push({ path: toPath })
|
|
|
-
|
|
|
+ this.$router.push({ path: toPath });
|
|
|
},
|
|
|
funBlur() {
|
|
|
if (this.formData1.ageday > 356) {
|
|
@@ -710,11 +780,11 @@ export default {
|
|
|
},
|
|
|
funDel(i) {
|
|
|
let index = i;
|
|
|
- if(index == 0){
|
|
|
- return
|
|
|
+ if (index == 0) {
|
|
|
+ return;
|
|
|
}
|
|
|
let list = this.formData1.seniorList;
|
|
|
- list.splice(index,1);
|
|
|
+ list.splice(index, 1);
|
|
|
this.formData1.seniorList = list;
|
|
|
},
|
|
|
funAdd() {
|
|
@@ -770,7 +840,7 @@ export default {
|
|
|
AAC01_end_date: this.formData0.endTime || '',
|
|
|
coder_id: this.formData0.Coder || null, //编码员ID
|
|
|
ORG_STATE: this.formData0.medicalRecord || null, //全部病案
|
|
|
- page:num == 1? num: this.paginationData.currentPage, //页码
|
|
|
+ page: num == 1 ? num : this.paginationData.currentPage, //页码
|
|
|
limit: this.paginationData.pageSize, //条数
|
|
|
};
|
|
|
sessionStorage.setItem('Zkpramse', JSON.stringify(pramse));
|
|
@@ -778,9 +848,9 @@ export default {
|
|
|
this.getinfo(pramse);
|
|
|
} else {
|
|
|
let pramse = {
|
|
|
- AAC04: `${min?min:0}-${max?max:0}`,
|
|
|
- AAC0401:`${min?min:0}`,
|
|
|
- AAC0402:`${max?max:0}`,
|
|
|
+ AAC04: `${min ? min : 0}-${max ? max : 0}`,
|
|
|
+ AAC0401: `${min ? min : 0}`,
|
|
|
+ AAC0402: `${max ? max : 0}`,
|
|
|
AAA04: this.formData1.ageyear || null, //年龄
|
|
|
AAA40: this.formData1.ageday || null, //不足一周岁年龄
|
|
|
age_start_type: this.formData1.age_start_type || null,
|
|
@@ -788,26 +858,26 @@ export default {
|
|
|
AAC01_start_date: this.formData1.startTime || '',
|
|
|
AAC01_end_date: this.formData1.endTime || '',
|
|
|
field: this.formData1.seniorList || null, //字段条件
|
|
|
- page: num == 1? num: this.paginationData.currentPage, //页码
|
|
|
+ page: num == 1 ? num : this.paginationData.currentPage, //页码
|
|
|
limit: this.paginationData.pageSize, //条数
|
|
|
};
|
|
|
sessionStorage.setItem('Zkpramse', JSON.stringify(pramse));
|
|
|
sessionStorage.setItem('ZkChoice', this.choice);
|
|
|
- if (num == 1) {
|
|
|
+ if (num == 1) {
|
|
|
this.paginationData.currentPage = 1;
|
|
|
}
|
|
|
this.getinfo(pramse);
|
|
|
}
|
|
|
},
|
|
|
- getinfo(p){
|
|
|
+ getinfo(p) {
|
|
|
this.$axios.post('/qualityList', p).then(res => {
|
|
|
this.paginationData.total = res.data.count;
|
|
|
this.tableData = res.data.list;
|
|
|
this.ARG_F_D = res.data.ARG_F_D;
|
|
|
this.ARG_STAY = res.data.ARG_STAY;
|
|
|
this.AEM01C = res.data.AEM01C;
|
|
|
- this.SUM_ARG_STAY = res.data.SUM_ARG_STAY
|
|
|
- this.SUM_ARG_F_D = res.data.SUM_ARG_F_D
|
|
|
+ this.SUM_ARG_STAY = res.data.SUM_ARG_STAY;
|
|
|
+ this.SUM_ARG_F_D = res.data.SUM_ARG_F_D;
|
|
|
});
|
|
|
},
|
|
|
reset() {
|
|
@@ -945,23 +1015,23 @@ export default {
|
|
|
margin: 0 0 0 14px;
|
|
|
}
|
|
|
}
|
|
|
-.flextabtitle-box{
|
|
|
+.flextabtitle-box {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
}
|
|
|
-.flextab-item{
|
|
|
+.flextab-item {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
margin-left: 20px;
|
|
|
}
|
|
|
-.flextab-item>div {
|
|
|
+.flextab-item > div {
|
|
|
font-size: 15px;
|
|
|
margin-right: 15px;
|
|
|
}
|
|
|
-.flextab-item>div span.s-1{
|
|
|
+.flextab-item > div span.s-1 {
|
|
|
color: #185da6;
|
|
|
}
|
|
|
-.flextab-item>div span.s-2{
|
|
|
+.flextab-item > div span.s-2 {
|
|
|
font-weight: bold;
|
|
|
}
|
|
|
</style>
|