<template>
|
<base-stage :stage-data="stageData" :case-info="caseInfo">
|
<template #header>
|
<el-alert
|
title="伦理审查阶段"
|
:type="getAlertType()"
|
:description="getAlertDescription()"
|
show-icon
|
:closable="false"
|
/>
|
</template>
|
|
<el-row :gutter="20" style="margin-top: 20px;">
|
<el-col :span="12">
|
<el-card>
|
<div slot="header" class="card-header">
|
<span>审查委员会信息</span>
|
</div>
|
<el-descriptions :column="1" border>
|
<el-descriptions-item label="委员会名称">
|
{{ reviewCommittee.name }}
|
</el-descriptions-item>
|
<el-descriptions-item label="审查会议时间">
|
{{ formatTime(reviewCommittee.meetingTime) }}
|
</el-descriptions-item>
|
<el-descriptions-item label="参会委员">
|
{{ reviewCommittee.members.length }} 人
|
</el-descriptions-item>
|
<el-descriptions-item label="审查结论">
|
<el-tag :type="reviewCommittee.conclusion ? 'success' : 'warning'">
|
{{ reviewCommittee.conclusion ? '审查通过' : '审查中' }}
|
</el-tag>
|
</el-descriptions-item>
|
<el-descriptions-item label="主席签字">
|
{{ reviewCommittee.chairman }}
|
</el-descriptions-item>
|
</el-descriptions>
|
</el-card>
|
</el-col>
|
|
<el-col :span="12">
|
<el-card>
|
<div slot="header" class="card-header">
|
<span>审查流程进度</span>
|
</div>
|
<el-steps direction="vertical" :active="reviewProgress.active" space="80px">
|
<el-step
|
v-for="step in reviewProgress.steps"
|
:key="step.title"
|
:title="step.title"
|
:description="step.description"
|
:status="step.status"
|
/>
|
</el-steps>
|
</el-card>
|
</el-col>
|
</el-row>
|
|
<el-card style="margin-top: 20px;">
|
<div slot="header" class="card-header">
|
<span>委员审查意见</span>
|
</div>
|
<el-table :data="reviewComments" border>
|
<el-table-column label="委员姓名" prop="memberName" width="120" />
|
<el-table-column label="专业领域" prop="specialty" width="120" />
|
<el-table-column label="审查意见" prop="comment" min-width="200" />
|
<el-table-column label="投票结果" width="100">
|
<template slot-scope="scope">
|
<el-tag :type="scope.row.vote === '同意' ? 'success' : 'danger'">
|
{{ scope.row.vote }}
|
</el-tag>
|
</template>
|
</el-table-column>
|
<el-table-column label="审查时间" width="160">
|
<template slot-scope="scope">
|
{{ formatTime(scope.row.reviewTime) }}
|
</template>
|
</el-table-column>
|
</el-table>
|
</el-card>
|
|
<el-card style="margin-top: 20px;">
|
<div slot="header" class="card-header">
|
<span>审查决议文件</span>
|
<el-button type="primary" size="small" @click="handleViewResolution">
|
查看决议文件
|
</el-button>
|
</div>
|
<div class="resolution-content">
|
<p><strong>伦理审查决议:</strong></p>
|
<p>{{ resolutionContent }}</p>
|
<el-divider />
|
<div class="signature-area">
|
<p>伦理委员会主席:{{ reviewCommittee.chairman }}</p>
|
<p>日期:{{ formatTime(reviewCommittee.meetingTime) }}</p>
|
</div>
|
</div>
|
</el-card>
|
</base-stage>
|
</template>
|
|
<script>
|
import BaseStage from './BaseStage.vue';
|
|
export default {
|
name: 'EthicalReviewStage',
|
components: { BaseStage },
|
props: {
|
stageData: {
|
type: Object,
|
default: () => ({})
|
},
|
caseInfo: {
|
type: Object,
|
default: () => ({})
|
}
|
},
|
data() {
|
return {
|
reviewCommittee: {
|
name: '医院伦理审查委员会',
|
meetingTime: '2023-12-03 15:20:00',
|
members: ['张教授', '李主任', '王医生', '赵委员', '钱专家'],
|
conclusion: true,
|
chairman: '张教授'
|
},
|
reviewProgress: {
|
active: 4,
|
steps: [
|
{
|
title: '材料初审',
|
description: '申请材料完整性审查',
|
status: 'finish'
|
},
|
{
|
title: '委员评审',
|
description: '各委员独立审查',
|
status: 'finish'
|
},
|
{
|
title: '会议讨论',
|
description: '委员会集体讨论',
|
status: 'finish'
|
},
|
{
|
title: '形成决议',
|
description: '投票形成最终决议',
|
status: 'finish'
|
}
|
]
|
},
|
reviewComments: [
|
{
|
memberName: '张教授',
|
specialty: '医学伦理',
|
comment: '捐献程序符合伦理规范,同意通过',
|
vote: '同意',
|
reviewTime: '2023-12-03 14:30:00'
|
},
|
{
|
memberName: '李主任',
|
specialty: '临床医学',
|
comment: '医疗程序规范,无伦理问题',
|
vote: '同意',
|
reviewTime: '2023-12-03 14:45:00'
|
},
|
{
|
memberName: '王医生',
|
specialty: '法律医学',
|
comment: '法律文件齐全,程序合法',
|
vote: '同意',
|
reviewTime: '2023-12-03 15:00:00'
|
}
|
],
|
resolutionContent: '经伦理审查委员会审查,该器官捐献案例符合医学伦理要求,捐献程序规范,家属意愿真实有效,同意进行器官捐献。'
|
};
|
},
|
methods: {
|
getAlertType() {
|
const status = this.stageData.status;
|
return status === 'completed' ? 'success' :
|
status === 'in_progress' ? 'warning' : 'info';
|
},
|
getAlertDescription() {
|
const status = this.stageData.status;
|
return status === 'completed' ? '伦理审查已通过,可以进行器官分配' :
|
status === 'in_progress' ? '伦理审查流程正在进行中' : '等待开始伦理审查流程';
|
},
|
handleViewResolution() {
|
this.$message.info('查看伦理审查决议文件功能');
|
}
|
}
|
};
|
</script>
|
|
<style scoped>
|
.resolution-content {
|
padding: 20px;
|
line-height: 1.8;
|
}
|
|
.signature-area {
|
text-align: right;
|
margin-top: 30px;
|
}
|
</style>
|