非Dicom阅片临床数据展示方式更改

uat_us
caiyiling 2024-12-02 16:39:25 +08:00
parent 581cd2c9c1
commit 95f210a90d
3 changed files with 80 additions and 28 deletions

View File

@ -1,9 +1,15 @@
<template> <template>
<div style="min-height:500px"> <div style="min-height:500px">
<h3 v-if="isReadingShowSubjectInfo" style="padding: 5px 0px;margin: 0;"> <div v-if="isReadingShowSubjectInfo" style="display:flex;align-items: center;
<span v-if="subjectCode">{{ subjectCode }} </span> justify-content: space-between;">
<span style="margin-left:5px;">{{ taskBlindName }}</span> <h3>
</h3> <span v-if="subjectCode">{{ subjectCode }}</span>
<span style="margin-left:5px;">{{ taskBlindName }}</span>
</h3>
<div>
<el-button v-if="isExistsClinicalData" type="text" @click="previewCD">{{ $t('trials:reading:button:clinicalData') }}</el-button>
</div>
</div>
<ECRF <ECRF
:trial-id="trialId" :trial-id="trialId"
:subject-id="subjectId" :subject-id="subjectId"
@ -57,7 +63,11 @@ export default {
iseCRFShowInDicomReading: { iseCRFShowInDicomReading: {
type: Boolean, type: Boolean,
required: true required: true
} },
isExistsClinicalData: {
type: Boolean,
required: true
},
}, },
data() { data() {
return { return {
@ -80,7 +90,10 @@ export default {
this.activeName = this.criterions[0].ReadingQuestionCriterionTrialId this.activeName = this.criterions[0].ReadingQuestionCriterionTrialId
this.loading = false this.loading = false
}).catch(() => { this.loading = false }) }).catch(() => { this.loading = false })
} },
previewCD() {
this.$emit('previewCD')
},
} }
} }

View File

