|
@@ -2,17 +2,8 @@
|
|
|
<div>
|
|
|
<crumbs title="知识图谱规则测试" class="topBack">
|
|
|
<el-form :inline="true" class="demo-form-inline">
|
|
|
- <el-form-item
|
|
|
- label=""
|
|
|
- class="selectMedicine"
|
|
|
- style="marginbottom: -1px"
|
|
|
- >
|
|
|
- <el-select
|
|
|
- size="mini"
|
|
|
- v-model="hospitalId"
|
|
|
- placeholder="选择医院"
|
|
|
- @change="handleChange"
|
|
|
- >
|
|
|
+ <el-form-item label class="selectMedicine" style="marginbottom: -1px">
|
|
|
+ <el-select size="mini" v-model="hospitalId" placeholder="选择医院" @change="handleChange">
|
|
|
<el-option
|
|
|
v-for="item in hospitalData"
|
|
|
:label="item.name"
|
|
@@ -22,9 +13,7 @@
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item style="marginbottom: 0px">
|
|
|
- <el-button size="mini" @click="exportData"
|
|
|
- >导出图谱中规则未涉及到的医院术语</el-button
|
|
|
- >
|
|
|
+ <el-button size="mini" @click="exportData">导出图谱中规则未涉及到的医院术语</el-button>
|
|
|
</el-form-item>
|
|
|
<el-form-item style="marginbottom: 0px">
|
|
|
<el-button size="mini" @click="handleAllTest">所有规则测试</el-button>
|
|
@@ -33,39 +22,18 @@
|
|
|
</crumbs>
|
|
|
<div style="margin: 60px 20px 0">
|
|
|
<el-table :data="list" border>
|
|
|
- <el-table-column
|
|
|
- :resizable="false"
|
|
|
- type="index"
|
|
|
- :index="indexMethod"
|
|
|
- label="编号"
|
|
|
- width="80"
|
|
|
- ></el-table-column>
|
|
|
- <el-table-column
|
|
|
- :resizable="false"
|
|
|
- prop="caseName"
|
|
|
- label="规则类型"
|
|
|
- show-overflow-tooltip
|
|
|
- ></el-table-column>
|
|
|
- <el-table-column
|
|
|
- :resizable="false"
|
|
|
- prop="gmtModified"
|
|
|
- label="测试时间"
|
|
|
- ></el-table-column>
|
|
|
+ <el-table-column :resizable="false" type="index" :index="indexMethod" label="编号" width="80"></el-table-column>
|
|
|
+ <el-table-column :resizable="false" prop="caseName" label="规则类型" show-overflow-tooltip></el-table-column>
|
|
|
+ <el-table-column :resizable="false" prop="gmtModified" label="测试时间"></el-table-column>
|
|
|
|
|
|
- <el-table-column
|
|
|
- :resizable="false"
|
|
|
- prop="ruleNum"
|
|
|
- label="总条数"
|
|
|
- show-overflow-tooltip
|
|
|
- ></el-table-column>
|
|
|
+ <el-table-column :resizable="false" prop="ruleNum" label="总条数" show-overflow-tooltip></el-table-column>
|
|
|
<el-table-column label="成功条数">
|
|
|
<template slot-scope="scope">
|
|
|
<el-button
|
|
|
type="text"
|
|
|
size="small"
|
|
|
@click="goToFailedOrSuccessPage(scope.row, 'success')"
|
|
|
- >{{ scope.row.ruleSuccessNum }}</el-button
|
|
|
- >
|
|
|
+ >{{ scope.row.ruleSuccessNum }}</el-button>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="失败条数">
|
|
@@ -74,15 +42,12 @@
|
|
|
type="text"
|
|
|
size="small"
|
|
|
@click="goToFailedOrSuccessPage(scope.row, 'failed')"
|
|
|
- >{{ scope.row.ruleFailedNum }}</el-button
|
|
|
- >
|
|
|
+ >{{ scope.row.ruleFailedNum }}</el-button>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="操作">
|
|
|
<template slot-scope="scope">
|
|
|
- <el-button type="text" size="small" @click="handleTest(scope.row)"
|
|
|
- >执行测试</el-button
|
|
|
- >
|
|
|
+ <el-button type="text" size="small" @click="handleTest(scope.row)">执行测试</el-button>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
@@ -100,12 +65,19 @@ export default {
|
|
|
return {
|
|
|
list: [],
|
|
|
hospitalData: [],
|
|
|
- hospitalId: '', //选中医院
|
|
|
+ hospitalId: '' //选中医院
|
|
|
};
|
|
|
},
|
|
|
created() {
|
|
|
this._getHospitalInfoCDSS();
|
|
|
// this.getDataList();
|
|
|
+ },
|
|
|
+ beforeRouteEnter(to, from, next) {
|
|
|
+ next(vm => {
|
|
|
+ Object.assign(vm, to.params);
|
|
|
+ vm.getDataList(to.params.hospitalId)
|
|
|
+ // vm.hospitalId = to.params.hospitalId;
|
|
|
+ });
|
|
|
},
|
|
|
methods: {
|
|
|
indexMethod(index) {
|
|
@@ -114,19 +86,52 @@ export default {
|
|
|
// 执行测试
|
|
|
handleTest(row) {
|
|
|
const { caseName, caseId } = row;
|
|
|
+ let params = {
|
|
|
+ caseId,
|
|
|
+ hospitalId: this.hospitalId
|
|
|
+ };
|
|
|
+ let requestAjax;
|
|
|
let billType; // 开单合理性规则类型 1 通用 2 输血
|
|
|
+ let criticalType; //危急值测试规则类型(1:检验,2:检查)
|
|
|
+ let highriskType; //高危测试规则类型(1:药品,2:手术)
|
|
|
if (caseName === '开单合理性提醒_通用规则') {
|
|
|
billType = 1;
|
|
|
+ params = { ...params, billType };
|
|
|
+ requestAjax = 'billRuleTest';
|
|
|
} else if (caseName === '开单类型提醒_输血规则') {
|
|
|
billType = 2;
|
|
|
+ params = { ...params, billType };
|
|
|
+ requestAjax = 'billRuleTest';
|
|
|
+ } else if (caseName === '危机值提醒_实验室检查规则') {
|
|
|
+ criticalType = 1;
|
|
|
+ params = { ...params, criticalType };
|
|
|
+ requestAjax = 'criticalRuleTest';
|
|
|
+ } else if (caseName === '危机值提醒_辅助检查规则') {
|
|
|
+ criticalType = 2;
|
|
|
+ params = { ...params, criticalType };
|
|
|
+ requestAjax = 'criticalRuleTest';
|
|
|
+ } else if (caseName === '高风险提醒_高危药品规则') {
|
|
|
+ highriskType = 1;
|
|
|
+ params = { ...params, highriskType };
|
|
|
+ requestAjax = 'highRiskRuleTest';
|
|
|
+ } else if (caseName === '高风险提醒_高危手术规则') {
|
|
|
+ highriskType = 2;
|
|
|
+ params = { ...params, highriskType };
|
|
|
+ requestAjax = 'highRiskRuleTest';
|
|
|
}
|
|
|
- let params = {
|
|
|
- caseId,
|
|
|
- billType,
|
|
|
- hospitalId: this.hospitalId,
|
|
|
- };
|
|
|
- api.billRuleTest(params).then((res) => {
|
|
|
- console.log(res, '测试结果');
|
|
|
+
|
|
|
+ api[requestAjax](params).then(res => {
|
|
|
+ // console.log(res, '测试结果');
|
|
|
+ if (res.data.code === '0' && res.data.data) {
|
|
|
+ this.getDataList(this.hospitalId);
|
|
|
+ this.$message({
|
|
|
+ message: '测试成功',
|
|
|
+ type: 'success'
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ this.$message.error('测试失败');
|
|
|
+ this.getDataList(this.hospitalId);
|
|
|
+ }
|
|
|
});
|
|
|
},
|
|
|
// 所有规则测试
|
|
@@ -134,38 +139,55 @@ export default {
|
|
|
if (this.hospitalId === '') {
|
|
|
this.$message({
|
|
|
message: '请先选择医院',
|
|
|
- type: 'warning',
|
|
|
+ type: 'warning'
|
|
|
});
|
|
|
return;
|
|
|
}
|
|
|
- api.ruleAllTest({ hospitalId: this.hospitalId }).then((res) => {
|
|
|
- console.log(res, '所有规则测试测试结果');
|
|
|
+ api.ruleAllTest({ hospitalId: this.hospitalId }).then(res => {
|
|
|
+ if (res.data.code === '0' && res.data.data) {
|
|
|
+ this.getDataList(this.hospitalId);
|
|
|
+ this.$message({
|
|
|
+ message: '所有规则测试成功',
|
|
|
+ type: 'success'
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ this.$message.error('所有规则测试失败');
|
|
|
+ this.getDataList(this.hospitalId);
|
|
|
+ }
|
|
|
});
|
|
|
},
|
|
|
|
|
|
// 跳转至失败/成功条数页面
|
|
|
goToFailedOrSuccessPage(row, type) {
|
|
|
- const page = this.handleGoPage(row.caseName)
|
|
|
+ const page = this.handleGoPage(row.caseName);
|
|
|
this.$router.push({
|
|
|
name: page,
|
|
|
- params: { data: { ...row }, type },
|
|
|
+ params: { data: { ...row }, type, hospitalId: this.hospitalId }
|
|
|
});
|
|
|
},
|
|
|
// 处理跳转到的页面
|
|
|
- handleGoPage(caseName){
|
|
|
- switch(caseName){
|
|
|
+ handleGoPage(caseName) {
|
|
|
+ switch (caseName) {
|
|
|
case '开单合理性提醒_通用规则':
|
|
|
- return 'BillCommonTest'
|
|
|
+ return 'BillCommonTest';
|
|
|
case '开单类型提醒_输血规则':
|
|
|
- return 'BillFusionTest'
|
|
|
+ return 'BillFusionTest';
|
|
|
+ case '危机值提醒_实验室检查规则':
|
|
|
+ return 'CriticalLabTest';
|
|
|
+ case '危机值提醒_辅助检查规则':
|
|
|
+ return 'CriticalAuxTest';
|
|
|
+ case '高风险提醒_高危药品规则':
|
|
|
+ return 'HighRiskDrugTest';
|
|
|
+ case '高风险提醒_高危手术规则':
|
|
|
+ return 'HighRiskOperationTest';
|
|
|
default:
|
|
|
- return null
|
|
|
+ return null;
|
|
|
}
|
|
|
},
|
|
|
|
|
|
// 获取医院信息
|
|
|
_getHospitalInfoCDSS() {
|
|
|
- api.getHospitalInfo().then((res) => {
|
|
|
+ api.getHospitalInfo().then(res => {
|
|
|
if (res.data.code === '0') {
|
|
|
this.hospitalData = res.data && res.data.data;
|
|
|
}
|
|
@@ -181,16 +203,16 @@ export default {
|
|
|
// 获取列表数据
|
|
|
getDataList(id) {
|
|
|
const params = {
|
|
|
- hospitalId: id,
|
|
|
+ hospitalId: id
|
|
|
};
|
|
|
this.searched = true;
|
|
|
const loading = this.$loading({
|
|
|
lock: true,
|
|
|
text: 'Loading',
|
|
|
spinner: 'el-icon-loading',
|
|
|
- background: 'rgba(0, 0, 0, 0.7)',
|
|
|
+ background: 'rgba(0, 0, 0, 0.7)'
|
|
|
});
|
|
|
- api.getCaseResultList(params).then((res) => {
|
|
|
+ api.getCaseResultList(params).then(res => {
|
|
|
loading.close();
|
|
|
if (res.data.code === '0') {
|
|
|
this.list = res.data && res.data.data;
|
|
@@ -202,17 +224,17 @@ export default {
|
|
|
if (this.hospitalId === '') {
|
|
|
this.$message({
|
|
|
message: '请先选择医院',
|
|
|
- type: 'warning',
|
|
|
+ type: 'warning'
|
|
|
});
|
|
|
return;
|
|
|
}
|
|
|
this.$alert('确定要导出规则未使用映射关系吗?', '', {
|
|
|
confirmButtonText: '确定',
|
|
|
title: '提示',
|
|
|
- type: 'warning',
|
|
|
+ type: 'warning'
|
|
|
})
|
|
|
.then(() => {
|
|
|
- api.exportRuleExcel({ hospitalId: this.hospitalId }).then((res) => {
|
|
|
+ api.exportRuleExcel({ hospitalId: this.hospitalId }).then(res => {
|
|
|
if (res.status === 200) {
|
|
|
this.$message({ message: '导出成功', type: 'success' });
|
|
|
utils.downloadExportedData(res.data, '规则未使用映射关系.xls');
|
|
@@ -220,8 +242,8 @@ export default {
|
|
|
});
|
|
|
})
|
|
|
.catch(() => {});
|
|
|
- },
|
|
|
- },
|
|
|
+ }
|
|
|
+ }
|
|
|
};
|
|
|
</script>
|
|
|
|