阅片页面查看检查部位
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 data: param
}) })
} }
export function viewstudyPart(param) {
return request({
url: `/ReadingImageTask/viewstudyPart`,
method: 'post',
data: param
})
}
export function getCustomQuestionPreview(param) { export function getCustomQuestionPreview(param) {
return request({ return request({
url: `/ReadingQuestion/getCustomQuestionPreview`, url: `/ReadingQuestion/getCustomQuestionPreview`,

View File

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

View File

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

View File

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