Merge branch 'main' of https://gitea.frp.extimaging.com/XCKJ/irc_web
continuous-integration/drone/push Build is passing Details

uat
wangxiaoshuang 2025-04-18 09:55:17 +08:00
commit dd1fb94562
4 changed files with 223 additions and 88 deletions

View File

@ -132,7 +132,7 @@
<!-- 反色 --> <!-- 反色 -->
<div <div
class="tool-item" class="tool-item"
:title="$t('trials:reading:button:reset')" :title="$t('trials:reading:button:reverseColor')"
@click.prevent="toggleInvert" @click.prevent="toggleInvert"
> >
<svg-icon icon-class="reversecolor" class="svg-icon" /> <svg-icon icon-class="reversecolor" class="svg-icon" />
@ -318,12 +318,18 @@
</div> </div>
<!-- 表单 --> <!-- 表单 -->
<div class="right-panel"> <div class="right-panel">
<div
v-for="s in visitTaskList"
v-show="lastViewportTaskId === s.VisitTaskId"
:key="s.VisitTaskId"
style="height:100%;"
>
<mRecisit <mRecisit
v-if="lastViewportTaskId && citerionType === 7" v-if="lastViewportTaskId && citerionType === 7 && lastViewportTaskIds.includes(s.VisitTaskId)"
ref="ecrf" :ref="`ecrf_${s.VisitTaskId}`"
:reading-task-state="currentVisitInfo.VisitTaskId === taskInfo.VisitTaskId ? readingTaskState : 2" :reading-task-state="currentVisitInfo.VisitTaskId === taskInfo.VisitTaskId ? readingTaskState : 2"
:last-viewport-task-id="lastViewportTaskId" :last-viewport-task-id="lastViewportTaskId"
:visit-info="currentVisitInfo" :visit-info="s"
@removeAnnotation="removeAnnotation" @removeAnnotation="removeAnnotation"
@getScreenshots="getScreenshots" @getScreenshots="getScreenshots"
@setMarkName="setMarkName" @setMarkName="setMarkName"
@ -333,6 +339,8 @@
@setToolToTarget="setToolToTarget" @setToolToTarget="setToolToTarget"
/> />
</div> </div>
</div>
<!-- 自定义调窗 --> <!-- 自定义调窗 -->
<el-dialog <el-dialog
v-if="customWwc.visible" v-if="customWwc.visible"
@ -564,7 +572,8 @@ export default {
cdVisitTaskId: '', cdVisitTaskId: '',
lastViewportTaskId: '', lastViewportTaskId: '',
digitPlaces: 2, digitPlaces: 2,
instanceInfo: {} instanceInfo: {},
lastViewportTaskIds: []
} }
}, },
computed: { computed: {
@ -618,17 +627,33 @@ export default {
immediate: true, immediate: true,
handler(id) { handler(id) {
if (!id) return if (!id) return
if (this.readingTaskState === 2) return if (!this.lastViewportTaskIds.includes(id)) {
if (id !== this.taskInfo.VisitTaskId) { this.lastViewportTaskIds.push(id)
const taskIdx = this.visitTaskList.findIndex(i => i.VisitTaskId === this.taskInfo.VisitTaskId)
const annotationUIDs = this.visitTaskList[taskIdx].AnnotationUIDs
const annotations = cornerstoneTools.annotation.state.getAllAnnotations()
annotations.forEach(i => {
if (!(annotationUIDs.includes(i.annotationUID)) && i.visitTaskId === this.taskInfo.VisitTaskId) {
cornerstoneTools.annotation.state.removeAnnotation(i.annotationUID)
}
})
} }
// if (this.readingTaskState === 2) return
// if (id !== this.taskInfo.VisitTaskId) {
// const taskIdx = this.visitTaskList.findIndex(i => i.VisitTaskId === this.taskInfo.VisitTaskId)
// // const annotationUIDs = this.visitTaskList[taskIdx].AnnotationUIDs
// const annotations = cornerstoneTools.annotation.state.getAllAnnotations()
// // const annotations = this.visitTaskList[taskIdx].Annotations
// annotations.forEach(i => {
// if (i.visitTaskId === this.taskInfo.VisitTaskId) {
// cornerstoneTools.annotation.state.removeAnnotation(i.annotationUID)
// let idx = this.visitTaskList[taskIdx].Annotations.findIndex(v=>v.MeasureData && v.MeasureData.annotationUID === i.annotationUID)
// console.log('123',idx)
// if (idx > -1) {
// cornerstoneTools.annotation.state.addAnnotation(this.visitTaskList[taskIdx].Annotations[idx].MeasureData)
// }
// }
// })
// // const annotations = cornerstoneTools.annotation.state.getAllAnnotations()
// // annotations.forEach(i => {
// // if (!(annotationUIDs.includes(i.annotationUID)) && i.visitTaskId === this.taskInfo.VisitTaskId) {
// // cornerstoneTools.annotation.state.removeAnnotation(i.annotationUID)
// // }
// // })
// }
} }
} }
}, },
@ -741,8 +766,8 @@ export default {
} else { } else {
// //
for (let i = 0; i < nFrames; i++) { for (let i = 0; i < nFrames; i++) {
const newImageId = `wadouri:${this.OSSclientConfig.basePath}${instance.Path}?instanceId=${instance.Id}&visitTaskId=${taskId}&frame=${i + 1}`; const newImageId = `wadouri:${this.OSSclientConfig.basePath}${instance.Path}?instanceId=${instance.Id}&visitTaskId=${taskId}&frame=${i + 1}`
imageIds.push(newImageId); imageIds.push(newImageId)
} }
} }
this.instanceInfo[instance.Id] = { taskIndex, studyIndex, seriesIndex } this.instanceInfo[instance.Id] = { taskIndex, studyIndex, seriesIndex }
@ -763,10 +788,10 @@ export default {
keyImages.forEach(instance => { keyImages.forEach(instance => {
if (instance.KeyFramesList.length > 0) { if (instance.KeyFramesList.length > 0) {
instance.KeyFramesList.map(i => { instance.KeyFramesList.map(i => {
keyImageIds.push(`wadouri:${this.OSSclientConfig.basePath}${instance.Path}?frame=${i}&instanceId=${instance.Id}&visitTaskId=${taskId}`) keyImageIds.push(`wadouri:${this.OSSclientConfig.basePath}${instance.Path}?instanceId=${instance.Id}&visitTaskId=${taskId}&frame=${i}`)
}) })
} else { } else {
keyImageIds.push(`wadouri:${this.OSSclientConfig.basePath}${instance.Path}?frame=0&instanceId=${instance.Id}&visitTaskId=${taskId}`) keyImageIds.push(`wadouri:${this.OSSclientConfig.basePath}${instance.Path}?instanceId=${instance.Id}&visitTaskId=${taskId}`)
} }
}) })
res1.Result[keyStudyIndex].SeriesList[keySeriesIndex].ImageIds = keyImageIds res1.Result[keyStudyIndex].SeriesList[keySeriesIndex].ImageIds = keyImageIds
@ -1012,7 +1037,7 @@ export default {
++loadedImageCount ++loadedImageCount
this.$set(series, 'LoadedImageCount', loadedImageCount) this.$set(series, 'LoadedImageCount', loadedImageCount)
} }
let newLoadedImageProgress = series.LoadedImageProgress - this.instanceInfo[instanceId].percentComplete + percentComplete const newLoadedImageProgress = series.LoadedImageProgress - this.instanceInfo[instanceId].percentComplete + percentComplete
this.instanceInfo[instanceId].percentComplete = percentComplete this.instanceInfo[instanceId].percentComplete = percentComplete
this.$set(series, 'LoadedImageProgress', newLoadedImageProgress) this.$set(series, 'LoadedImageProgress', newLoadedImageProgress)
}, },
@ -1048,7 +1073,6 @@ export default {
} }
} }
}) })
}, },
addAnnotationListeners() { addAnnotationListeners() {
console.log(toolsEvents) console.log(toolsEvents)
@ -1077,7 +1101,6 @@ export default {
// toolsEvents.TOOL_MODE_CHANGED, // toolsEvents.TOOL_MODE_CHANGED,
// this.toolModeChanged // this.toolModeChanged
// ) // )
}, },
toolModeChanged(e) { toolModeChanged(e) {
console.log(e) console.log(e)
@ -1105,7 +1128,8 @@ export default {
annotation.sliceThickness = series.SliceThickness annotation.sliceThickness = series.SliceThickness
annotation.numberOfFrames = isNaN(parseInt(params.frame)) ? null : parseInt(params.frame) annotation.numberOfFrames = isNaN(parseInt(params.frame)) ? null : parseInt(params.frame)
annotation.markTool = annotation.metadata.toolName annotation.markTool = annotation.metadata.toolName
this.$refs['ecrf'].setAnnotation({ annotation, toolName: annotation.metadata.toolName }) // this.$refs['ecrf'].setAnnotation({ annotation, toolName: annotation.metadata.toolName })
this.$refs[`ecrf_${this.lastViewportTaskId}`][0].setAnnotation({ annotation, toolName: annotation.metadata.toolName })
} }
this.setToolsPassive() this.setToolsPassive()
}, },
@ -1117,7 +1141,8 @@ export default {
if (annotation.metadata.toolName === 'PlanarFreehandROI' && !annotation.data.contour.closed) return if (annotation.metadata.toolName === 'PlanarFreehandROI' && !annotation.data.contour.closed) return
const series = this.$refs[`viewport-${this.activeViewportIndex}`][0].series const series = this.$refs[`viewport-${this.activeViewportIndex}`][0].series
if (series && series.TaskInfo.VisitTaskId && series.TaskInfo.VisitTaskId === this.taskInfo.VisitTaskId) { if (series && series.TaskInfo.VisitTaskId && series.TaskInfo.VisitTaskId === this.taskInfo.VisitTaskId) {
this.$refs['ecrf'].modifyAnnotation({ annotation, toolName: annotation.metadata.toolName }) // this.$refs['ecrf'].modifyAnnotation({ annotation, toolName: annotation.metadata.toolName })
this.$refs[`ecrf_${this.lastViewportTaskId}`][0].modifyAnnotation({ annotation, toolName: annotation.metadata.toolName })
} }
this.setToolsPassive() this.setToolsPassive()
}, },
@ -1164,7 +1189,7 @@ export default {
} }
return i return i
}) })
this.$set(this.visitTaskList[taskIdx], 'annotations', annotations) this.$set(this.visitTaskList[taskIdx], 'Annotations', annotations)
// //
const arr = cornerstoneTools.annotation.state.getAllAnnotations() const arr = cornerstoneTools.annotation.state.getAllAnnotations()
arr.map(i => { arr.map(i => {
@ -1371,7 +1396,8 @@ export default {
this.setToolEnabled() this.setToolEnabled()
} }
} else { } else {
const obj = this.$refs['ecrf'].validTool(toolName, true) // const obj = this.$refs['ecrf'].validTool(toolName, true)
const obj = this.$refs[`ecrf_${this.lastViewportTaskId}`][0].validTool(toolName, true)
this.tools[i].disabledReason = obj.reason this.tools[i].disabledReason = obj.reason
if (!obj.isCanActiveTool) { if (!obj.isCanActiveTool) {
if (this.activeTool === toolName) { if (this.activeTool === toolName) {
@ -1424,6 +1450,8 @@ export default {
const viewport = renderingEngine.getViewport(viewportId) const viewport = renderingEngine.getViewport(viewportId)
this.$refs[`viewport-${this.activeViewportIndex}`][0].resetOrientationMarkers() this.$refs[`viewport-${this.activeViewportIndex}`][0].resetOrientationMarkers()
viewport.resetCamera({ resetPan: true, resetZoom: true, resetToCenter: true }) viewport.resetCamera({ resetPan: true, resetZoom: true, resetToCenter: true })
viewport.resetProperties()
viewport.render()
renderingEngine.render() renderingEngine.render()
}, },
// //

View File

@ -257,27 +257,30 @@ export default {
...mapGetters(['language']) ...mapGetters(['language'])
}, },
watch: { watch: {
lastViewportTaskId: { // lastViewportTaskId: {
immediate: true, // immediate: true,
handler(id) { // handler(id) {
if (!id) return // if (!id) return
this.visitTaskId = id // this.visitTaskId = id
this.$nextTick(() => { // this.$nextTick(() => {
this.activeName = '' // this.activeName = ''
this.getOuterQuestions() // this.getOuterQuestions()
this.getTableQuestions() // this.getTableQuestions()
}) // })
} // }
} // }
}, },
mounted() { mounted() {
this.trialId = this.$route.query.trialId this.trialId = this.$route.query.trialId
this.visitTaskId = this.visitInfo.VisitTaskId
this.taskInfo = JSON.parse(localStorage.getItem('taskInfo')) this.taskInfo = JSON.parse(localStorage.getItem('taskInfo'))
this.isBaseLineTask = this.taskInfo.IsBaseLine this.isBaseLineTask = this.taskInfo.IsBaseLine
this.criterionType = this.taskInfo.CriterionType this.criterionType = this.taskInfo.CriterionType
const digitPlaces = Number(localStorage.getItem('digitPlaces')) const digitPlaces = Number(localStorage.getItem('digitPlaces'))
this.digitPlaces = digitPlaces === -1 ? this.digitPlaces : digitPlaces this.digitPlaces = digitPlaces === -1 ? this.digitPlaces : digitPlaces
this.getOrganList() this.getOrganList()
this.getOuterQuestions()
this.getTableQuestions()
}, },
methods: { methods: {
// //
@ -482,22 +485,24 @@ export default {
) )
if (typeof targetTable !== 'object') return if (typeof targetTable !== 'object') return
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'MeasureData', annotation) this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'MeasureData', annotation)
let length = null
let short = null
if (obj.toolName === 'Length') { if (obj.toolName === 'Length') {
const referencedImageId = annotation.metadata.referencedImageId const referencedImageId = annotation.metadata.referencedImageId
let length = annotation.data.cachedStats[`imageId:${referencedImageId}`].length length = annotation.data.cachedStats[`imageId:${referencedImageId}`].length
length = length ? parseFloat(length).toFixed(this.digitPlaces) : length length = length ? parseFloat(length).toFixed(this.digitPlaces) : length
const lengthId = this.getQuestionId(0, targetTable.TableQuestions.Questions) const lengthId = this.getQuestionId(0, targetTable.TableQuestions.Questions)
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'LesionLength', length) this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'LesionLength', length)
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], lengthId, length) this.$set(this.innerFormData[`${tableId}_${rowIndex}`], lengthId, length)
} else if (obj.toolName === 'Bidirectional') { } else if (obj.toolName === 'Bidirectional') {
const referencedImageId = annotation.metadata.referencedImageId const referencedImageId = annotation.metadata.referencedImageId
let length = annotation.data.cachedStats[`imageId:${referencedImageId}`].length length = annotation.data.cachedStats[`imageId:${referencedImageId}`].length
length = length ? parseFloat(length).toFixed(this.digitPlaces) : length length = length ? parseFloat(length).toFixed(this.digitPlaces) : length
const lengthId = this.getQuestionId(0, targetTable.TableQuestions.Questions) const lengthId = this.getQuestionId(0, targetTable.TableQuestions.Questions)
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'LesionLength', length) this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'LesionLength', length)
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], lengthId, length) this.$set(this.innerFormData[`${tableId}_${rowIndex}`], lengthId, length)
let short = annotation.data.cachedStats[`imageId:${referencedImageId}`].width short = annotation.data.cachedStats[`imageId:${referencedImageId}`].width
short = short ? parseFloat(short).toFixed(this.digitPlaces) : short short = short ? parseFloat(short).toFixed(this.digitPlaces) : short
const shortId = this.getQuestionId(1, targetTable.TableQuestions.Questions) const shortId = this.getQuestionId(1, targetTable.TableQuestions.Questions)
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'LesionShort', short) this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'LesionShort', short)
@ -510,6 +515,24 @@ export default {
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'LesionState', 0) this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'LesionState', 0)
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], stateId, 0) this.$set(this.innerFormData[`${tableId}_${rowIndex}`], stateId, 0)
} }
if (!(innerForm.IsCurrentTaskAdd === 'True')) {
// 线>=10mm>=10mm
if (!this.isBaseLineTask && ((obj.toolName === 'Length' && length >= 10) || (obj.toolName === 'Bidirectional' && short >= 10))) {
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'LesionState', 0)
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], stateId, 0)
}
// 线<10mm<10mm
if (!this.isBaseLineTask && ((obj.toolName === 'Length' && length < 10) || (obj.toolName === 'Bidirectional' && short < 10))) {
const stateId = this.getQuestionId(7)
if (innerForm.IsLymphNodes) {
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'LesionState', 3)
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], stateId, 3)
} else if (innerForm.IsLymphNodes === 0) {
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'LesionState', 0)
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], stateId, 0)
}
}
}
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'SaveTypeEnum', innerForm.RowId ? 1 : 0) this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'SaveTypeEnum', innerForm.RowId ? 1 : 0)
this.$emit('setMarkName', { this.$emit('setMarkName', {
annotationUID: annotation.annotationUID, annotationUID: annotation.annotationUID,
@ -546,22 +569,24 @@ export default {
) )
if (typeof targetTable !== 'object') return if (typeof targetTable !== 'object') return
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'MeasureData', annotation) this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'MeasureData', annotation)
let length = null
let short = null
if (toolName === 'Length') { if (toolName === 'Length') {
const referencedImageId = annotation.metadata.referencedImageId const referencedImageId = annotation.metadata.referencedImageId
let length = annotation.data.cachedStats[`imageId:${referencedImageId}`].length length = annotation.data.cachedStats[`imageId:${referencedImageId}`].length
length = length ? parseFloat(length).toFixed(this.digitPlaces) : length length = length ? parseFloat(length).toFixed(this.digitPlaces) : length
const lengthId = this.getQuestionId(0, targetTable.TableQuestions.Questions) const lengthId = this.getQuestionId(0, targetTable.TableQuestions.Questions)
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'LesionLength', length) this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'LesionLength', length)
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], lengthId, length) this.$set(this.innerFormData[`${tableId}_${rowIndex}`], lengthId, length)
} else if (toolName === 'Bidirectional') { } else if (toolName === 'Bidirectional') {
const referencedImageId = annotation.metadata.referencedImageId const referencedImageId = annotation.metadata.referencedImageId
let length = annotation.data.cachedStats[`imageId:${referencedImageId}`].length length = annotation.data.cachedStats[`imageId:${referencedImageId}`].length
length = length ? parseFloat(length).toFixed(this.digitPlaces) : length length = length ? parseFloat(length).toFixed(this.digitPlaces) : length
const lengthId = this.getQuestionId(0, targetTable.TableQuestions.Questions) const lengthId = this.getQuestionId(0, targetTable.TableQuestions.Questions)
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'LesionLength', length) this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'LesionLength', length)
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], lengthId, length) this.$set(this.innerFormData[`${tableId}_${rowIndex}`], lengthId, length)
let short = annotation.data.cachedStats[`imageId:${referencedImageId}`].width short = annotation.data.cachedStats[`imageId:${referencedImageId}`].width
short = short ? parseFloat(short).toFixed(this.digitPlaces) : short short = short ? parseFloat(short).toFixed(this.digitPlaces) : short
const shortId = this.getQuestionId(1, targetTable.TableQuestions.Questions) const shortId = this.getQuestionId(1, targetTable.TableQuestions.Questions)
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'LesionShort', short) this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'LesionShort', short)
@ -574,6 +599,26 @@ export default {
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'LesionState', 0) this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'LesionState', 0)
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], stateId, 0) this.$set(this.innerFormData[`${tableId}_${rowIndex}`], stateId, 0)
} }
const isCurrentTaskAdd = this.innerFormData[`${tableId}_${rowIndex}`].IsCurrentTaskAdd
const isLymphNodes = this.innerFormData[`${tableId}_${rowIndex}`].IsLymphNodes
if (!(isCurrentTaskAdd === 'True')) {
// 线>=10mm>=10mm
if (!this.isBaseLineTask && ((toolName === 'Length' && length >= 10) || (toolName === 'Bidirectional' && short >= 10))) {
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'LesionState', 0)
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], stateId, 0)
}
// 线<10mm<10mm
if (!this.isBaseLineTask && ((toolName === 'Length' && length < 10) || (toolName === 'Bidirectional' && short < 10))) {
const stateId = this.getQuestionId(7)
if (isLymphNodes) {
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'LesionState', 3)
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], stateId, 3)
} else if (isLymphNodes === 0) {
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'LesionState', 0)
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], stateId, 0)
}
}
}
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'SaveTypeEnum', formData.RowId ? 1 : 0) this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'SaveTypeEnum', formData.RowId ? 1 : 0)
this.activeName = `${tableId}_${rowIndex}` this.activeName = `${tableId}_${rowIndex}`
}, },
@ -654,7 +699,11 @@ export default {
} }
) )
} }
this.innerFormData[`${tableInfo.Id}_${answer.RowIndex}`] = answer this.$set(this.innerFormData, `${tableInfo.Id}_${answer.RowIndex}`, {})
for (const key in answer) {
this.$set(this.innerFormData[`${tableInfo.Id}_${answer.RowIndex}`], key, answer[key])
}
// this.innerFormData[`${tableInfo.Id}_${answer.RowIndex}`] = answer
this.activeName = `${tableInfo.Id}_${answer.RowIndex}` this.activeName = `${tableInfo.Id}_${answer.RowIndex}`
}, },
// //
@ -774,7 +823,7 @@ export default {
let lesionShort = innerForm.LesionShort let lesionShort = innerForm.LesionShort
const lymphNodes = innerForm.IsLymphNodes const lymphNodes = innerForm.IsLymphNodes
const lesionType = table.LesionType const lesionType = table.LesionType
const lesionPart = innerForm.LesionPart // const lesionPart = innerForm.LesionPart
if (this.isBaseLineTask) { if (this.isBaseLineTask) {
// 线 // 线
// 0 // 0
@ -1247,8 +1296,12 @@ export default {
if (res.IsSuccess) { if (res.IsSuccess) {
// //
this.$message.success(this.$t('common:message:savedSuccessfully')) this.$message.success(this.$t('common:message:savedSuccessfully'))
this.getTableQuestions() // this.getTableQuestions()
this.$emit('getAnnotations', this.visitTaskId) // this.$emit('getAnnotations', this.visitTaskId)
if (!this.innerFormData[`${table.Id}_${rowIndex}`].RowId) {
this.$set(this.innerFormData[`${table.Id}_${rowIndex}`], 'RowId', res.Result.RowId)
}
this.$set(this.innerFormData[`${table.Id}_${rowIndex}`], 'SaveTypeEnum', 2)
} }
loading.close() loading.close()
}, },

View File

@ -275,7 +275,7 @@ import { getAutoCutNextTask } from '@/api/user'
import const_ from '@/const/sign-code' import const_ from '@/const/sign-code'
import SignForm from '@/views/trials/components/newSignForm' import SignForm from '@/views/trials/components/newSignForm'
import { getToken } from '@/utils/auth' import { getToken } from '@/utils/auth'
import store from '@/store' // import store from '@/store'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import { changeURLStatic } from '@/utils/history.js' import { changeURLStatic } from '@/utils/history.js'
import AdditionalAssessment from '@/views/trials/trials-panel/reading/dicoms/components/AdditionalAssessment' import AdditionalAssessment from '@/views/trials/trials-panel/reading/dicoms/components/AdditionalAssessment'
@ -422,7 +422,6 @@ export default {
} else { } else {
this.expandedRows.push(item.Id) this.expandedRows.push(item.Id)
} }
} else { } else {
this.expandedRows.push(item.Id) this.expandedRows.push(item.Id)
} }
@ -518,10 +517,10 @@ export default {
var liverSegmentIdx = item.Childrens.findIndex(i => i.QuestionMark === 1106) var liverSegmentIdx = item.Childrens.findIndex(i => i.QuestionMark === 1106)
if (liverSegmentIdx > -1) { if (liverSegmentIdx > -1) {
if (item.Childrens[liverSegmentIdx].Answer.length > 0) { if (item.Childrens[liverSegmentIdx].Answer.length > 0) {
let v = item.Childrens[liverSegmentIdx].Answer[0].Answer const v = item.Childrens[liverSegmentIdx].Answer[0].Answer
obj.QuestionName = this.$fd(item.Childrens[liverSegmentIdx].DictionaryCode, parseInt(v)) obj.QuestionName = this.$fd(item.Childrens[liverSegmentIdx].DictionaryCode, parseInt(v))
let Answers = {} const Answers = {}
let mean = item.Childrens.findIndex(i => i.QuestionMark === 1104) const mean = item.Childrens.findIndex(i => i.QuestionMark === 1104)
if (mean > -1) { if (mean > -1) {
this.visitTaskList.forEach(v => { this.visitTaskList.forEach(v => {
const o = item.Childrens[mean].Answer.find(v1 => { const o = item.Childrens[mean].Answer.find(v1 => {

View File

@ -257,27 +257,30 @@ export default {
...mapGetters(['language']) ...mapGetters(['language'])
}, },
watch: { watch: {
lastViewportTaskId: { // lastViewportTaskId: {
immediate: true, // immediate: true,
handler(id) { // handler(id) {
if (!id) return // if (!id) return
this.visitTaskId = id // this.visitTaskId = id
this.$nextTick(() => { // this.$nextTick(() => {
this.activeName = '' // this.activeName = ''
this.getOuterQuestions() // this.getOuterQuestions()
this.getTableQuestions() // this.getTableQuestions()
}) // })
} // }
} // }
}, },
mounted() { mounted() {
this.trialId = this.$route.query.trialId this.trialId = this.$route.query.trialId
this.visitTaskId = this.visitInfo.VisitTaskId
this.taskInfo = JSON.parse(localStorage.getItem('taskInfo')) this.taskInfo = JSON.parse(localStorage.getItem('taskInfo'))
this.isBaseLineTask = this.taskInfo.IsBaseLine this.isBaseLineTask = this.taskInfo.IsBaseLine
this.criterionType = this.taskInfo.CriterionType this.criterionType = this.taskInfo.CriterionType
const digitPlaces = Number(localStorage.getItem('digitPlaces')) const digitPlaces = Number(localStorage.getItem('digitPlaces'))
this.digitPlaces = digitPlaces === -1 ? this.digitPlaces : digitPlaces this.digitPlaces = digitPlaces === -1 ? this.digitPlaces : digitPlaces
this.getOrganList() this.getOrganList()
this.getOuterQuestions()
this.getTableQuestions()
}, },
methods: { methods: {
// //
@ -487,22 +490,24 @@ export default {
) )
if (typeof targetTable !== 'object') return if (typeof targetTable !== 'object') return
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'MeasureData', annotation) this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'MeasureData', annotation)
let length = null
let short = null
if (obj.toolName === 'Length') { if (obj.toolName === 'Length') {
const referencedImageId = annotation.metadata.referencedImageId const referencedImageId = annotation.metadata.referencedImageId
let length = annotation.data.cachedStats[`imageId:${referencedImageId}`].length length = annotation.data.cachedStats[`imageId:${referencedImageId}`].length
length = length ? parseFloat(length).toFixed(this.digitPlaces) : length length = length ? parseFloat(length).toFixed(this.digitPlaces) : length
const lengthId = this.getQuestionId(0, targetTable.TableQuestions.Questions) const lengthId = this.getQuestionId(0, targetTable.TableQuestions.Questions)
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'LesionLength', length) this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'LesionLength', length)
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], lengthId, length) this.$set(this.innerFormData[`${tableId}_${rowIndex}`], lengthId, length)
} else if (obj.toolName === 'Bidirectional') { } else if (obj.toolName === 'Bidirectional') {
const referencedImageId = annotation.metadata.referencedImageId const referencedImageId = annotation.metadata.referencedImageId
let length = annotation.data.cachedStats[`imageId:${referencedImageId}`].length length = annotation.data.cachedStats[`imageId:${referencedImageId}`].length
length = length ? parseFloat(length).toFixed(this.digitPlaces) : length length = length ? parseFloat(length).toFixed(this.digitPlaces) : length
const lengthId = this.getQuestionId(0, targetTable.TableQuestions.Questions) const lengthId = this.getQuestionId(0, targetTable.TableQuestions.Questions)
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'LesionLength', length) this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'LesionLength', length)
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], lengthId, length) this.$set(this.innerFormData[`${tableId}_${rowIndex}`], lengthId, length)
let short = annotation.data.cachedStats[`imageId:${referencedImageId}`].width short = annotation.data.cachedStats[`imageId:${referencedImageId}`].width
short = short ? parseFloat(short).toFixed(this.digitPlaces) : short short = short ? parseFloat(short).toFixed(this.digitPlaces) : short
const shortId = this.getQuestionId(1, targetTable.TableQuestions.Questions) const shortId = this.getQuestionId(1, targetTable.TableQuestions.Questions)
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'LesionShort', short) this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'LesionShort', short)
@ -520,6 +525,25 @@ export default {
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'LesionState', 0) this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'LesionState', 0)
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], stateId, 0) this.$set(this.innerFormData[`${tableId}_${rowIndex}`], stateId, 0)
} }
if (!(innerForm.IsCurrentTaskAdd === 'True')) {
// 线>=10mm>=10mm
if (!this.isBaseLineTask && ((obj.toolName === 'Length' && length >= 10) || (obj.toolName === 'Bidirectional' && short >= 10))) {
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'LesionState', 0)
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], stateId, 0)
}
// 线<10mm<10mm
if (!this.isBaseLineTask && ((obj.toolName === 'Length' && length < 10) || (obj.toolName === 'Bidirectional' && short < 10))) {
const stateId = this.getQuestionId(7)
if (innerForm.IsLymphNodes) {
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'LesionState', 3)
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], stateId, 3)
} else if (innerForm.IsLymphNodes === 0) {
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'LesionState', 0)
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], stateId, 0)
}
}
}
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'SaveTypeEnum', innerForm.RowId ? 1 : 0) this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'SaveTypeEnum', innerForm.RowId ? 1 : 0)
this.$emit('setMarkName', { this.$emit('setMarkName', {
annotationUID: annotation.annotationUID, annotationUID: annotation.annotationUID,
@ -557,22 +581,24 @@ export default {
) )
if (typeof targetTable !== 'object') return if (typeof targetTable !== 'object') return
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'MeasureData', annotation) this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'MeasureData', annotation)
let length = null
let short = null
if (toolName === 'Length') { if (toolName === 'Length') {
const referencedImageId = annotation.metadata.referencedImageId const referencedImageId = annotation.metadata.referencedImageId
let length = annotation.data.cachedStats[`imageId:${referencedImageId}`].length length = annotation.data.cachedStats[`imageId:${referencedImageId}`].length
length = length ? parseFloat(length).toFixed(this.digitPlaces) : length length = length ? parseFloat(length).toFixed(this.digitPlaces) : length
const lengthId = this.getQuestionId(0, targetTable.TableQuestions.Questions) const lengthId = this.getQuestionId(0, targetTable.TableQuestions.Questions)
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'LesionLength', length) this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'LesionLength', length)
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], lengthId, length) this.$set(this.innerFormData[`${tableId}_${rowIndex}`], lengthId, length)
} else if (toolName === 'Bidirectional') { } else if (toolName === 'Bidirectional') {
const referencedImageId = annotation.metadata.referencedImageId const referencedImageId = annotation.metadata.referencedImageId
let length = annotation.data.cachedStats[`imageId:${referencedImageId}`].length length = annotation.data.cachedStats[`imageId:${referencedImageId}`].length
length = length ? parseFloat(length).toFixed(this.digitPlaces) : length length = length ? parseFloat(length).toFixed(this.digitPlaces) : length
const lengthId = this.getQuestionId(0, targetTable.TableQuestions.Questions) const lengthId = this.getQuestionId(0, targetTable.TableQuestions.Questions)
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'LesionLength', length) this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'LesionLength', length)
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], lengthId, length) this.$set(this.innerFormData[`${tableId}_${rowIndex}`], lengthId, length)
let short = annotation.data.cachedStats[`imageId:${referencedImageId}`].width short = annotation.data.cachedStats[`imageId:${referencedImageId}`].width
short = short ? parseFloat(short).toFixed(this.digitPlaces) : short short = short ? parseFloat(short).toFixed(this.digitPlaces) : short
const shortId = this.getQuestionId(1, targetTable.TableQuestions.Questions) const shortId = this.getQuestionId(1, targetTable.TableQuestions.Questions)
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'LesionShort', short) this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'LesionShort', short)
@ -589,6 +615,26 @@ export default {
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'LesionState', 0) this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'LesionState', 0)
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], stateId, 0) this.$set(this.innerFormData[`${tableId}_${rowIndex}`], stateId, 0)
} }
const isCurrentTaskAdd = this.innerFormData[`${tableId}_${rowIndex}`].IsCurrentTaskAdd
const isLymphNodes = this.innerFormData[`${tableId}_${rowIndex}`].IsLymphNodes
if (!(isCurrentTaskAdd === 'True')) {
// 线>=10mm>=10mm
if (!this.isBaseLineTask && ((toolName === 'Length' && length >= 10) || (toolName === 'Bidirectional' && short >= 10))) {
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'LesionState', 0)
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], stateId, 0)
}
// 线<10mm<10mm
if (!this.isBaseLineTask && ((toolName === 'Length' && length < 10) || (toolName === 'Bidirectional' && short < 10))) {
const stateId = this.getQuestionId(7)
if (isLymphNodes) {
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'LesionState', 3)
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], stateId, 3)
} else if (isLymphNodes === 0) {
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'LesionState', 0)
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], stateId, 0)
}
}
}
this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'SaveTypeEnum', formData.RowId ? 1 : 0) this.$set(this.innerFormData[`${tableId}_${rowIndex}`], 'SaveTypeEnum', formData.RowId ? 1 : 0)
this.activeName = `${tableId}_${rowIndex}` this.activeName = `${tableId}_${rowIndex}`
}, },
@ -669,7 +715,11 @@ export default {
} }
) )
} }
this.innerFormData[`${tableInfo.Id}_${answer.RowIndex}`] = answer this.$set(this.innerFormData, `${tableInfo.Id}_${answer.RowIndex}`, {})
for (const key in answer) {
this.$set(this.innerFormData[`${tableInfo.Id}_${answer.RowIndex}`], key, answer[key])
}
// this.innerFormData[`${tableInfo.Id}_${answer.RowIndex}`] = answer
this.activeName = `${tableInfo.Id}_${answer.RowIndex}` this.activeName = `${tableInfo.Id}_${answer.RowIndex}`
}, },
// //
@ -1295,12 +1345,17 @@ export default {
if (res.IsSuccess) { if (res.IsSuccess) {
// //
this.$message.success(this.$t('common:message:savedSuccessfully')) this.$message.success(this.$t('common:message:savedSuccessfully'))
this.getTableQuestions() // this.getTableQuestions()
this.$emit('getAnnotations', this.visitTaskId) // this.$emit('getAnnotations', this.visitTaskId)
if (!this.innerFormData[`${table.Id}_${rowIndex}`].RowId) {
this.$set(this.innerFormData[`${table.Id}_${rowIndex}`], 'RowId', res.Result.RowId)
}
this.$set(this.innerFormData[`${table.Id}_${rowIndex}`], 'SaveTypeEnum', 2)
this.activeName = '' this.activeName = ''
} }
loading.close() loading.close()
} catch(e) { } catch (e) {
console.log(e) console.log(e)
loading.close() loading.close()
} }