|
@@ -18,22 +18,33 @@
|
|
|
<template>
|
|
|
<!-- 病案首页 -->
|
|
|
<div class="first-content" v-if="item.name === 'first'">
|
|
|
- <div class="score-box score-box_bl" :class="{
|
|
|
- scoreLevel_1_1: scoreLevel_ylzc == '优',
|
|
|
- scoreLevel_2_2: scoreLevel_ylzc == '良',
|
|
|
- scoreLevel_3_3: scoreLevel_ylzc == '中',
|
|
|
- scoreLevel_4_4: scoreLevel_ylzc == '差',
|
|
|
- }">
|
|
|
+ <div
|
|
|
+ class="score-box score-box_bl"
|
|
|
+ :class="{
|
|
|
+ scoreLevel_1_1: scoreLevel_ylzc == '优',
|
|
|
+ scoreLevel_2_2: scoreLevel_ylzc == '良',
|
|
|
+ scoreLevel_3_3: scoreLevel_ylzc == '中',
|
|
|
+ scoreLevel_4_4: scoreLevel_ylzc == '差',
|
|
|
+ }"
|
|
|
+ >
|
|
|
<span>首页评分</span>
|
|
|
- <span class="score">{{ controls.score.score }}</span>
|
|
|
- <el-image v-if="scoreLevel_ylzc == '优'" class="level" style="width: 47px; height: 41px"
|
|
|
- :src="require('../../../../assets/images/you.png')" fit="contain"></el-image>
|
|
|
- <el-image v-if="scoreLevel_ylzc == '良'" class="level" style="width: 47px; height: 41px"
|
|
|
- :src="require('../../../../assets/images/liang.png')" fit="contain"></el-image>
|
|
|
- <el-image v-if="scoreLevel_ylzc == '中'" class="level" style="width: 47px; height: 41px"
|
|
|
- :src="require('../../../../assets/images/zhong.png')" fit="contain"></el-image>
|
|
|
- <el-image v-if="scoreLevel_ylzc == '差'" class="level" style="width: 47px; height: 41px"
|
|
|
- :src="require('../../../../assets/images/cha.png')" fit="contain"></el-image>
|
|
|
+ <span class="score">{{ resultsList.score.score }}</span>
|
|
|
+ <el-image v-if="scoreLevel_ylzc == '优'" class="level" style="width: 47px; height: 41px" :src="require('../../../../assets/images/you.png')" fit="contain"></el-image>
|
|
|
+ <el-image
|
|
|
+ v-if="scoreLevel_ylzc == '良'"
|
|
|
+ class="level"
|
|
|
+ style="width: 47px; height: 41px"
|
|
|
+ :src="require('../../../../assets/images/liang.png')"
|
|
|
+ fit="contain"
|
|
|
+ ></el-image>
|
|
|
+ <el-image
|
|
|
+ v-if="scoreLevel_ylzc == '中'"
|
|
|
+ class="level"
|
|
|
+ style="width: 47px; height: 41px"
|
|
|
+ :src="require('../../../../assets/images/zhong.png')"
|
|
|
+ fit="contain"
|
|
|
+ ></el-image>
|
|
|
+ <el-image v-if="scoreLevel_ylzc == '差'" class="level" style="width: 47px; height: 41px" :src="require('../../../../assets/images/cha.png')" fit="contain"></el-image>
|
|
|
</div>
|
|
|
<div class="legend-box">
|
|
|
<span class="qz">强制</span>
|
|
@@ -55,10 +66,8 @@
|
|
|
<span class="bold">字段:</span>
|
|
|
{{ items.error_name }}
|
|
|
</p>
|
|
|
- <el-image class="zsIcon" v-if="items.is_artificial == 1"
|
|
|
- :src="require('../../../../assets/images/zsicon.png')" fit="contain"></el-image>
|
|
|
- <el-image class="ysIcon" v-if="items.is_artificial == 0"
|
|
|
- :src="require('../../../../assets/images/ysicon.png')" fit="contain"></el-image>
|
|
|
+ <el-image class="zsIcon" v-if="items.is_artificial == 0" :src="require('../../../../assets/images/zsicon.png')" fit="contain"></el-image>
|
|
|
+ <el-image class="ysIcon" v-if="items.is_artificial == 1" :src="require('../../../../assets/images/ysicon.png')" fit="contain"></el-image>
|
|
|
</div>
|
|
|
<p>
|
|
|
<span class="bold">提示:</span>
|
|
@@ -67,12 +76,10 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="btn-content">
|
|
|
- <div v-if="items.type === 3" class="rebuttal" @click="fetchAppealInfo('appeal', items, 3, MEDRECID)">驳回
|
|
|
- </div>
|
|
|
+ <div v-if="items.type === 3" class="rebuttal" @click="fetchAppealInfo('appeal', items, 3, MEDRECID)">驳回</div>
|
|
|
<div class="btn-right">
|
|
|
<div v-if="items.type === 0" class="appeal" @click="openAppealDialog('reject', items, 2)">申诉</div>
|
|
|
- <div v-if="items.type === 0 || items.type === 3" @click="handleIgnore(items, MED_REC_ID, 3)"
|
|
|
- class="ignore">忽略</div>
|
|
|
+ <div v-if="items.type === 0 || items.type === 3" @click="handleIgnore(items, MED_REC_ID, 1, index)" class="ignore">忽略</div>
|
|
|
<div v-if="items.type === 2" class="appeal_in_progress">申诉中</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -81,22 +88,33 @@
|
|
|
</div>
|
|
|
<!-- 编码员 -->
|
|
|
<div class="first-content" v-if="item.name === 'third'">
|
|
|
- <div class="score-box score-box_bl" :class="{
|
|
|
- scoreLevel_1_1: scoreLevel_ylzc == '优',
|
|
|
- scoreLevel_2_2: scoreLevel_ylzc == '良',
|
|
|
- scoreLevel_3_3: scoreLevel_ylzc == '中',
|
|
|
- scoreLevel_4_4: scoreLevel_ylzc == '差',
|
|
|
- }">
|
|
|
+ <div
|
|
|
+ class="score-box score-box_bl"
|
|
|
+ :class="{
|
|
|
+ scoreLevel_1_1: scoreLevel_ylzc == '优',
|
|
|
+ scoreLevel_2_2: scoreLevel_ylzc == '良',
|
|
|
+ scoreLevel_3_3: scoreLevel_ylzc == '中',
|
|
|
+ scoreLevel_4_4: scoreLevel_ylzc == '差',
|
|
|
+ }"
|
|
|
+ >
|
|
|
<span>首页评分</span>
|
|
|
<span class="score">{{ controls.score.score }}</span>
|
|
|
- <el-image v-if="scoreLevel_ylzc == '优'" class="level" style="width: 47px; height: 41px"
|
|
|
- :src="require('../../../../assets/images/you.png')" fit="contain"></el-image>
|
|
|
- <el-image v-if="scoreLevel_ylzc == '良'" class="level" style="width: 47px; height: 41px"
|
|
|
- :src="require('../../../../assets/images/liang.png')" fit="contain"></el-image>
|
|
|
- <el-image v-if="scoreLevel_ylzc == '中'" class="level" style="width: 47px; height: 41px"
|
|
|
- :src="require('../../../../assets/images/zhong.png')" fit="contain"></el-image>
|
|
|
- <el-image v-if="scoreLevel_ylzc == '差'" class="level" style="width: 47px; height: 41px"
|
|
|
- :src="require('../../../../assets/images/cha.png')" fit="contain"></el-image>
|
|
|
+ <el-image v-if="scoreLevel_ylzc == '优'" class="level" style="width: 47px; height: 41px" :src="require('../../../../assets/images/you.png')" fit="contain"></el-image>
|
|
|
+ <el-image
|
|
|
+ v-if="scoreLevel_ylzc == '良'"
|
|
|
+ class="level"
|
|
|
+ style="width: 47px; height: 41px"
|
|
|
+ :src="require('../../../../assets/images/liang.png')"
|
|
|
+ fit="contain"
|
|
|
+ ></el-image>
|
|
|
+ <el-image
|
|
|
+ v-if="scoreLevel_ylzc == '中'"
|
|
|
+ class="level"
|
|
|
+ style="width: 47px; height: 41px"
|
|
|
+ :src="require('../../../../assets/images/zhong.png')"
|
|
|
+ fit="contain"
|
|
|
+ ></el-image>
|
|
|
+ <el-image v-if="scoreLevel_ylzc == '差'" class="level" style="width: 47px; height: 41px" :src="require('../../../../assets/images/cha.png')" fit="contain"></el-image>
|
|
|
</div>
|
|
|
<div class="legend-box">
|
|
|
<span class="qz">强制</span>
|
|
@@ -120,24 +138,20 @@
|
|
|
</p>
|
|
|
<!-- <el-image class="zsIcon" :src="require('../../../../assets/images/zsicon.png')"
|
|
|
fit="contain"></el-image> -->
|
|
|
- <el-image class="zsIcon" v-if="items.is_artificial == 1"
|
|
|
- :src="require('../../../../assets/images/zsicon.png')" fit="contain"></el-image>
|
|
|
- <el-image class="ysIcon" v-if="items.is_artificial == 0"
|
|
|
- :src="require('../../../../assets/images/ysicon.png')" fit="contain"></el-image>
|
|
|
+ <el-image class="zsIcon" v-if="items.is_artificial == 0" :src="require('../../../../assets/images/zsicon.png')" fit="contain"></el-image>
|
|
|
+ <el-image class="ysIcon" v-if="items.is_artificial == 1" :src="require('../../../../assets/images/ysicon.png')" fit="contain"></el-image>
|
|
|
</div>
|
|
|
<p>
|
|
|
<span class="bold">提示:</span>
|
|
|
- {{ items.desc }}
|
|
|
+ {{ items.basises }}
|
|
|
</p>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="btn-content">
|
|
|
- <div v-if="items.type === 3" class="rebuttal" @click="fetchAppealInfo('appeal', items, 3, MEDRECID)">驳回
|
|
|
- </div>
|
|
|
+ <div v-if="items.type === 3" class="rebuttal" @click="fetchAppealInfo('appeal', items, 3, MEDRECID)">驳回</div>
|
|
|
<div class="btn-right">
|
|
|
<div v-if="items.type === 0" class="appeal" @click="openAppealDialog('reject', items, 2)">申诉</div>
|
|
|
- <div v-if="items.type === 0 || items.type === 3" @click="handleIgnore(items, MED_REC_ID, 3)"
|
|
|
- class="ignore">忽略</div>
|
|
|
+ <div v-if="items.type === 0 || items.type === 3" @click="handleIgnore(items, MED_REC_ID, 3, index)" class="ignore">忽略</div>
|
|
|
<div v-if="items.type === 2" class="appeal_in_progress">申诉中</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -146,8 +160,7 @@
|
|
|
</div>
|
|
|
<!-- 住院病历 -->
|
|
|
<div class="second-content" v-if="item.name === 'second'">
|
|
|
- <div class="score-box"
|
|
|
- :class="scoreLevel == '甲' ? 'scoreLevel_1' : scoreLevel == '乙' ? 'scoreLevel_2' : scoreLevel == '丙' ? 'scoreLevel_3' : ''">
|
|
|
+ <div class="score-box" :class="scoreLevel == '甲' ? 'scoreLevel_1' : scoreLevel == '乙' ? 'scoreLevel_2' : scoreLevel == '丙' ? 'scoreLevel_3' : ''">
|
|
|
<span style="margin-top: -10px">
|
|
|
病案评分
|
|
|
<span class="score-f">{{ data.score }}</span>
|
|
@@ -165,32 +178,26 @@
|
|
|
<span class="bold">字段:</span>
|
|
|
{{ items.error_field }}
|
|
|
</p>
|
|
|
- <el-image class="zsIcon" v-if="items.is_artificial == 1"
|
|
|
- :src="require('../../../../assets/images/zsicon.png')" fit="contain"></el-image>
|
|
|
- <el-image class="ysIcon" v-if="items.is_artificial == 0"
|
|
|
- :src="require('../../../../assets/images/ysicon.png')" fit="contain"></el-image>
|
|
|
+ <el-image class="zsIcon" v-if="items.is_artificial == 0" :src="require('../../../../assets/images/zsicon.png')" fit="contain"></el-image>
|
|
|
+ <el-image class="ysIcon" v-if="items.is_artificial == 1" :src="require('../../../../assets/images/ysicon.png')" fit="contain"></el-image>
|
|
|
</div>
|
|
|
<p>
|
|
|
<span class="bold">提示:</span>
|
|
|
- {{ items.notice }}
|
|
|
+ {{ items.desc }}
|
|
|
</p>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="gist" @click="clickListItem(index)">
|
|
|
<div class="gist-zkyj">质控依据>></div>
|
|
|
</div>
|
|
|
- <div class="gist-center">
|
|
|
- {{ items.basis.length ? items.basis[0].desc : '' }}
|
|
|
+ <div class="gist-center" v-if="items.show">
|
|
|
+ {{ items.notice ? items.notice : '' }}
|
|
|
</div>
|
|
|
<div class="btn-content">
|
|
|
- <div v-if="items.appeal_type === 3" class="rebuttal"
|
|
|
- @click="fetchAppealInfo('appeal', items, 3, MEDRECID)">驳回
|
|
|
- </div>
|
|
|
+ <div v-if="items.appeal_type === 3" class="rebuttal" @click="fetchAppealInfo('appeal', items, 3, MEDRECID)">驳回</div>
|
|
|
<div class="btn-right">
|
|
|
- <div v-if="items.appeal_type === 0" class="appeal" @click="openAppealDialog('reject', items, 2)">申诉
|
|
|
- </div>
|
|
|
- <div v-if="items.appeal_type === 0 || items.appeal_type === 3"
|
|
|
- @click="handleIgnore(items, MED_REC_ID, 3)" class="ignore">忽略</div>
|
|
|
+ <div v-if="items.appeal_type === 0" class="appeal" @click="openAppealDialog('reject', items, 2)">申诉</div>
|
|
|
+ <div v-if="items.appeal_type === 0 || items.appeal_type === 3" @click="handleIgnore(items, MED_REC_ID, 2, index)" class="ignore">忽略</div>
|
|
|
<div v-if="items.appeal_type === 2" class="appeal_in_progress">申诉中</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -211,12 +218,10 @@
|
|
|
<div class="reason" style="margin-top: 20px">
|
|
|
<el-form :model="appealForm" :rules="appealRules" ref="appealFormRef" label-width="80px">
|
|
|
<el-form-item :label="formLabels.doctor" prop="doctor">
|
|
|
- <el-input v-model="appealForm.doctor" :placeholder="formPlaceholders.doctor"
|
|
|
- :disabled="dialogType === 'appeal'"></el-input>
|
|
|
+ <el-input v-model="appealForm.doctor" :placeholder="formPlaceholders.doctor" :disabled="dialogType === 'appeal'"></el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item :label="formLabels.reason" prop="reason">
|
|
|
- <el-input type="textarea" v-model="appealForm.reason" :placeholder="formPlaceholders.reason"
|
|
|
- :disabled="dialogType === 'appeal'" :rows="2"></el-input>
|
|
|
+ <el-input type="textarea" v-model="appealForm.reason" :placeholder="formPlaceholders.reason" :disabled="dialogType === 'appeal'" :rows="2"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
</div>
|
|
@@ -238,7 +243,7 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import { examineAppeal, getCaseQualityBazb, getNumberInfo,getAppealData } from '@/api/qc';
|
|
|
+import { examineAppeal, getCaseQualityBazb, getAppealData, getNumberInfo } from '@/api/qc';
|
|
|
export default {
|
|
|
props: {
|
|
|
caseShow: {
|
|
@@ -285,7 +290,8 @@ export default {
|
|
|
{
|
|
|
label: '编码员',
|
|
|
name: 'third',
|
|
|
- hasMessage: false,
|
|
|
+ hasMessage: true,
|
|
|
+ medical: '',
|
|
|
},
|
|
|
],
|
|
|
dialogVisible: false,
|
|
@@ -309,13 +315,13 @@ export default {
|
|
|
},
|
|
|
localCaseShow: this.caseShow,
|
|
|
data: {
|
|
|
- score: 95, // 示例数据
|
|
|
+ score: 100, // 示例数据
|
|
|
data: [], // 示例数据
|
|
|
},
|
|
|
tableData: [], // 初始化 tableData
|
|
|
resultsData: [],
|
|
|
value1: null, // 初始化 value1
|
|
|
- is_show: true,
|
|
|
+ is_show: false,
|
|
|
appeal_document: '',
|
|
|
appeal_docter: '',
|
|
|
controls: {
|
|
@@ -340,8 +346,6 @@ export default {
|
|
|
second: false,
|
|
|
third: false,
|
|
|
},
|
|
|
- medical: null,
|
|
|
- errorV2: null,
|
|
|
buttonText: '提交',
|
|
|
zd_field_name: '',
|
|
|
ts_desc: '',
|
|
@@ -403,22 +407,24 @@ export default {
|
|
|
console.log('MED_REC_ID 已更新:', newVal);
|
|
|
this.qualityBazb(newVal);
|
|
|
this.getData(newVal);
|
|
|
+ this.getMessageNum(newVal);
|
|
|
}
|
|
|
},
|
|
|
},
|
|
|
created() {
|
|
|
- getNumberInfo().then(res => {
|
|
|
- this.medical = res.data.medicalRecord;
|
|
|
- this.errorV2 = res.data.errorV2;
|
|
|
- this.tabList[0].medical = this.medical;
|
|
|
- this.tabList[1].medical = this.errorV2;
|
|
|
- });
|
|
|
},
|
|
|
mounted() {
|
|
|
this.getTableData();
|
|
|
this.controlData.ZYH = this.$route.query.ZYH;
|
|
|
},
|
|
|
methods: {
|
|
|
+ getMessageNum(newVal){
|
|
|
+ getNumberInfo({ZYH: newVal}).then(res => {
|
|
|
+ this.tabList[0].medical = res.data.errorV2;
|
|
|
+ this.tabList[1].medical = res.data.medicalRecord;
|
|
|
+ this.tabList[2].medical = res.data.homeQuality;
|
|
|
+ });
|
|
|
+ },
|
|
|
hasMessage(tabName) {
|
|
|
return this.messageStatus[tabName];
|
|
|
},
|
|
@@ -568,7 +574,12 @@ export default {
|
|
|
openAppealDialog(type, items, index) {
|
|
|
console.log(items, index, 'items');
|
|
|
this.zd_field_name = items.error_name || items.field_name || items.error_field;
|
|
|
- this.ts_desc = items.notice || items.error_name || items.desc;
|
|
|
+ if (items.cate === 3) {
|
|
|
+ this.ts_desc = items.basises;
|
|
|
+ } else {
|
|
|
+ this.ts_desc = items.desc;
|
|
|
+ }
|
|
|
+
|
|
|
this.cate_type = items.cate;
|
|
|
this.dialogType = type;
|
|
|
this.currentId = items.error_rule || items.rule_id;
|
|
@@ -597,7 +608,11 @@ export default {
|
|
|
},
|
|
|
async fetchAppealInfo(type, items, index, MEDRECID) {
|
|
|
this.zd_field_name = items.error_name || items.field_name || items.error_field;
|
|
|
- this.ts_desc = items.notice || items.error_name || items.desc;
|
|
|
+ if (items.cate === 3) {
|
|
|
+ this.ts_desc = items.basises;
|
|
|
+ } else {
|
|
|
+ this.ts_desc = items.desc;
|
|
|
+ }
|
|
|
this.savedItems = items;
|
|
|
this.savedIndex = index;
|
|
|
this.dialogType = type;
|
|
@@ -660,34 +675,36 @@ export default {
|
|
|
this.openAppealDialog('reject', this.savedItems, this.savedIndex);
|
|
|
}
|
|
|
},
|
|
|
- handleIgnore(items, MEDRECID) {
|
|
|
+ handleIgnore(items, MEDRECID, type, index) {
|
|
|
const pramse = {
|
|
|
id: items.error_rule || items.rule_id,
|
|
|
- type: items.appeal_type || items.type,
|
|
|
- cate: items.cate,
|
|
|
+ type: type,
|
|
|
+ cate: 1,
|
|
|
ZYH: MEDRECID,
|
|
|
};
|
|
|
|
|
|
examineAppeal(pramse).then(res => {
|
|
|
- this.qualityBazb(MEDRECID);
|
|
|
console.log(res, 'examineAppeal for ignore');
|
|
|
this.$message({
|
|
|
message: '忽略成功',
|
|
|
type: 'success',
|
|
|
});
|
|
|
});
|
|
|
+
|
|
|
+ if (type == 1) {
|
|
|
+ this.resultsList.list.splice(index, 1);
|
|
|
+ } else if (type == 2) {
|
|
|
+ this.medicalRecord.splice(index, 1);
|
|
|
+ } else if (type == 3) {
|
|
|
+ this.controls.list.splice(index, 1);
|
|
|
+ }
|
|
|
},
|
|
|
clickListItem(idx) {
|
|
|
- console.log(idx, '0000');
|
|
|
-
|
|
|
- let tableData = this.tableData;
|
|
|
+ let tableData = this.medicalRecord;
|
|
|
tableData[idx].show = !tableData[idx].show;
|
|
|
- this.is_show = false;
|
|
|
this.$nextTick(() => {
|
|
|
- this.tableData = tableData;
|
|
|
- this.is_show = true;
|
|
|
+ this.medicalRecord = tableData;
|
|
|
});
|
|
|
- console.log(tableData);
|
|
|
},
|
|
|
qualityBazb(newVal) {
|
|
|
const params = {
|
|
@@ -695,6 +712,10 @@ export default {
|
|
|
};
|
|
|
getCaseQualityBazb(params).then(res => {
|
|
|
if (res && res.data) {
|
|
|
+ this.data.score = res.data.score;
|
|
|
+ for(let i=0; i<res.data.data.length; i++) {
|
|
|
+ res.data.data[i].show = false;
|
|
|
+ }
|
|
|
this.$nextTick(() => {
|
|
|
this.medicalRecord = res.data.data;
|
|
|
});
|
|
@@ -1272,7 +1293,7 @@ export default {
|
|
|
border-right: 3px solid rgb(52, 140, 235);
|
|
|
}
|
|
|
|
|
|
- &>div {
|
|
|
+ & > div {
|
|
|
font-size: 14px;
|
|
|
}
|
|
|
}
|