多帧图像渲染更改

uat
caiyiling 2025-04-14 16:45:40 +08:00
parent 0f9963d939
commit d5ae075aa8
4 changed files with 21 additions and 17 deletions

View File

@ -737,16 +737,18 @@ export default {
const nFrames = instance.NumberOfFrames || 0
if (nFrames === 0) {
//
imageIds.push(`wadouri:${this.OSSclientConfig.basePath}${instance.Path}?frame=0&instanceId=${instance.Id}&visitTaskId=${taskId}`)
imageIds.push(`wadouri:${this.OSSclientConfig.basePath}${instance.Path}?instanceId=${instance.Id}&visitTaskId=${taskId}`)
} else {
//
for (let frameIndex = 0; frameIndex < nFrames; frameIndex++) {
imageIds.push(`wadouri:${this.OSSclientConfig.basePath}${instance.Path}?frame=${frameIndex}&instanceId=${instance.Id}&visitTaskId=${taskId}`)
for (let i = 0; i < nFrames; i++) {
const newImageId = `wadouri:${this.OSSclientConfig.basePath}${instance.Path}?instanceId=${instance.Id}&visitTaskId=${taskId}&frame=${i + 1}`;
imageIds.push(newImageId);
}
}
this.instanceInfo[instance.Id] = { taskIndex, studyIndex, seriesIndex }
}
})
series.ImageIds = imageIds
series.SliceIndex = 0
series.LoadedImageCount = 0
@ -916,7 +918,7 @@ export default {
toolGroup.addTool(ArrowAnnotateTool.toolName, {
arrowHeadStyle: 'standard',
changeTextCallback: async(data, eventData, doneChangingTextCallback) => {
return doneChangingTextCallback(data.label)
return doneChangingTextCallback(data.text)
},
getTextCallback: async(doneChangingTextCallback) => {
return doneChangingTextCallback('_')
@ -981,6 +983,9 @@ export default {
const instanceId = params.instanceId
const idxObj = this.instanceInfo[instanceId]
if (!(idxObj && typeof idxObj === 'object')) return
if (!(this.instanceInfo[instanceId].hasOwnProperty('percentComplete'))) {
this.instanceInfo[instanceId].percentComplete = 0
}
// if (!params.hasOwnProperty('idx')) return
// const indexArr = params.idx.split('|')
// if (indexArr.length < 3) return
@ -990,27 +995,26 @@ export default {
const isCriticalSequence = this.visitTaskList[taskIndex].StudyList[studyIndex].IsCriticalSequence
const keyImages = this.visitTaskList[taskIndex].KeyImages
const series = this.visitTaskList[taskIndex].StudyList[studyIndex].SeriesList[seriesIndex]
this.setImageLoadedProgress(series, percentComplete)
this.setImageLoadedProgress(series, percentComplete, instanceId)
if (!isCriticalSequence && series.IsBeMark && keyImages.length > 0) {
const i = keyImages.findIndex(i => i.Id === params.instanceId)
if (i === -1) return
const keyStudyIndex = parseInt(keyImages[i].KeyStudyIndex)
const keySeriesIndex = parseInt(keyImages[i].KeySeriesIndex)
const keySeries = this.visitTaskList[taskIndex].StudyList[keyStudyIndex].SeriesList[keySeriesIndex]
this.setImageLoadedProgress(keySeries, percentComplete)
this.setImageLoadedProgress(keySeries, percentComplete, instanceId)
}
},
//
setImageLoadedProgress(series, percentComplete) {
const instanceCount = series.InstanceCount
let loadedImageProgress = series.LoadedImageProgress
setImageLoadedProgress(series, percentComplete, instanceId) {
let loadedImageCount = series.LoadedImageCount
if (percentComplete === 100) {
++loadedImageCount
this.$set(series, 'LoadedImageCount', loadedImageCount)
}
loadedImageProgress = (loadedImageProgress * instanceCount + percentComplete) / instanceCount
this.$set(series, 'LoadedImageProgress', loadedImageProgress)
let newLoadedImageProgress = series.LoadedImageProgress - this.instanceInfo[instanceId].percentComplete + percentComplete
this.instanceInfo[instanceId].percentComplete = percentComplete
this.$set(series, 'LoadedImageProgress', newLoadedImageProgress)
},
addHistoryAnnotations(taskId) {
// if (this.renderedTaskIds.includes(taskId)) return
@ -1098,7 +1102,7 @@ export default {
annotation.studyId = series.StudyId
annotation.seriesId = series.Id
annotation.instanceId = params.instanceId
annotation.numberOfFrames = isNaN(parseInt(params.frame)) ? 0 : parseInt(params.frame)
annotation.numberOfFrames = isNaN(parseInt(params.frame)) ? null : parseInt(params.frame)
annotation.markTool = annotation.metadata.toolName
this.$refs['ecrf'].setAnnotation({ annotation, toolName: annotation.metadata.toolName })
}
@ -2082,7 +2086,7 @@ export default {
params[key] = value
}
if (isNaN(params.frame)) {
params.frame = 0
params.frame = null
}
return params
},

View File

@ -1224,7 +1224,7 @@ export default {
studyId: measureData ? measureData.studyId : '',
seriesId: measureData ? measureData.seriesId : '',
instanceId: measureData ? measureData.instanceId : '',
numberOfFrames: measureData ? measureData.frame : 0,
numberOfFrames: measureData ? measureData.frame : null,
picturePath: picturePath,
organInfoId: innerForm.OrganInfoId,
markTool: measureData ? measureData.markTool : '',

View File

@ -85,9 +85,9 @@
</div>
</div>
</div>
<div v-if="series.IsDicom && series.LoadedImageProgress>0 && series.LoadedImageProgress<100" style="width: 100%;">
<div v-if="series.IsDicom && series.LoadedImageProgress>0 && series.LoadedImageProgress<series.InstanceCount * 100" style="width: 100%;">
<el-progress
:percentage="parseInt((series.LoadedImageProgress).toFixed(2))"
:percentage="parseInt((series.LoadedImageProgress / series.InstanceCount).toFixed(2))"
/>
</div>
</div>

View File

@ -1248,7 +1248,7 @@ export default {
studyId: measureData ? measureData.studyId : '',
seriesId: measureData ? measureData.seriesId : '',
instanceId: measureData ? measureData.instanceId : '',
numberOfFrames: measureData ? measureData.frame : 0,
numberOfFrames: measureData ? measureData.frame : null,
picturePath: picturePath,
organInfoId: innerForm.OrganInfoId,
markTool: measureData ? measureData.markTool : '',