阅片页面查看检查部位
continuous-integration/drone/push Build is passing Details

uat
wangxiaoshuang 2025-09-16 16:36:29 +08:00
parent 3b8505ba3a
commit 5ae8348765
4 changed files with 46 additions and 12 deletions

View File

@ -3044,7 +3044,13 @@ export function readClinicalData(param) {
data: param
})
}
export function viewstudyPart(param) {
return request({
url: `/ReadingImageTask/viewstudyPart`,
method: 'post',
data: param
})
}
export function getCustomQuestionPreview(param) {
return request({
url: `/ReadingQuestion/getCustomQuestionPreview`,

View File

@ -874,9 +874,14 @@ const actions = {
var keyImages = []
getReadingVisitStudyList(obj.trialId, obj.subjectVisitId, obj.visitTaskId).then(res => {
try {
state.BodyPart = []
res.Result.forEach(async item => {
let arr = await getBodyPart(item.BodyPartForEdit, item.BodyPartForEditOther)
state.BodyPart[item.StudyId] = arr
state.BodyPart.push({
StudyId: item.StudyId,
StudyCode: item.StudyCode,
BodyPart: arr
})
})
} catch (err) {
console.log(err)

View File

@ -2012,7 +2012,7 @@ export default {
e.preventDefault()
},
handleViewBP(e) {
DicomEvent.$emit('previewBP', this.series.studyId)
DicomEvent.$emit('previewBP', this.stack.visitTaskId)
e.stopImmediatePropagation()
e.stopPropagation()
e.preventDefault()

View File

@ -134,10 +134,18 @@
</div>
</span>
<div style="height: 100%;margin:0;display: flex;flex-direction: column;">
<span>{{ Array.isArray(this.BodyPartForEdit) ? this.BodyPartForEdit.join("|") : '' }}</span>
<div style="text-align:right">
<el-table :data="BodyPart" style="width: 100%">
<el-table-column prop="StudyCode" :label="$t('trials:reading:table:StudyCode')">
</el-table-column>
<el-table-column prop="BodyPart" :label="$t('trials:reading:table:BodyPart')">
<template slot-scope="scope">
<span>{{ Array.isArray(scope.row.BodyPart) ? scope.row.BodyPart.join(" | ") : '' }}</span>
</template>
</el-table-column>
</el-table>
<div style="text-align:right;margin-top: 10px;">
<!-- 确认 -->
<el-button type="primary" @click="dialogBodyPartVisible = false">{{ $t('trials:reading:button:confirm')
<el-button type="primary" @click="handleConfirmBP">{{ $t('trials:reading:button:confirm')
}}</el-button>
</div>
</div>
@ -145,7 +153,7 @@
</div>
</template>
<script>
import { getNextTask, readClinicalData, verifyDefaultQuestionBeAnswer } from '@/api/trials'
import { getNextTask, readClinicalData, verifyDefaultQuestionBeAnswer, viewstudyPart } from '@/api/trials'
import VisitReview from './../dicoms3D/components/VisitReview'
import ReadPage from './components/ReadPage'
import CustomizeReadPage from './customize/CustomizeReadPage'
@ -209,8 +217,7 @@ export default {
closeCDVisible: false,
cdVisitTaskId: '',
readingVersionEnum: null,
dialogBodyPartVisible: false,
BodyPartForEdit: []
dialogBodyPartVisible: false
}
},
computed: {
@ -242,9 +249,7 @@ export default {
this.dialogVisible = true
this.cdVisitTaskId = taskId
})
DicomEvent.$on('previewBP', (studyId) => {
console.log(this.BodyPart, 'this.BodyPart')
this.BodyPartForEdit = this.BodyPart[studyId]
DicomEvent.$on('previewBP', (taskId) => {
this.isFullscreen = false
this.dialogBodyPartVisible = true
})
@ -278,6 +283,7 @@ export default {
beforeDestroy() {
DicomEvent.$off('getNextTask')
DicomEvent.$off('previewCD')
DicomEvent.$off('previewBP')
DicomEvent.$emit('resetOpenWindow')
window.removeEventListener('beforeunload', this.handleWindowClose)
},
@ -320,6 +326,7 @@ export default {
this.isExistsClinicalData = res.Result.IsExistsClinicalData
this.isExistsManual = res.Result.ExistsManual
this.isReadClinicalData = res.Result.IsReadClinicalData
this.IsViewStudyPart = res.Result.IsViewStudyPart
this.isNeedReadClinicalData = res.Result.IsNeedReadClinicalData
this.CriterionType = res.Result.CriterionType
this.digitPlaces = res.Result.DigitPlaces
@ -340,6 +347,10 @@ export default {
this.dialogVisible = true
this.cdVisitTaskId = this.visitTaskId
}
if ((this.CriterionType === 19 || this.CriterionType === 20) && !this.IsViewStudyPart) {
this.isFullscreen = false
this.dialogBodyPartVisible = true
}
if (res.Result.ReadingCategory === 1) {
this.activeName = 'read'
this.tabs = [this.activeName]
@ -485,6 +496,18 @@ export default {
this.loading = false
}
},
async handleConfirmBP() {
this.loading = true
var visitTaskId = this.visitTaskId
try {
await viewstudyPart({ visitTaskId })
this.loading = false
this.dialogBodyPartVisible = false
this.IsViewStudyPart = true
} catch (e) {
this.loading = false
}
},
previewCD() {
this.closeCDVisible = true
this.isFullscreen = false