1
continuous-integration/drone/push Build is passing Details

uat
caiyiling 2025-02-25 17:55:17 +08:00
parent d2757c6f9b
commit 5f960348ed
2 changed files with 345 additions and 345 deletions

View File

@ -1,347 +1,76 @@
<template> <template>
<div ref="container" v-loading="loading" class="none-dicom-reading-container"> <div v-loading="loading" class="reading-viewer-container">
<!-- 访视阅片 --> <!-- 访视阅片 -->
<div v-if="isShow && readingCategory && readingCategory=== 1" class="reading-wrapper"> <visit-review v-if="taskInfo && taskInfo.ReadingCategory=== 1" />
<el-tabs v-model="activeName" :before-leave="beforeLeave">
<!-- 阅片 -->
<el-tab-pane :label="$t('trials:reading:tabTitle:review')" name="read">
<VisitReview
:trial-id="trialId"
:subject-id="subjectId"
:subject-code="subjectCode"
:visit-task-id="visitTaskId"
:task-blind-name="taskBlindName"
:reading-category="readingCategory"
:readingTool="readingTool"
:criterionType="criterionType"
:isExistsClinicalData="isExistsClinicalData"
:isReadingShowSubjectInfo="isReadingShowSubjectInfo"
:is-reading-task-view-in-order="isReadingTaskViewInOrder"
:iseCRFShowInDicomReading="iseCRFShowInDicomReading"
@previewCD="previewCD"
/>
</el-tab-pane>
<!-- 报告 -->
<el-tab-pane :label="$t('trials:reading:tabTitle:report')" name="report" v-if="!iseCRFShowInDicomReading">
<Report
v-if="tabs.includes('report')"
ref="reportPage"
:trialId="trialId"
:visit-task-id="visitTaskId"
:subject-id="subjectId"
:readingTool="readingTool"
:criterionType="criterionType"
:is-reading-task-view-in-order="isReadingTaskViewInOrder"
/>
</el-tab-pane>
</el-tabs>
</div>
<!-- 全局阅片 --> <!-- 全局阅片 -->
<GlobalReview <global-review v-else-if="taskInfo && taskInfo.ReadingCategory=== 2" />
v-else-if="isShow && readingCategory && readingCategory === 2"
:trial-id="trialId"
:subject-id="subjectId"
:visit-task-id="visitTaskId"
:reading-category="readingCategory"
:subject-code="subjectCode"
:task-blind-name="taskBlindName"
:is-reading-show-subject-info="isReadingShowSubjectInfo"
:is-reading-show-previous-results="isReadingShowPreviousResults"
:is-exists-clinical-data="isExistsClinicalData"
/>
<!-- 裁判阅片 --> <!-- 裁判阅片 -->
<AdReview <ad-review v-else-if="taskInfo && taskInfo.ReadingCategory=== 4" />
v-else-if="isShow && readingCategory && readingCategory === 4"
:trial-id="trialId"
:subject-id="subjectId"
:visit-task-id="visitTaskId"
:reading-category="readingCategory"
:subject-code="subjectCode"
:task-blind-name="taskBlindName"
:is-reading-show-subject-info="isReadingShowSubjectInfo"
:is-reading-show-previous-results="isReadingShowPreviousResults"
:is-exists-clinical-data="isExistsClinicalData"
/>
<!-- 肿瘤学阅片 --> <!-- 肿瘤学阅片 -->
<OncologyReview <oncology-review v-else-if="taskInfo && taskInfo.ReadingCategory=== 5" />
v-else-if="isShow && readingCategory && readingCategory === 5"
:trial-id="trialId"
:subject-id="subjectId"
:visit-task-id="visitTaskId"
:reading-category="readingCategory"
:subject-code="subjectCode"
:task-blind-name="taskBlindName"
:is-reading-show-subject-info="isReadingShowSubjectInfo"
:is-reading-show-previous-results="isReadingShowPreviousResults"
:is-exists-clinical-data="isExistsClinicalData"
/>
<el-dialog
:visible.sync="dialogVisible"
:custom-class="isFullscreen?'full-dialog-container':'dialog-container'"
:show-close="false"
:close-on-click-modal="false"
:fullscreen="isFullscreen"
>
<span slot="title" class="dialog-footer">
<!-- 当前阅片任务存在临床数据请查看若已查看请点击确认 -->
<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> </div>
</span>
<div style="height: 100%;margin:0;display: flex;flex-direction: column;">
<ClinicalData
v-if="dialogVisible"
style="flex: 1"
:trial-id="trialId"
:subject-id="subjectId"
:visit-task-id="cdVisitTaskId"
:is-reading-show-subject-info="isReadingShowSubjectInfo"
/>
<div v-if="!closeCDVisible" style="text-align:right">
<el-button type="primary" @click="handleConfirmCD">{{ $t('trials:reading:button:confirm') }}</el-button>
</div>
</div>
</el-dialog>
</div>
</template> </template>
<script> <script>
import { getNextTask, readClinicalData } from '@/api/trials' import { getNextTask } from '@/api/trials'
import store from '@/store' import store from '@/store'
import { changeURLStatic } from '@/utils/history.js' import VisitReview from '@/views/trials/trials-panel/reading/visit-review'
import DicomEvent from '@/views/trials/trials-panel/reading/dicoms/components/DicomEvent'
import Report from './components/Report'
import VisitReview from './components/VisitReview'
import GlobalReview from '@/views/trials/trials-panel/reading/global-review' import GlobalReview from '@/views/trials/trials-panel/reading/global-review'
import AdReview from '@/views/trials/trials-panel/reading/ad-review' import AdReview from '@/views/trials/trials-panel/reading/ad-review'
import ClinicalData from '@/views/trials/trials-panel/reading/clinical-data'
// import { getToken } from '@/utils/auth'
import OncologyReview from '@/views/trials/trials-panel/reading/oncology-review' import OncologyReview from '@/views/trials/trials-panel/reading/oncology-review'
export default { export default {
name: 'NoneDicomReading', name: 'ReadingViewer',
components: { components: {
VisitReview, VisitReview,
Report,
AdReview,
GlobalReview, GlobalReview,
OncologyReview, AdReview,
ClinicalData OncologyReview
}, },
data() { data() {
return { return {
loading: false, taskInfo: null,
readingCategory: null, loading: false
subjectId: '',
visitTaskId: '',
trialId: '',
subjectCode: '',
taskBlindName: '',
isReadingShowSubjectInfo: false,
isReadingShowPreviousResults: false,
isReadingTaskViewInOrder: false,
isExistsClinicalData: false,
isNeedReadClinicalData: false,
isReadClinicalData: false,
iseCRFShowInDicomReading: false,
criterionType: null,
readingTool: null,
isNewSubject: null,
dialogVisible: false,
closeCDVisible: false,
cdVisitTaskId: '',
isFullscreen: false,
// dialogH: 0,
isShow: false,
activeName:'',
tabs: []
} }
}, },
mounted() { mounted() {
DicomEvent.$on('getNextTask', () => {
this.getTaskInfo() this.getTaskInfo()
})
this.trialId = this.$router.currentRoute.query.trialId
this.subjectCode = this.$router.currentRoute.query.subjectCode
this.subjectId = this.$router.currentRoute.query.subjectId
this.visitTaskId = this.$router.currentRoute.query.visitTaskId
this.isReadingShowSubjectInfo = this.$router.currentRoute.query.isReadingShowSubjectInfo
this.isReadingShowPreviousResults = this.$router.currentRoute.query.isReadingShowPreviousResults
this.isReadingTaskViewInOrder = JSON.parse(this.$router.currentRoute.query.isReadingTaskViewInOrder)
this.criterionType = this.$router.currentRoute.query.criterionType
this.readingTool = this.$router.currentRoute.query.readingTool
this.isNewSubject = this.$router.currentRoute.query.isNewSubject
if (this.isNewSubject && this.isReadingTaskViewInOrder) {
const message = this.$t('trials:reading:noneDicom:message:startRead').replace('xxx', this.subjectCode)
this.$message.success(message)
changeURLStatic('isNewSubject', '')
}
if (this.$router.currentRoute.query.TokenKey) {
store.dispatch('user/setToken', this.$router.currentRoute.query.TokenKey)
changeURLStatic('TokenKey', '')
}
this.getTaskInfo()
this.dialogH = this.$refs['container'].clientHeight - 250 + 'px'
window.addEventListener('resize', () => { this.dialogH = this.$refs['container'].clientHeight - 250 + 'px' })
},
beforeDestroy() {
DicomEvent.$off('getNextTask')
}, },
methods: { methods: {
getTaskInfo() { async getTaskInfo() {
this.loading = true this.loading = true
var param = {
subjectId: this.subjectId,
trialId: this.trialId,
subjectCode: this.subjectCode,
visitTaskId: this.$router.currentRoute.query.visitTaskId,
trialReadingCriterionId: this.$router.currentRoute.query.TrialReadingCriterionId
}
this.isShow = false
getNextTask(param).then(res => {
this.readingCategory = res.Result.ReadingCategory
// if (this.subjectId !== res.Result.SubjectId && this.isReadingTaskViewInOrder) {
// store.dispatch('reading/resetVisitTasks')
// var token = getToken()
// window.location.href = `/noneDicomReading?trialId=${this.trialId}&subjectCode=${res.Result.SubjectCode}&subjectId=${res.Result.SubjectId}&isReadingShowPreviousResults=${this.isReadingShowPreviousResults}&isReadingShowSubjectInfo=${this.isReadingShowSubjectInfo}&criterionType=${this.criterionType}&readingTool=${this.readingTool}&isNewSubject=1&isReadingTaskViewInOrder=${res.Result.IsReadingTaskViewInOrder}&TokenKey=${token}`
// }
if (res.Result.ReadingCategory === 1) {
this.activeName = 'read'
this.tabs = [this.activeName]
}
this.subjectId = res.Result.SubjectId
this.visitTaskId = res.Result.VisitTaskId
this.subjectCode = res.Result.SubjectCode
this.taskBlindName = res.Result.TaskBlindName
this.isExistsClinicalData = res.Result.IsExistsClinicalData
this.isReadClinicalData = res.Result.IsReadClinicalData
this.isNeedReadClinicalData = res.Result.IsNeedReadClinicalData
this.iseCRFShowInDicomReading = res.Result.IseCRFShowInDicomReading
this.isReadingTaskViewInOrder = res.Result.IsReadingTaskViewInOrder
this.isReadingShowSubjectInfo = res.Result.IsReadingShowSubjectInfo
this.isReadingShowPreviousResults = res.Result.IsReadingShowPreviousResults
this.digitPlaces = res.Result.DigitPlaces
localStorage.setItem('digitPlaces', 2)
this.$nextTick(() => {
if (this.isExistsClinicalData && this.isNeedReadClinicalData && !this.isReadClinicalData) {
this.isFullscreen = false
this.dialogVisible = true
this.cdVisitTaskId = this.visitTaskId
}
})
this.isShow = true
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() {
this.loading = true
var visitTaskId = this.visitTaskId
try { try {
await readClinicalData({ visitTaskId }) const params = {
subjectId: this.$route.query.subjectId,
trialId: this.$route.query.trialId,
subjectCode: this.$route.query.subjectCode,
visitTaskId: this.$route.query.visitTaskId,
trialReadingCriterionId: this.$route.query.TrialReadingCriterionId
}
const res = await getNextTask(params)
this.taskInfo = res.Result
localStorage.setItem('taskInfo', JSON.stringify(res.Result))
// if (res.Result.IsExistsClinicalData && res.Result.IsNeedReadClinicalData && !res.Result.IsReadClinicalData) {
// this.isFullscreen = false
// this.dialogVisible = true
// this.cdVisitTaskId = res.Result.visitTaskId
// }
// this.$nextTick(() => {
// if (res.Result.IsFirstChangeTask && res.Result.ReadingTaskState === 0) {
// this.tipVisible = true
// }
// })
this.loading = false this.loading = false
this.dialogVisible = false
this.isReadClinicalData = true
} catch (e) { } catch (e) {
console.log(e)
store.dispatch('reading/setCurrentReadingTaskState', 2)
this.loading = false this.loading = false
} }
},
beforeLeave(activeName, oldActiveName) {
if (!this.tabs.includes(activeName)) {
this.tabs.push(activeName)
} }
if (oldActiveName === 'read') {
this.$nextTick(() => {
if (this.$refs.reportPage) {
// DicomEvent.$emit('getReportInfo', true)
this.$refs.reportPage.setScrollTop(1)
}
})
}
return Promise.resolve(true)
},
} }
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.none-dicom-reading-container{ .reading-viewer-container {
width: 100%; width: 100%;
height: 100%; height: 100%;
display: flex;
flex-direction: column;
.el-dialog{
margin-top: 0px !important;
::v-deep .el-dialog__wrapper{
margin-top: 0px !important;
}
::v-deep .el-dialog__body{
padding: 10px;
}
}
.reading-wrapper{
width: 100%;
height: 100%;
padding: 0 10px;
box-sizing: border-box;
::v-deep.el-tabs{
box-sizing: border-box;
height: 100%;
display: flex;
flex-direction: column;
.el-tabs__item{
// color: #fff;
}
.el-tabs__header{
height: 50px;
margin:0px;
box-sizing: border-box;
}
.el-tabs__content{
flex: 1;
margin:0px;
box-sizing: border-box;
}
.el-tabs__item{
// color: #fff;
}
.el-tab-pane{
height: 100%;
}
}
}
::v-deep.dialog-container{
margin-top: 50px !important;
width:75%;
height:80%;
}
::v-deep.el-dialog__body{
padding: 20px 20px 0 20px;
height: calc(100% - 70px);
}
.el-dialog__header{
position: relative;
}
} }
.full-dialog-container{
::v-deep.is-fullscreen .el-dialog__body{
height: calc(100% - 70px);
}
}
</style> </style>

View File

@ -1,76 +1,347 @@
<template> <template>
<div v-loading="loading" class="reading-viewer-container"> <div ref="container" v-loading="loading" class="none-dicom-reading-container">
<!-- 访视阅片 --> <!-- 访视阅片 -->
<visit-review v-if="taskInfo && taskInfo.ReadingCategory=== 1" /> <div v-if="isShow && readingCategory && readingCategory=== 1" class="reading-wrapper">
<!-- 全局阅片 --> <el-tabs v-model="activeName" :before-leave="beforeLeave">
<global-review v-else-if="taskInfo && taskInfo.ReadingCategory=== 2" /> <!-- 阅片 -->
<!-- 裁判阅片 --> <el-tab-pane :label="$t('trials:reading:tabTitle:review')" name="read">
<ad-review v-else-if="taskInfo && taskInfo.ReadingCategory=== 4" /> <VisitReview
<!-- 肿瘤学阅片 --> :trial-id="trialId"
<oncology-review v-else-if="taskInfo && taskInfo.ReadingCategory=== 5" /> :subject-id="subjectId"
:subject-code="subjectCode"
:visit-task-id="visitTaskId"
:task-blind-name="taskBlindName"
:reading-category="readingCategory"
:readingTool="readingTool"
:criterionType="criterionType"
:isExistsClinicalData="isExistsClinicalData"
:isReadingShowSubjectInfo="isReadingShowSubjectInfo"
:is-reading-task-view-in-order="isReadingTaskViewInOrder"
:iseCRFShowInDicomReading="iseCRFShowInDicomReading"
@previewCD="previewCD"
/>
</el-tab-pane>
<!-- 报告 -->
<el-tab-pane :label="$t('trials:reading:tabTitle:report')" name="report" v-if="!iseCRFShowInDicomReading">
<Report
v-if="tabs.includes('report')"
ref="reportPage"
:trialId="trialId"
:visit-task-id="visitTaskId"
:subject-id="subjectId"
:readingTool="readingTool"
:criterionType="criterionType"
:is-reading-task-view-in-order="isReadingTaskViewInOrder"
/>
</el-tab-pane>
</el-tabs>
</div> </div>
<!-- 全局阅片 -->
<GlobalReview
v-else-if="isShow && readingCategory && readingCategory === 2"
:trial-id="trialId"
:subject-id="subjectId"
:visit-task-id="visitTaskId"
:reading-category="readingCategory"
:subject-code="subjectCode"
:task-blind-name="taskBlindName"
:is-reading-show-subject-info="isReadingShowSubjectInfo"
:is-reading-show-previous-results="isReadingShowPreviousResults"
:is-exists-clinical-data="isExistsClinicalData"
/>
<!-- 裁判阅片 -->
<AdReview
v-else-if="isShow && readingCategory && readingCategory === 4"
:trial-id="trialId"
:subject-id="subjectId"
:visit-task-id="visitTaskId"
:reading-category="readingCategory"
:subject-code="subjectCode"
:task-blind-name="taskBlindName"
:is-reading-show-subject-info="isReadingShowSubjectInfo"
:is-reading-show-previous-results="isReadingShowPreviousResults"
:is-exists-clinical-data="isExistsClinicalData"
/>
<!-- 肿瘤学阅片 -->
<OncologyReview
v-else-if="isShow && readingCategory && readingCategory === 5"
:trial-id="trialId"
:subject-id="subjectId"
:visit-task-id="visitTaskId"
:reading-category="readingCategory"
:subject-code="subjectCode"
:task-blind-name="taskBlindName"
:is-reading-show-subject-info="isReadingShowSubjectInfo"
:is-reading-show-previous-results="isReadingShowPreviousResults"
:is-exists-clinical-data="isExistsClinicalData"
/>
<el-dialog
:visible.sync="dialogVisible"
:custom-class="isFullscreen?'full-dialog-container':'dialog-container'"
:show-close="false"
:close-on-click-modal="false"
:fullscreen="isFullscreen"
>
<span slot="title" class="dialog-footer">
<!-- 当前阅片任务存在临床数据请查看若已查看请点击确认 -->
<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>
<div style="height: 100%;margin:0;display: flex;flex-direction: column;">
<ClinicalData
v-if="dialogVisible"
style="flex: 1"
:trial-id="trialId"
:subject-id="subjectId"
:visit-task-id="cdVisitTaskId"
:is-reading-show-subject-info="isReadingShowSubjectInfo"
/>
<div v-if="!closeCDVisible" style="text-align:right">
<el-button type="primary" @click="handleConfirmCD">{{ $t('trials:reading:button:confirm') }}</el-button>
</div>
</div>
</el-dialog>
</div>
</template> </template>
<script> <script>
import { getNextTask } from '@/api/trials' import { getNextTask, readClinicalData } from '@/api/trials'
import store from '@/store' import store from '@/store'
import VisitReview from '@/views/trials/trials-panel/reading/visit-review' import { changeURLStatic } from '@/utils/history.js'
import DicomEvent from '@/views/trials/trials-panel/reading/dicoms/components/DicomEvent'
import Report from './components/Report'
import VisitReview from './components/VisitReview'
import GlobalReview from '@/views/trials/trials-panel/reading/global-review' import GlobalReview from '@/views/trials/trials-panel/reading/global-review'
import AdReview from '@/views/trials/trials-panel/reading/ad-review' import AdReview from '@/views/trials/trials-panel/reading/ad-review'
import ClinicalData from '@/views/trials/trials-panel/reading/clinical-data'
// import { getToken } from '@/utils/auth'
import OncologyReview from '@/views/trials/trials-panel/reading/oncology-review' import OncologyReview from '@/views/trials/trials-panel/reading/oncology-review'
export default { export default {
name: 'ReadingViewer', name: 'NoneDicomReading',
components: { components: {
VisitReview, VisitReview,
GlobalReview, Report,
AdReview, AdReview,
OncologyReview GlobalReview,
OncologyReview,
ClinicalData
}, },
data() { data() {
return { return {
taskInfo: null, loading: false,
loading: false readingCategory: null,
subjectId: '',
visitTaskId: '',
trialId: '',
subjectCode: '',
taskBlindName: '',
isReadingShowSubjectInfo: false,
isReadingShowPreviousResults: false,
isReadingTaskViewInOrder: false,
isExistsClinicalData: false,
isNeedReadClinicalData: false,
isReadClinicalData: false,
iseCRFShowInDicomReading: false,
criterionType: null,
readingTool: null,
isNewSubject: null,
dialogVisible: false,
closeCDVisible: false,
cdVisitTaskId: '',
isFullscreen: false,
// dialogH: 0,
isShow: false,
activeName:'',
tabs: []
} }
}, },
mounted() { mounted() {
DicomEvent.$on('getNextTask', () => {
this.getTaskInfo() this.getTaskInfo()
})
this.trialId = this.$router.currentRoute.query.trialId
this.subjectCode = this.$router.currentRoute.query.subjectCode
this.subjectId = this.$router.currentRoute.query.subjectId
this.visitTaskId = this.$router.currentRoute.query.visitTaskId
this.isReadingShowSubjectInfo = this.$router.currentRoute.query.isReadingShowSubjectInfo
this.isReadingShowPreviousResults = this.$router.currentRoute.query.isReadingShowPreviousResults
this.isReadingTaskViewInOrder = JSON.parse(this.$router.currentRoute.query.isReadingTaskViewInOrder)
this.criterionType = this.$router.currentRoute.query.criterionType
this.readingTool = this.$router.currentRoute.query.readingTool
this.isNewSubject = this.$router.currentRoute.query.isNewSubject
if (this.isNewSubject && this.isReadingTaskViewInOrder) {
const message = this.$t('trials:reading:noneDicom:message:startRead').replace('xxx', this.subjectCode)
this.$message.success(message)
changeURLStatic('isNewSubject', '')
}
if (this.$router.currentRoute.query.TokenKey) {
store.dispatch('user/setToken', this.$router.currentRoute.query.TokenKey)
changeURLStatic('TokenKey', '')
}
this.getTaskInfo()
this.dialogH = this.$refs['container'].clientHeight - 250 + 'px'
window.addEventListener('resize', () => { this.dialogH = this.$refs['container'].clientHeight - 250 + 'px' })
},
beforeDestroy() {
DicomEvent.$off('getNextTask')
}, },
methods: { methods: {
async getTaskInfo() { getTaskInfo() {
this.loading = true this.loading = true
var param = {
subjectId: this.subjectId,
trialId: this.trialId,
subjectCode: this.subjectCode,
visitTaskId: this.$router.currentRoute.query.visitTaskId,
trialReadingCriterionId: this.$router.currentRoute.query.TrialReadingCriterionId
}
this.isShow = false
getNextTask(param).then(res => {
this.readingCategory = res.Result.ReadingCategory
// if (this.subjectId !== res.Result.SubjectId && this.isReadingTaskViewInOrder) {
// store.dispatch('reading/resetVisitTasks')
// var token = getToken()
// window.location.href = `/noneDicomReading?trialId=${this.trialId}&subjectCode=${res.Result.SubjectCode}&subjectId=${res.Result.SubjectId}&isReadingShowPreviousResults=${this.isReadingShowPreviousResults}&isReadingShowSubjectInfo=${this.isReadingShowSubjectInfo}&criterionType=${this.criterionType}&readingTool=${this.readingTool}&isNewSubject=1&isReadingTaskViewInOrder=${res.Result.IsReadingTaskViewInOrder}&TokenKey=${token}`
// }
if (res.Result.ReadingCategory === 1) {
this.activeName = 'read'
this.tabs = [this.activeName]
}
this.subjectId = res.Result.SubjectId
this.visitTaskId = res.Result.VisitTaskId
this.subjectCode = res.Result.SubjectCode
this.taskBlindName = res.Result.TaskBlindName
this.isExistsClinicalData = res.Result.IsExistsClinicalData
this.isReadClinicalData = res.Result.IsReadClinicalData
this.isNeedReadClinicalData = res.Result.IsNeedReadClinicalData
this.iseCRFShowInDicomReading = res.Result.IseCRFShowInDicomReading
this.isReadingTaskViewInOrder = res.Result.IsReadingTaskViewInOrder
this.isReadingShowSubjectInfo = res.Result.IsReadingShowSubjectInfo
this.isReadingShowPreviousResults = res.Result.IsReadingShowPreviousResults
this.digitPlaces = res.Result.DigitPlaces
localStorage.setItem('digitPlaces', 2)
this.$nextTick(() => {
if (this.isExistsClinicalData && this.isNeedReadClinicalData && !this.isReadClinicalData) {
this.isFullscreen = false
this.dialogVisible = true
this.cdVisitTaskId = this.visitTaskId
}
})
this.isShow = true
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() {
this.loading = true
var visitTaskId = this.visitTaskId
try { try {
const params = { await readClinicalData({ visitTaskId })
subjectId: this.$route.query.subjectId,
trialId: this.$route.query.trialId,
subjectCode: this.$route.query.subjectCode,
visitTaskId: this.$route.query.visitTaskId,
trialReadingCriterionId: this.$route.query.TrialReadingCriterionId
}
const res = await getNextTask(params)
this.taskInfo = res.Result
localStorage.setItem('taskInfo', JSON.stringify(res.Result))
// if (res.Result.IsExistsClinicalData && res.Result.IsNeedReadClinicalData && !res.Result.IsReadClinicalData) {
// this.isFullscreen = false
// this.dialogVisible = true
// this.cdVisitTaskId = res.Result.visitTaskId
// }
// this.$nextTick(() => {
// if (res.Result.IsFirstChangeTask && res.Result.ReadingTaskState === 0) {
// this.tipVisible = true
// }
// })
this.loading = false this.loading = false
this.dialogVisible = false
this.isReadClinicalData = true
} catch (e) { } catch (e) {
console.log(e)
store.dispatch('reading/setCurrentReadingTaskState', 2)
this.loading = false this.loading = false
} }
},
beforeLeave(activeName, oldActiveName) {
if (!this.tabs.includes(activeName)) {
this.tabs.push(activeName)
} }
if (oldActiveName === 'read') {
this.$nextTick(() => {
if (this.$refs.reportPage) {
// DicomEvent.$emit('getReportInfo', true)
this.$refs.reportPage.setScrollTop(1)
}
})
}
return Promise.resolve(true)
},
} }
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.reading-viewer-container { .none-dicom-reading-container{
width: 100%; width: 100%;
height: 100%; height: 100%;
display: flex;
flex-direction: column;
.el-dialog{
margin-top: 0px !important;
::v-deep .el-dialog__wrapper{
margin-top: 0px !important;
}
::v-deep .el-dialog__body{
padding: 10px;
}
}
.reading-wrapper{
width: 100%;
height: 100%;
padding: 0 10px;
box-sizing: border-box;
::v-deep.el-tabs{
box-sizing: border-box;
height: 100%;
display: flex;
flex-direction: column;
.el-tabs__item{
// color: #fff;
}
.el-tabs__header{
height: 50px;
margin:0px;
box-sizing: border-box;
}
.el-tabs__content{
flex: 1;
margin:0px;
box-sizing: border-box;
}
.el-tabs__item{
// color: #fff;
}
.el-tab-pane{
height: 100%;
}
}
}
::v-deep.dialog-container{
margin-top: 50px !important;
width:75%;
height:80%;
}
::v-deep.el-dialog__body{
padding: 20px 20px 0 20px;
height: calc(100% - 70px);
}
.el-dialog__header{
position: relative;
}
} }
.full-dialog-container{
::v-deep.is-fullscreen .el-dialog__body{
height: calc(100% - 70px);
}
}
</style> </style>