irc_web/.svn/pristine/e2/e2ceb8c1e8437e55b5dc5bbe1d9...

518 lines
16 KiB
Plaintext

<template>
<div class="app-container">
<div class="ImageReviewTask-list app-container">
<el-row>
<el-col :span="12">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>Global1</span>
</div>
<el-collapse v-model="activeNames">
<el-collapse-item
title="Timepoint Efficacy Assessment"
name="TimepointEfficacy"
>
<el-table
ref="TimepointEfficacyTable"
:data="Global1VisitRS"
stripe
size="small"
>
<el-table-column type="index" width="60" />
<el-table-column
prop="VisitName"
label="Visit"
show-overflow-tooltip
min-width="120"
>
<template
slot-scope="scope"
>{{ scope.row.VisitName + ' ' }}
<el-button
type="text"
size="small"
@click="goCRF(scope.row)"
>CRF</el-button>
<el-button
type="text"
size="small"
@click="goVisitImage(scope.row)"
>Image</el-button>
</template>
</el-table-column>
<el-table-column
prop="OverallResponse"
label="Timepoint Efficacy Assessment"
show-overflow-tooltip
min-width="100"
/>
<el-table-column
prop="Agree"
label="Agree or not"
show-overflow-tooltip
min-width="100"
>
<template slot-scope="scope">
<el-select
v-model="scope.row.GlobalRSSelect.Agree"
style="width: 100%"
size="small"
>
<!-- <el-option label="Please select" /> -->
<el-option :value="true" label="Agree" />
<el-option :value="false" label="Disagree" />
</el-select>
</template>
</el-table-column>
<el-table-column
prop="newRS"
label="Updated Timepoint Efficacy Assessment"
show-overflow-tooltip
min-width="100"
>
<template slot-scope="scope">
<el-select
v-model="scope.row.GlobalRSSelect.NewRS"
style="width: 100%"
size="small"
>
<!-- <el-option
v-for="item in VisitLymphNodeTargetList"
:key="item.value"
:label="item.TRORRES"
:value="item.TRORRES"
/> -->
<el-option value="test1" label="test1" />
<el-option value="test2" label="test2" />
</el-select>
</template>
</el-table-column>
<el-table-column
prop="Note"
label="Comments for This Timepoint"
min-width="100"
>
<template slot-scope="scope">
<el-input
v-model="scope.row.GlobalRSSelect.Note"
type="text"
placeholder=""
size="small"
:disabled="isReportSaved"
/>
</template>
</el-table-column>
</el-table>
</el-collapse-item>
<el-collapse-item
title="Comments for the Subject"
name="CommentsForSubject"
>
<el-input
v-model="SubjectNote1"
type="text"
placeholder=""
size="small"
:disabled="isReportSaved"
/>
</el-collapse-item>
<el-collapse-item
title="Previous Global Reads"
name="PreviousGlobalReads"
>
<el-table
ref="GlobalReadsTable"
:data="PreviousGlobalReadsList1"
stripe
size="small"
>
<el-table-column type="index" width="60" />
<el-table-column
prop="VisitName"
label="Visit"
show-overflow-tooltip
min-width="100"
/>
<el-table-column
prop="OverallResponse"
label="Timepoint Efficacy Assessment"
show-overflow-tooltip
min-width="100"
/>
</el-table>
</el-collapse-item>
</el-collapse>
</el-card>
</el-col>
<el-col :span="12">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>Global2</span>
</div>
<el-collapse v-model="activeNames">
<el-collapse-item
title="Timepoint Efficacy Assessment"
name="TimepointEfficacy"
>
<el-table
ref="TimepointEfficacyTable"
:data="Global2VisitRS"
stripe
size="small"
>
<el-table-column type="index" width="60" />
<el-table-column
prop="VisitName"
label="Visit"
show-overflow-tooltip
min-width="120"
>
<template
slot-scope="scope"
>{{ scope.row.VisitName + ' ' }}
<el-button
type="text"
size="small"
@click="goCRF(scope.row)"
>CRF</el-button>
<el-button
type="text"
size="small"
@click="goVisitImage(scope.row)"
>Image</el-button>
</template>
</el-table-column>
<el-table-column
prop="OverallResponse"
label="Timepoint Efficacy Assessment"
show-overflow-tooltip
min-width="100"
/>
<el-table-column
prop="Agree"
label="Agree or not"
show-overflow-tooltip
min-width="100"
>
<template slot-scope="scope">
<el-select
v-model="scope.row.GlobalRSSelect.Agree"
style="width: 100%"
size="small"
>
<!-- <el-option label="Please select" /> -->
<el-option :value="true" label="Agree" />
<el-option :value="false" label="Disagree" />
</el-select>
</template>
</el-table-column>
<el-table-column
prop="newRS"
label="Updated Timepoint Efficacy Assessment"
show-overflow-tooltip
min-width="100"
>
<template slot-scope="scope">
<el-select
v-model="scope.row.GlobalRSSelect.NewRS"
style="width: 100%"
size="small"
>
<!-- <el-option
v-for="item in VisitLymphNodeTargetList"
:key="item.value"
:label="item.TRORRES"
:value="item.TRORRES"
/> -->
<el-option value="test1" label="test1" />
<el-option value="test2" label="test2" />
</el-select>
</template>
</el-table-column>
<el-table-column
prop="Note"
label="Comments for This Timepoint"
min-width="100"
>
<template slot-scope="scope">
<el-input
v-model="scope.row.GlobalRSSelect.Note"
type="text"
placeholder=""
size="small"
:disabled="isReportSaved"
/>
</template>
</el-table-column>
</el-table>
</el-collapse-item>
<el-collapse-item
title="Comments for the Subject"
name="CommentsForSubject"
>
<el-input
v-model="SubjectNote2"
type="text"
placeholder=""
size="small"
:disabled="isReportSaved"
/>
</el-collapse-item>
<el-collapse-item
title="Previous Global Reads"
name="PreviousGlobalReads"
>
<el-table
ref="GlobalReadsTable"
:data="PreviousGlobalReadsList2"
stripe
size="small"
>
<el-table-column type="index" width="60" />
<el-table-column
prop="VisitName"
label="Visit"
show-overflow-tooltip
min-width="100"
/>
<el-table-column
prop="OverallResponse"
label="Timepoint Efficacy Assessment"
show-overflow-tooltip
min-width="100"
/>
</el-table>
</el-collapse-item>
</el-collapse>
</el-card>
</el-col>
</el-row>
<div style="margin-top: 50px">
<el-form ref="basicInfoForm" size="small">
<el-row>
<el-col :span="12" :offset="6">
<el-form-item
prop="Qualified"
label="Which one do you prefer?"
label-width="200px"
:rules="[{ required: true, message: '', trigger: 'blur' }]"
>
<!-- v-model="reportResult.Qualified" -->
<el-radio-group v-model="adReport.SelectGlobalId" :disabled="isReportSaved">
<el-radio :label="dbAdInfo.Global1Id">Global1</el-radio>
<el-radio :label="dbAdInfo.Global2Id">Global2</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="8" :offset="6">
<el-form-item label="Note: " prop="Note">
<el-input
v-model="adReport.AdNote"
type="textarea"
:rows="8"
placeholder="Please input Note"
>
<!-- v-model="textarea" -->
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-form-item style="margin-left: 120px">
<el-button
type="primary"
style="float: left; margin-left: 500px"
:disabled="isReportSaved"
@click="AddADReport"
>Save</el-button>
</el-form-item>
</el-row>
</el-form>
</div>
</div>
<div v-if="dialogVisible">
<el-dialog :title="dialogTitle" :visible.sync="dialogVisible" width="90%">
<baseline-task v-if="rowVisitNum == 1" />
<visit-task
v-if="rowVisitNum != 1"
:global-row-visit-num="rowVisitNum"
:visit-tp-code="rowTpCode"
/>
</el-dialog>
</div>
</div>
</template>
<script>
import {
GetAdReport,
AddAdjudicationReport
} from '@/api/reading'
import BaselineTask from '../tp/baselineTask.vue'
import VisitTask from '../tp/visitTask.vue'
export default {
name: 'GlobalTask',
components: { VisitTask, BaselineTask },
data() {
return {
token: zzSessionStorage.getItem('TokenKey'),
pageAdInfo: '',
dbAdInfo: '',
isReportSaved: false,
activeNames: [
'TimepointEfficacy',
'CommentsForSubject',
'PreviousGlobalReads'
],
// Global1:'',
// Global2:'',
PreviousGlobalReadsList1: [],
PreviousGlobalReadsList2: [],
SubjectNote1: '',
SubjectNote2: '',
Global1VisitRS: [],
Global2VisitRS: [],
dialogVisible: false,
rowVisitNum: 0,
rowTpCode: '',
dialogTitle: '',
adReport: {
AdID: '',
SelectGlobalId: '',
AdNote: ''
},
timepointEfficacyList: [],
previousGlobalReadsList: []
}
},
created() {
this.pageAdInfo = this.$route.query
},
mounted() {
this.GetAdReport(this.pageAdInfo.Id)
},
methods: {
GetAdReport(id) {
GetAdReport(id).then((res) => {
this.PreviousGlobalReadsList1 = res.Result.Global1.PreviousGlobalReadsList
this.SubjectNote1 = res.Result.Global1.SubjectNote
this.Global1VisitRS = res.Result.Global1VisitRS
this.PreviousGlobalReadsList2 = res.Result.Global2.PreviousGlobalReadsList
this.SubjectNote2 = res.Result.Global2.SubjectNote
this.Global2VisitRS = res.Result.Global2VisitRS
this.dbAdInfo = res.Result.ADInfo
this.adReport.SelectGlobalId = this.dbAdInfo.SelectGlobalId
this.adReport.AdNote = this.dbAdInfo.AdNote
})
// getHistoryVisitRsList(
// this.globalInfo.TrialId,
// this.globalInfo.TrialCode,
// this.globalInfo.SubjectCode,
// this.globalInfo.WorkloadCode,
// this.globalInfo.VisitNum,
// this.globalInfo.Id
// ).then((res) => {
// this.timepointEfficacyList = res.Result
// })
},
// getPreviousGlobalReads() {
// getHistoryGlobalRsList(
// this.globalInfo.TrialId,
// this.globalInfo.SubjectCode,
// this.globalInfo.VisitNum,
// this.globalInfo.Id
// ).then((res) => {
// this.previousGlobalReadsList = res.Result.PreviousGlobalReadsList
// this.subjectNote = res.Result.SubjectNote
// })
// },
AddADReport() {
this.adReport.AdID = this.pageAdInfo.Id
AddAdjudicationReport(this.adReport).then(res => {
this.$message.success('Report saved successfully')
this.GetAdReport(this.pageAdInfo.Id)
})
},
goVisitImage(row) {
const routes = this.$router.resolve({
path: '/showdicom',
query: { tpCode: row.TpCode, visitNum: row.VisitNum, token: zzSessionStorage.getItem('TokenKey') }
})
window.setTimeout(function() {
window.open(routes.href, '_blank')
}, 1000)
},
goCRF(row) {
this.rowVisitNum = row.VisitNum
this.dialogVisible = true
this.rowTpCode = row.TpCode
this.dialogTitle =
this.globalInfo.TrialCode +
'/' +
this.globalInfo.SubjectCode +
'/' +
row.VisitName
}
}
}
</script>
<style lang="scss">
.ImageReviewTask-list {
// height: 100%;
.el-collapse-item.is-disabled .el-collapse-item__header {
color: black;
}
.el-collapse-item__header {
// background-color: #f0f0f0;
height: 40px;
line-height: 40px;
font-weight: bold;
padding: 0 5px;
}
// #footer {
// position: fixed;
// bottom: 30px;
// width: 100%;
// // height: 30px; /*脚部的高度*/
// // background: #6cf;
// clear: both;
// }
}
</style>