postdischarge-ui/src/views/manage/Auditing/index.vue

292 lines
12 KiB
Vue
Raw Normal View History

2024-04-10 16:29:16 +08:00
<template>
2024-04-12 10:23:08 +08:00
<div style="background-color:#F1F3F5">
<div slot="footer" style="float: right;padding:10px 10px 0 0;height:35px">
<el-button size="mini" @click="cancel"> </el-button>
<el-button size="mini" type="primary">审核通过</el-button>
2024-04-10 16:29:16 +08:00
</div>
2024-04-12 10:23:08 +08:00
<div class="card">
<div class="cardleft">
<div class="title">
2024-04-12 15:51:45 +08:00
<div style="display: flex;align-items:center">
<img class="headsculpture" v-if="list.sex == 'MALE'" src="../../../assets/manage/touxiang.png">
<img class="headsculpture" v-else src="../../../assets/manage/nvtouxiang.png">
<div class="name">
{{ list.patientName ? list.patientName : '' }}
</div>
<div class="genderandage">
<span> {{ list.sex == 'MALE' ? "男" : '' }}
{{ list.sex == 'FEMALE' ? "女" : '' }}
</span>
<span v-if="list.sex && list.age" style="padding: 0 6px;">|</span>
<span v-if="list.age">{{ list.age }}</span>
</div>
2024-04-12 10:23:08 +08:00
</div>
<div class="source">
<div class="situation item">
{{ list.visitMethod == 'OUTPATIENT_SERVICE' ? '门诊' : '' }}
{{ list.visitMethod == 'BE_IN_HOSPITAL' ? '住院' : '' }}
</div>
2024-04-12 15:46:35 +08:00
<div class="item" style="color:#00E06E;border-color:#00E06E"
v-if="list.patientSource == 'WE_CHAT_OFFICIAL_ACCOUNT'">
2024-04-12 10:23:08 +08:00
<img src="../../../assets/manage/gzh.png" alt="">
<div>
公众号
</div>
</div>
2024-04-12 15:46:35 +08:00
<div class="item" style="color:#339DE5;border-color:#339DE5"
v-if="list.patientSource == 'WE_CHAT_APPLET'">
2024-04-12 10:23:08 +08:00
<img src="../../../assets/manage/xcx.png" alt="">
<div>
小程序
</div>
</div>
2024-04-12 15:46:35 +08:00
<div class="item" style="color:#F4881F;border-color:#F4881F"
v-if="list.patientSource == 'MANAGE_END'">
2024-04-12 10:23:08 +08:00
<img src="../../../assets/manage/gld.png" alt="">
<div>
管理端
</div>
</div>
</div>
</div>
<div class="texts">
<div class="text">
2024-04-12 15:39:15 +08:00
医院: {{ list.hospitalAgencyName ? list.hospitalAgencyName : '' }}
2024-04-12 10:23:08 +08:00
</div>
<div class="text">
2024-04-12 15:39:15 +08:00
科室: {{ list.departmentName ? list.departmentName : '' }}
2024-04-12 10:23:08 +08:00
</div>
<div class="text" v-if="list.visitMethod == 'BE_IN_HOSPITAL'">
入院时间: {{ list.admissionTime }}
</div>
<div class="text" v-if="list.visitMethod == 'BE_IN_HOSPITAL'">
出院时间: {{ list.dischargeTime }}
</div>
<div class="text" v-if="list.visitMethod == 'OUTPATIENT_SERVICE'">
就诊时间: {{ list.dischargeTime }}
</div>
</div>
2024-04-12 15:51:45 +08:00
<el-descriptions title="诊断信息" style="margin:16px auto">
2024-04-12 15:46:35 +08:00
<el-descriptions-item label="主要诊断">{{ list.mainDiagnosis }}</el-descriptions-item>
2024-04-12 10:23:08 +08:00
</el-descriptions>
2024-04-12 15:51:45 +08:00
<el-descriptions title="手术信息" style="margin:16px auto;border-top: 1px solid #e6ebf5;"
v-if="list.visitMethod != 'OUTPATIENT_SERVICE'">
2024-04-12 15:46:35 +08:00
<el-descriptions-item label="手术名称">{{ list.surgicalName }}</el-descriptions-item>
2024-04-12 10:23:08 +08:00
</el-descriptions>
<el-collapse v-model="activeNames">
2024-04-12 14:43:54 +08:00
<el-collapse-item title="入院记录" name="-1">
2024-04-12 15:46:35 +08:00
<div>{{ list.inHospitalInfo }}</div>
2024-04-12 10:23:08 +08:00
</el-collapse-item>
2024-04-12 15:51:45 +08:00
<el-collapse-item title="手术记录" name="-2" v-if="list.visitMethod != 'OUTPATIENT_SERVICE'">
2024-04-12 15:46:35 +08:00
<div>{{ list.surgicalRecord }}</div>
2024-04-12 10:23:08 +08:00
</el-collapse-item>
2024-04-12 15:51:45 +08:00
<el-collapse-item title="出院记录" name="-3" v-if="list.visitMethod != 'OUTPATIENT_SERVICE'">
2024-04-12 15:46:35 +08:00
<div>{{ list.outHospitalInfo }}</div>
2024-04-12 10:23:08 +08:00
</el-collapse-item>
</el-collapse>
</div>
<div class="cardright">
2024-04-12 15:39:15 +08:00
<div class="text" style="font-size: 20px;"> 任务:</div>
<div v-for="item in nodelist" :key="item.manageRouteId" style="margin: 0 auto 30px;">
<div class="texts">
<div class="text">
任务名称: {{ item.routeName }}
</div>
<div class="text">
适用范围: {{ item.suitRange == 'IN_THE_HOSPITAL' ? '在院' : '' }}
{{ item.suitRange == 'DISCHARGE' ? '出院' : '' }}
{{ item.suitRange == 'OUTPATIENT_SERVICE' ? '门诊' : '' }}
{{ item.suitRange == 'OUTPATIENT_SERVICE_DISCHARGE' ? '门诊+出院' : "" }}
</div>
</div>
<div v-for="uitem in item.nodeList" :key="uitem.id">
<div class="texts">
<div class="text" style="font-size:14px;font-weight: 400;">
任务内容: {{ uitem.taskType == 'PHONE_OUTBOUND' ? "电话外呼" : "" }}
{{ uitem.taskType == 'QUESTIONNAIRE_SCALE' ? "问卷量表" : "" }}
{{ uitem.taskType == 'PROPAGANDA_ARTICLE' ? "宣教文案" : "" }}
{{ uitem.taskType == 'TEXT_REMIND' ? "文字提醒" : "" }}
{{ uitem.taskType == 'ARTIFICIAL_FOLLOW_UP' ? "人工随访" : "" }}
</div>
<div class="text" style="font-size:14px;font-weight: 400;"
v-if="uitem.taskType == 'PHONE_OUTBOUND'">
电话模板:{{ uitem.phoneTemplateName }}
</div>
<div class="text" style="font-size:14px;font-weight: 400;"
v-if="uitem.taskType == 'QUESTIONNAIRE_SCALE'">
问卷模板:{{ uitem.questionnaireName }}
</div>
<div class="text" style="font-size:14px;font-weight: 400;"
v-if="uitem.taskType == 'QUESTIONNAIRE_SCALE'">
问卷有效期:{{ uitem.questionExpirationDate }}
</div>
<div class="text" style="font-size:14px;font-weight: 400;"
v-if="uitem.taskType == 'PROPAGANDA_ARTICLE'">
宣教模板:{{ uitem.propagandaTitle }}
</div>
<div class="textarea" v-if="uitem.taskType == 'TEXT_REMIND'">
提醒内容:{{ uitem.textRemindContent }}
</div>
<div class="text" style="font-size:14px;font-weight: 400;"
v-if="uitem.taskType == 'ARTIFICIAL_FOLLOW_UP'">
人工随访模板:{{ uitem.questionnaireName }}
</div>
</div>
</div>
</div>
2024-04-12 10:23:08 +08:00
</div>
2024-04-10 16:29:16 +08:00
</div>
</div>
</template>
<script>
2024-04-12 10:23:08 +08:00
import {
2024-04-12 15:39:15 +08:00
getRouteNodeList,
getByPatientId
2024-04-12 10:23:08 +08:00
} from '@/api/manage/Auditing.js'
2024-04-12 15:46:35 +08:00
import { getAge } from "@/utils/age";
2024-04-10 16:29:16 +08:00
export default {
name: "Auditing",
data() {
return {
2024-04-12 14:43:54 +08:00
activeNames: ['-1', '-2', '-3'],
2024-04-12 10:23:08 +08:00
list: {
visitMethod: "BE_IN_HOSPITAL",
},
nodelist: [],
2024-04-10 16:29:16 +08:00
};
},
created() {
2024-04-12 10:23:08 +08:00
this.info();
2024-04-10 16:29:16 +08:00
},
methods: {
2024-04-12 10:23:08 +08:00
info() {
2024-04-12 15:39:15 +08:00
getByPatientId(this.$route.query.patientId).then(res => {
2024-04-12 15:46:35 +08:00
res.data.birthDate ? res.data.age = getAge(res.data.birthDate) : ''
2024-04-12 15:39:15 +08:00
this.list = res.data
})
2024-04-12 10:23:08 +08:00
getRouteNodeList({ patientId: this.$route.query.patientId, taskCreateType: 'MANUAL_CREATE' }).then(res => {
this.nodelist = res.data
2024-04-12 14:55:49 +08:00
this.nodelist.forEach(e => {
2024-04-12 15:39:15 +08:00
let text
e.suitRange == 'IN_THE_HOSPITAL' ? text = '在院' : e.suitRange == 'DISCHARGE' ? text = '出院' : e.suitRange == 'OUTPATIENT_SERVICE' ? text = '门诊' : e.suitRange == 'OUTPATIENT_SERVICE_DISCHARGE' ? text = '门诊+出院' : text = ""
e.title = '任务名称:' + e.routeName + +'适用范围:' + text
2024-04-12 14:55:49 +08:00
})
2024-04-12 10:23:08 +08:00
})
},
cancel() {
this.$store.dispatch('tagsView/delView', this.$route).then(({ visitedViews }) => {
this.$router.push({
path: "/task/manualReview",
});
})
},
2024-04-10 16:29:16 +08:00
}
};
</script>
<style lang="scss" scoped>
2024-04-12 14:55:49 +08:00
::v-deep .el-collapse-item__header {
font-size: 16px;
font-weight: bold;
}
2024-04-12 15:39:15 +08:00
.texts {
margin: 16px 0 20px;
flex-wrap: wrap;
width: 100%;
display: flex;
font-size: 14px;
.text {
margin-bottom: 10px;
width: 50%;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
-o-text-overflow: ellipsis;
}
}
2024-04-10 16:29:16 +08:00
.card {
width: 100%;
display: flex;
justify-content: space-evenly;
padding: 20px 0;
2024-04-12 10:23:08 +08:00
height: calc(100vh - 119px);
2024-04-10 16:29:16 +08:00
.cardleft {
width: 35%;
background-color: #fff;
overflow: scroll;
padding: 20px;
2024-04-12 10:23:08 +08:00
.title {
display: flex;
align-items: center;
justify-content: space-between;
.source {
display: flex;
.situation {
background-color: #F1FAF7;
padding: 3px 6px;
color: #83CAC0 !important;
border: 1px solid #83CAC0 !important;
}
.item {
font-size: 14px;
margin-left: 5px;
border: 1px solid #fff;
padding: 3px 6px;
border-radius: 5px;
justify-content: center;
display: flex;
align-items: center;
img {
margin-right: 2px;
width: 16px;
height: 16px;
}
}
}
2024-04-12 15:51:45 +08:00
.name {
padding: 0 6px;
}
2024-04-12 10:23:08 +08:00
2024-04-12 15:51:45 +08:00
.genderandage {
padding: 0 6px;
}
2024-04-12 10:23:08 +08:00
.headsculpture {
width: 35px;
height: 35px;
}
}
2024-04-10 16:29:16 +08:00
}
.cardright {
overflow: scroll;
background-color: #fff;
width: 62%;
2024-04-12 14:55:49 +08:00
padding: 20px;
2024-04-12 15:39:15 +08:00
font-size: 14px;
.textarea {
font-size: 14px;
font-weight: 400;
margin-bottom: 10px;
width: 100%;
}
.text {
font-size: 16px;
font-weight: bold;
}
2024-04-10 16:29:16 +08:00
}
}
2024-04-12 10:23:08 +08:00
</style>