|
@@ -1,9 +1,9 @@
|
|
<template>
|
|
<template>
|
|
<div class="control-box">
|
|
<div class="control-box">
|
|
- <div style="text-align: right; margin-bottom: 10px;">
|
|
|
|
- <i class="el-icon-close" style="font-size: 16px;" @click="onClose"></i>
|
|
|
|
|
|
+ <div style="text-align: right; margin-bottom: 10px">
|
|
|
|
+ <i class="el-icon-close" style="font-size: 16px" @click="onClose"></i>
|
|
</div>
|
|
</div>
|
|
- <div class="score-box" :class="{scoreLevel_1: scoreLevel == '优', scoreLevel_2: scoreLevel == '良', scoreLevel_3: scoreLevel == '中', scoreLevel_4: scoreLevel == '差'}">
|
|
|
|
|
|
+ <div class="score-box" :class="{ scoreLevel_1: scoreLevel == '优', scoreLevel_2: scoreLevel == '良', scoreLevel_3: scoreLevel == '中', scoreLevel_4: scoreLevel == '差' }">
|
|
<span>病案评分</span>
|
|
<span>病案评分</span>
|
|
<span class="score">{{ controls.score.score }}</span>
|
|
<span class="score">{{ controls.score.score }}</span>
|
|
<el-image v-if="scoreLevel == '优'" class="level" style="width: 47px; height: 41px" :src="require('../../../../assets/images/you.png')" fit="contain"></el-image>
|
|
<el-image v-if="scoreLevel == '优'" class="level" style="width: 47px; height: 41px" :src="require('../../../../assets/images/you.png')" fit="contain"></el-image>
|
|
@@ -16,18 +16,24 @@
|
|
<span class="jy">建议</span>
|
|
<span class="jy">建议</span>
|
|
</div>
|
|
</div>
|
|
<el-scrollbar style="height: calc(100vh - 320px)">
|
|
<el-scrollbar style="height: calc(100vh - 320px)">
|
|
- <div class="cont-reight-bottom" v-for="(item, index) in controls.list" :key="index">
|
|
|
|
- <div :class="item.level == 1 ? 'cont-reight-bottom-title-null' : 'cont-reight-bottom-title'">
|
|
|
|
- <span v-if="item.category == 0">A类</span>
|
|
|
|
- <span v-if="item.category == 1">B类</span>
|
|
|
|
- <span v-if="item.category == 2">C类</span>
|
|
|
|
- <span v-if="item.category == 3">D类</span>
|
|
|
|
- <span v-if="item.category == 4">其他</span>
|
|
|
|
- -{{ item.down }}
|
|
|
|
|
|
+ <div v-for="(item, index) in controls.list" :key="index">
|
|
|
|
+ <div class="cont-reight-bottom">
|
|
|
|
+ <div :class="item.level == 1 ? 'cont-reight-bottom-title-null' : 'cont-reight-bottom-title'">
|
|
|
|
+ <span v-if="item.category == 0">A类</span>
|
|
|
|
+ <span v-if="item.category == 1">B类</span>
|
|
|
|
+ <span v-if="item.category == 2">C类</span>
|
|
|
|
+ <span v-if="item.category == 3">D类</span>
|
|
|
|
+ <span v-if="item.category == 4">其他</span>
|
|
|
|
+ -{{ item.down }}
|
|
|
|
+ </div>
|
|
|
|
+ <div class="cont-reight-bottom-conter">
|
|
|
|
+ <p>{{ item.field_name }}</p>
|
|
|
|
+ <p>{{ item.desc }}</p>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
- <div class="cont-reight-bottom-conter">
|
|
|
|
- <p>{{ item.field_name }}</p>
|
|
|
|
- <p>{{ item.desc }}</p>
|
|
|
|
|
|
+ <!-- 质控依据 -->
|
|
|
|
+ <div v-for="(yjItem, yjIndex) of item.basis" :key="'yj'+yjIndex">
|
|
|
|
+ <div class="zkyj" @click="toJump(yjItem)">{{ yjItem.desc }}</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</el-scrollbar>
|
|
</el-scrollbar>
|
|
@@ -35,188 +41,168 @@
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script>
|
|
<script>
|
|
- export default {
|
|
|
|
- props: {
|
|
|
|
- data: {
|
|
|
|
- type: Object,
|
|
|
|
- default: {
|
|
|
|
- bSwitch: false,
|
|
|
|
- zyh: '',
|
|
|
|
- },
|
|
|
|
|
|
+export default {
|
|
|
|
+ props: {
|
|
|
|
+ data: {
|
|
|
|
+ type: Object,
|
|
|
|
+ default: {
|
|
|
|
+ bSwitch: false,
|
|
|
|
+ zyh: '',
|
|
},
|
|
},
|
|
},
|
|
},
|
|
- data() {
|
|
|
|
- return {
|
|
|
|
- controls: {
|
|
|
|
- ZYH: '',
|
|
|
|
- score: {
|
|
|
|
- score: 100
|
|
|
|
- },
|
|
|
|
- list: []
|
|
|
|
|
|
+ },
|
|
|
|
+ data() {
|
|
|
|
+ return {
|
|
|
|
+ // controls: {
|
|
|
|
+ // ZYH: '',
|
|
|
|
+ // score: {
|
|
|
|
+ // score: 100
|
|
|
|
+ // },
|
|
|
|
+ // list: []
|
|
|
|
+ // },
|
|
|
|
+ controls: {
|
|
|
|
+ ZYH: '809257',
|
|
|
|
+ score: {
|
|
|
|
+ score: 99,
|
|
|
|
+ level: 0,
|
|
},
|
|
},
|
|
- // controls: {
|
|
|
|
- // ZYH: '809257',
|
|
|
|
- // score: {
|
|
|
|
- // score: 69,
|
|
|
|
- // level: 0,
|
|
|
|
- // },
|
|
|
|
- // list: [
|
|
|
|
- // {
|
|
|
|
- // error_rule: 21,
|
|
|
|
- // level: 0,
|
|
|
|
- // field_name: '单位邮编',
|
|
|
|
- // category: 3,
|
|
|
|
- // down: 0.5,
|
|
|
|
- // desc: '单位邮编填写不规范',
|
|
|
|
- // },
|
|
|
|
- // {
|
|
|
|
- // error_rule: 6,
|
|
|
|
- // level: 0,
|
|
|
|
- // field_name: '健康卡号',
|
|
|
|
- // category: 3,
|
|
|
|
- // down: 0.5,
|
|
|
|
- // desc: '健康卡号填写不规范',
|
|
|
|
- // },
|
|
|
|
- // {
|
|
|
|
- // error_rule: 1441,
|
|
|
|
- // level: 1,
|
|
|
|
- // field_name: '有创呼吸机使用时间',
|
|
|
|
- // category: 0,
|
|
|
|
- // down: 0,
|
|
|
|
- // desc: '收费明细含【呼吸机辅助呼吸】,有创呼吸机使用时间【不能为0,不能为空】',
|
|
|
|
- // },
|
|
|
|
- // {
|
|
|
|
- // error_rule: 1457,
|
|
|
|
- // level: 1,
|
|
|
|
- // field_name: '主要诊断编码',
|
|
|
|
- // category: 0,
|
|
|
|
- // down: 0,
|
|
|
|
- // desc: '诊断编码出现S00-S09,颅内损伤昏迷时间6个空必填一个数字',
|
|
|
|
- // },
|
|
|
|
- // {
|
|
|
|
- // error_rule: 1441,
|
|
|
|
- // level: 1,
|
|
|
|
- // field_name: '有创呼吸机使用时间',
|
|
|
|
- // category: 0,
|
|
|
|
- // down: 0,
|
|
|
|
- // desc: '收费明细含【呼吸机辅助呼吸】,有创呼吸机使用时间【不能为0,不能为空】',
|
|
|
|
- // },
|
|
|
|
- // {
|
|
|
|
- // error_rule: 1457,
|
|
|
|
- // level: 1,
|
|
|
|
- // field_name: '主要诊断编码',
|
|
|
|
- // category: 0,
|
|
|
|
- // down: 0,
|
|
|
|
- // desc: '诊断编码出现S00-S09,颅内损伤昏迷时间6个空必填一个数字',
|
|
|
|
- // },
|
|
|
|
- // {
|
|
|
|
- // error_rule: 1441,
|
|
|
|
- // level: 1,
|
|
|
|
- // field_name: '有创呼吸机使用时间',
|
|
|
|
- // category: 0,
|
|
|
|
- // down: 0,
|
|
|
|
- // desc: '收费明细含【呼吸机辅助呼吸】,有创呼吸机使用时间【不能为0,不能为空】',
|
|
|
|
- // },
|
|
|
|
- // {
|
|
|
|
- // error_rule: 1457,
|
|
|
|
- // level: 1,
|
|
|
|
- // field_name: '主要诊断编码',
|
|
|
|
- // category: 0,
|
|
|
|
- // down: 0,
|
|
|
|
- // desc: '诊断编码出现S00-S09,颅内损伤昏迷时间6个空必填一个数字',
|
|
|
|
- // },
|
|
|
|
- // {
|
|
|
|
- // error_rule: 1441,
|
|
|
|
- // level: 1,
|
|
|
|
- // field_name: '有创呼吸机使用时间',
|
|
|
|
- // category: 0,
|
|
|
|
- // down: 0,
|
|
|
|
- // desc: '收费明细含【呼吸机辅助呼吸】,有创呼吸机使用时间【不能为0,不能为空】',
|
|
|
|
- // },
|
|
|
|
- // {
|
|
|
|
- // error_rule: 1457,
|
|
|
|
- // level: 1,
|
|
|
|
- // field_name: '主要诊断编码',
|
|
|
|
- // category: 0,
|
|
|
|
- // down: 0,
|
|
|
|
- // desc: '诊断编码出现S00-S09,颅内损伤昏迷时间6个空必填一个数字',
|
|
|
|
- // },
|
|
|
|
- // {
|
|
|
|
- // error_rule: 1441,
|
|
|
|
- // level: 1,
|
|
|
|
- // field_name: '有创呼吸机使用时间',
|
|
|
|
- // category: 0,
|
|
|
|
- // down: 0,
|
|
|
|
- // desc: '收费明细含【呼吸机辅助呼吸】,有创呼吸机使用时间【不能为0,不能为空】',
|
|
|
|
- // },
|
|
|
|
- // {
|
|
|
|
- // error_rule: 1457,
|
|
|
|
- // level: 1,
|
|
|
|
- // field_name: '主要诊断编码',
|
|
|
|
- // category: 0,
|
|
|
|
- // down: 0,
|
|
|
|
- // desc: '诊断编码出现S00-S09,颅内损伤昏迷时间6个空必填一个数字',
|
|
|
|
- // },
|
|
|
|
- // {
|
|
|
|
- // error_rule: 1441,
|
|
|
|
- // level: 1,
|
|
|
|
- // field_name: '有创呼吸机使用时间',
|
|
|
|
- // category: 0,
|
|
|
|
- // down: 0,
|
|
|
|
- // desc: '收费明细含【呼吸机辅助呼吸】,有创呼吸机使用时间【不能为0,不能为空】',
|
|
|
|
- // },
|
|
|
|
- // {
|
|
|
|
- // error_rule: 1457,
|
|
|
|
- // level: 1,
|
|
|
|
- // field_name: '主要诊断编码',
|
|
|
|
- // category: 0,
|
|
|
|
- // down: 0,
|
|
|
|
- // desc: '诊断编码出现S00-S09,颅内损伤昏迷时间6个空必填一个数字',
|
|
|
|
- // },
|
|
|
|
- // ],
|
|
|
|
- // },
|
|
|
|
- };
|
|
|
|
|
|
+ list: [
|
|
|
|
+ {
|
|
|
|
+ error_rule: 1457,
|
|
|
|
+ level: 1,
|
|
|
|
+ field_name: '主要诊断编码',
|
|
|
|
+ category: 0,
|
|
|
|
+ down: 0,
|
|
|
|
+ desc: '诊断编码出现S00-S09,颅内损伤昏迷时间6个空必填一个数字',
|
|
|
|
+ basis: [
|
|
|
|
+ {
|
|
|
|
+ desc: '诊断编码出现【S00-S09】颅内损伤昏迷时间不能全部为空',
|
|
|
|
+ location: {
|
|
|
|
+ user: ['AEJ01', 'AEJ02', 'AEJ03', 'AEJ04', 'AEJ05', 'AEJ06'],
|
|
|
|
+ zd: [
|
|
|
|
+ {
|
|
|
|
+ ZZPB: 1,
|
|
|
|
+ DIA_ORDER: 1,
|
|
|
|
+ field: 'ICD10_ID1',
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ ZZPB: 0,
|
|
|
|
+ DIA_ORDER: 1,
|
|
|
|
+ field: 'ICD10_ID1',
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ ZZPB: 0,
|
|
|
|
+ DIA_ORDER: 2,
|
|
|
|
+ field: 'ICD10_ID1',
|
|
|
|
+ },
|
|
|
|
+ ],
|
|
|
|
+ ss: [
|
|
|
|
+ {
|
|
|
|
+ OPE_ORDER: 1,
|
|
|
|
+ field: 'ICD9_ID1',
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ ZZPB: 2,
|
|
|
|
+ field: 'ICD9_ID1',
|
|
|
|
+ },
|
|
|
|
+ ],
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ ],
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ error_rule: 6,
|
|
|
|
+ level: 0,
|
|
|
|
+ field_name: '健康卡号',
|
|
|
|
+ category: 3,
|
|
|
|
+ down: 0.5,
|
|
|
|
+ desc: '健康卡号未填写',
|
|
|
|
+ basis: [
|
|
|
|
+ {
|
|
|
|
+ desc: '尚未发送“健康卡”的地区填写“-”',
|
|
|
|
+ location: {
|
|
|
|
+ user: ['JKKH'],
|
|
|
|
+ zd: [],
|
|
|
|
+ ss: []
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ ],
|
|
|
|
+ },
|
|
|
|
+ ],
|
|
|
|
+ },
|
|
|
|
+ zkcodeIndex: 0
|
|
|
|
+ };
|
|
|
|
+ },
|
|
|
|
+ computed: {
|
|
|
|
+ scoreLevel() {
|
|
|
|
+ /**
|
|
|
|
+ * 优>=97分
|
|
|
|
+ * 良90-96分
|
|
|
|
+ * 中75~89分
|
|
|
|
+ * 差<75分
|
|
|
|
+ * */
|
|
|
|
+ let str;
|
|
|
|
+ const { score } = this.controls.score;
|
|
|
|
+ if (score >= 97) {
|
|
|
|
+ str = '优';
|
|
|
|
+ } else if (score < 97 && score >= 90) {
|
|
|
|
+ str = '良';
|
|
|
|
+ } else if (score < 90 && score >= 75) {
|
|
|
|
+ str = '中';
|
|
|
|
+ } else {
|
|
|
|
+ str = '差';
|
|
|
|
+ }
|
|
|
|
+ return str;
|
|
},
|
|
},
|
|
- computed: {
|
|
|
|
- scoreLevel() {
|
|
|
|
- /**
|
|
|
|
- * 优>=97分
|
|
|
|
- * 良90-96分
|
|
|
|
- * 中75~89分
|
|
|
|
- * 差<75分
|
|
|
|
- * */
|
|
|
|
- let str
|
|
|
|
- const { score } = this.controls.score
|
|
|
|
- if (score >= 97) {
|
|
|
|
- str = '优'
|
|
|
|
- } else if (score < 97 && score >=90) {
|
|
|
|
- str = '良'
|
|
|
|
- } else if (score < 90 && score >=75) {
|
|
|
|
- str = '中'
|
|
|
|
- } else {
|
|
|
|
- str = '差'
|
|
|
|
|
|
+ },
|
|
|
|
+ created() {
|
|
|
|
+ // this.getData();
|
|
|
|
+ },
|
|
|
|
+ methods: {
|
|
|
|
+ // 跳转锚点及高亮
|
|
|
|
+ toJump(item) {
|
|
|
|
+ const { user, zd, ss } = item.location
|
|
|
|
+ const arr = []
|
|
|
|
+ user.map(item => {
|
|
|
|
+ const obj = {
|
|
|
|
+ field: item,
|
|
|
|
+ key: 'user'
|
|
}
|
|
}
|
|
- return str
|
|
|
|
|
|
+ arr.push(obj)
|
|
|
|
+ })
|
|
|
|
+ zd.map(item => {
|
|
|
|
+ item.key="zd"
|
|
|
|
+ arr.push(item)
|
|
|
|
+ })
|
|
|
|
+ ss.map(item => {
|
|
|
|
+ item.key="ss"
|
|
|
|
+ arr.push(item)
|
|
|
|
+ })
|
|
|
|
+
|
|
|
|
+ const maxIndex = arr.length - 1
|
|
|
|
+ // console.log(arr[this.zkcodeIndex].field, arr[this.zkcodeIndex].key, this.zkcodeIndex)
|
|
|
|
+ this.$emit('zk', arr[this.zkcodeIndex])
|
|
|
|
+ if (this.zkcodeIndex === maxIndex) {
|
|
|
|
+ this.zkcodeIndex = 0
|
|
|
|
+ } else {
|
|
|
|
+ this.zkcodeIndex++
|
|
}
|
|
}
|
|
|
|
+
|
|
},
|
|
},
|
|
- created() {
|
|
|
|
- this.getData()
|
|
|
|
|
|
+ onClose() {
|
|
|
|
+ this.$emit('close');
|
|
},
|
|
},
|
|
- methods: {
|
|
|
|
- onClose() {
|
|
|
|
- this.$emit('close')
|
|
|
|
- },
|
|
|
|
- // 获取详情
|
|
|
|
- getData() {
|
|
|
|
- const params = {
|
|
|
|
- ZYH: this.data.zyh
|
|
|
|
- }
|
|
|
|
- this.$axios.post('/bmy/qualityResult', params).then(res => {
|
|
|
|
- this.controls = res.data
|
|
|
|
- });
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ // 获取详情
|
|
|
|
+ getData() {
|
|
|
|
+ const params = {
|
|
|
|
+ ZYH: this.data.zyh,
|
|
|
|
+ };
|
|
|
|
+ this.$axios.post('/bmy/qualityResult', params).then(res => {
|
|
|
|
+ this.controls = res.data;
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+};
|
|
</script>
|
|
</script>
|
|
|
|
|
|
<style lang="scss">
|
|
<style lang="scss">
|
|
@@ -236,7 +222,7 @@
|
|
background: #fff;
|
|
background: #fff;
|
|
border-radius: 5px;
|
|
border-radius: 5px;
|
|
overflow-x: hidden;
|
|
overflow-x: hidden;
|
|
- transition: all .5s;
|
|
|
|
|
|
+ transition: all 0.5s;
|
|
}
|
|
}
|
|
::v-deep .el-dialog {
|
|
::v-deep .el-dialog {
|
|
margin-right: 30px;
|
|
margin-right: 30px;
|
|
@@ -271,17 +257,17 @@
|
|
.level {
|
|
.level {
|
|
float: right;
|
|
float: right;
|
|
}
|
|
}
|
|
- &.scoreLevel_1{
|
|
|
|
|
|
+ &.scoreLevel_1 {
|
|
background: #328240;
|
|
background: #328240;
|
|
}
|
|
}
|
|
- &.scoreLevel_2{
|
|
|
|
- background: #8AC410;
|
|
|
|
|
|
+ &.scoreLevel_2 {
|
|
|
|
+ background: #8ac410;
|
|
}
|
|
}
|
|
- &.scoreLevel_3{
|
|
|
|
- background: #EF8A0D;
|
|
|
|
|
|
+ &.scoreLevel_3 {
|
|
|
|
+ background: #ef8a0d;
|
|
}
|
|
}
|
|
- &.scoreLevel_4{
|
|
|
|
- background: #F0203A;
|
|
|
|
|
|
+ &.scoreLevel_4 {
|
|
|
|
+ background: #f0203a;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
.legend-box {
|
|
.legend-box {
|
|
@@ -319,7 +305,7 @@
|
|
}
|
|
}
|
|
}
|
|
}
|
|
.cont-reight-bottom {
|
|
.cont-reight-bottom {
|
|
- margin: 24px 7px;
|
|
|
|
|
|
+ margin: 24px 0 15px;
|
|
display: flex;
|
|
display: flex;
|
|
cursor: pointer;
|
|
cursor: pointer;
|
|
}
|
|
}
|
|
@@ -366,4 +352,12 @@
|
|
color: #666666;
|
|
color: #666666;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+.zkyj {
|
|
|
|
+ font-size: 14px;
|
|
|
|
+ font-family: Source Han Sans CN-Regular, Source Han Sans CN;
|
|
|
|
+ font-weight: 600;
|
|
|
|
+ color: #ED3028;
|
|
|
|
+ line-height: 20px;
|
|
|
|
+ cursor: pointer;
|
|
|
|
+}
|
|
</style>
|
|
</style>
|