@ -91,7 +91,7 @@
</el-card> </el-card>
<el-card class="box-card" style="width:400px;height:100%;padding: 10px;margin-left:10px;overflow-y: auto;"> <el-card class="box-card" style="width:400px;height:100%;padding: 10px;margin-left:10px;overflow-y: auto;">
<div style="text-align:right;"> <!-- <div style="text-align:right;">
<el-button <el-button
v-if="otherInfo && otherInfo.IsExistsClinicalData" v-if="otherInfo && otherInfo.IsExistsClinicalData"
type="text" type="text"
@ -99,7 +99,7 @@
> >
{{ $t('trials:crcUpload:label:clinicalData') }} {{ $t('trials:crcUpload:label:clinicalData') }}
</el-button> </el-button>
</div> </div> -->
<Criterions <Criterions
v-if="otherInfo && visitTaskId!== '' && subjectId!== '' && readingCategory!==null && readingCategory!==4" v-if="otherInfo && visitTaskId!== '' && subjectId!== '' && readingCategory!==null && readingCategory!==4"
:trial-id="trialId" :trial-id="trialId"
@ -110,6 +110,8 @@
:task-blind-name="taskBlindName" :task-blind-name="taskBlindName"
:is-reading-show-subject-info="isReadingShowSubjectInfo" :is-reading-show-subject-info="isReadingShowSubjectInfo"
:ise-c-r-f-show-in-dicom-reading="iseCRFShowInDicomReading" :ise-c-r-f-show-in-dicom-reading="iseCRFShowInDicomReading"
:isExistsClinicalData="isExistsClinicalData"
@previewCD="previewCD"
/> />
</el-card> </el-card>
</div> </div>
@ -171,6 +173,10 @@ export default {
iseCRFShowInDicomReading: { iseCRFShowInDicomReading: {
type: Boolean, type: Boolean,
required: true required: true
},
isExistsClinicalData: {
type: Boolean,
required: true
} }
}, },
data() { data() {
@ -314,11 +320,12 @@ export default {
this.openWindow = window.open(routeData.href, '_blank') this.openWindow = window.open(routeData.href, '_blank')
}, },
previewCD() { previewCD() {
var token = getToken() // var token = getToken()
const routeData = this.$router.resolve({ // const routeData = this.$router.resolve({
path: `/clinicalData?subjectId=${this.subjectId}&trialId=${this.trialId}&visitTaskId=${this.visitTaskId}&TokenKey=${token}` // path: `/clinicalData?subjectId=${this.subjectId}&trialId=${this.trialId}&visitTaskId=${this.visitTaskId}&TokenKey=${token}`
}) // })
window.open(routeData.href, '_blank') // window.open(routeData.href, '_blank')
this.$emit('previewCD', this.visitTaskId)
}, },
getBodyPart(bodyPart) { getBodyPart(bodyPart) {
if (!bodyPart) return '' if (!bodyPart) return ''

View File

@ -14,9 +14,11 @@
:reading-category="readingCategory" :reading-category="readingCategory"
:readingTool="readingTool" :readingTool="readingTool"
:criterionType="criterionType" :criterionType="criterionType"
:isExistsClinicalData="isExistsClinicalData"
:isReadingShowSubjectInfo="isReadingShowSubjectInfo" :isReadingShowSubjectInfo="isReadingShowSubjectInfo"
:is-reading-task-view-in-order="isReadingTaskViewInOrder" :is-reading-task-view-in-order="isReadingTaskViewInOrder"
:iseCRFShowInDicomReading="iseCRFShowInDicomReading" :iseCRFShowInDicomReading="iseCRFShowInDicomReading"
@previewCD="previewCD"
/> />
</el-tab-pane> </el-tab-pane>
<!-- 报告 --> <!-- 报告 -->
@ -77,25 +79,32 @@
/> />
<el-dialog <el-dialog
width="75%"
:visible.sync="dialogVisible" :visible.sync="dialogVisible"
style="margin:0px" :custom-class="isFullscreen?'full-dialog-container':'dialog-container'"
custom-class="dialog-container"
:show-close="false" :show-close="false"
:close-on-click-modal="false"
:fullscreen="isFullscreen"
> >
<span slot="title" class="dialog-footer"> <span slot="title" class="dialog-footer">
{{ $t('trials:reading:noneDicom:tip:hasCllinicalData') }} <!-- 当前阅片任务存在临床数据请查看若已查看请点击确认 -->
<span v-if="!closeCDVisible">{{ $t('trials:reading:dagTitle:msg1') }}</span>
<div style="position: absolute;right: 20px;top: 10px;">
<svg-icon :icon-class="isFullscreen?'exit-fullscreen':'fullscreen'" style="cursor: pointer;font-size: 20px;" @click="isFullscreen=!isFullscreen" />
<svg-icon v-if="closeCDVisible" icon-class="dClose" style="cursor: pointer;font-size: 25px;margin-left: 10px;" @click="dialogVisible = false" />
</div>
</span> </span>
<div :style="{'height':dialogH,'margin':0}"> <div style="height: 100%;margin:0;">
<ClinicalData <ClinicalData
v-if="dialogVisible"
:trial-id="trialId" :trial-id="trialId"
:subject-id="subjectId" :subject-id="subjectId"
:visit-task-id="visitTaskId" :visit-task-id="cdVisitTaskId"
:is-reading-show-subject-info="isReadingShowSubjectInfo"
/> />
</div> </div>
<span v-if="!closeCDVisible" slot="footer" class="dialog-footer">
<span slot="footer" class="dialog-footer"> <!-- 确认 -->
<el-button type="primary" @click="handleConfirmCD">{{ $t("common:button:confirm") }}</el-button> <el-button type="primary" @click="handleConfirmCD">{{ $t('trials:reading:button:confirm') }}</el-button>
</span> </span>
</el-dialog> </el-dialog>
@ -145,7 +154,10 @@ export default {
readingTool: null, readingTool: null,
isNewSubject: null, isNewSubject: null,
dialogVisible: false, dialogVisible: false,
dialogH: 0, closeCDVisible: false,
cdVisitTaskId: '',
isFullscreen: false,
// dialogH: 0,
isShow: false, isShow: false,
activeName:'', activeName:'',
tabs: [] tabs: []
@ -154,7 +166,7 @@ export default {
mounted() { mounted() {
DicomEvent.$on('getNextTask', () => { DicomEvent.$on('getNextTask', () => {
this.getTaskInfo() this.getTaskInfo()
}) })
this.trialId = this.$router.currentRoute.query.trialId this.trialId = this.$router.currentRoute.query.trialId
this.subjectCode = this.$router.currentRoute.query.subjectCode this.subjectCode = this.$router.currentRoute.query.subjectCode
this.subjectId = this.$router.currentRoute.query.subjectId this.subjectId = this.$router.currentRoute.query.subjectId
@ -218,13 +230,22 @@ export default {
localStorage.setItem('digitPlaces', 2) localStorage.setItem('digitPlaces', 2)
this.$nextTick(() => { this.$nextTick(() => {
if (this.isExistsClinicalData && this.isNeedReadClinicalData && !this.isReadClinicalData) { if (this.isExistsClinicalData && this.isNeedReadClinicalData && !this.isReadClinicalData) {
this.isFullscreen = false
this.dialogVisible = true this.dialogVisible = true
this.cdVisitTaskId = this.visitTaskId
} }
}) })
this.isShow = true this.isShow = true
this.loading = false this.loading = false
}).catch(() => { this.loading = false }) }).catch(() => { this.loading = false })
}, },
previewCD(taskId) {
this.closeCDVisible = true
this.isFullscreen = false
this.dialogVisible = true
this.cdVisitTaskId = taskId
this.dialogVisible = true
},
async handleConfirmCD() { async handleConfirmCD() {
this.loading = true this.loading = true
var visitTaskId = this.visitTaskId var visitTaskId = this.visitTaskId
@ -302,13 +323,24 @@ export default {
} }
} }
/deep/ .dialog-container{ /deep/.dialog-container{
margin-top: 50px !important; margin-top: 50px !important;
width:75%;
height:80%;
} }
/deep/ .el-dialog__body{ /deep/.el-dialog__body{
padding: 10px; padding: 20px;
height: calc(100% - 50px);
} }
.el-dialog__header{
position: relative;
}
}
.full-dialog-container{
/deep/.is-fullscreen .el-dialog__body{
height: calc(100% - 50px);
}
} }
</style> </style>