|
|
|
@@ -190,14 +190,14 @@
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<!-- 适应图像或窗口 -->
|
|
|
|
|
<!-- <div
|
|
|
|
|
<div
|
|
|
|
|
class="tool-item"
|
|
|
|
|
:title="forceFitToWindow ? `${$t('trials:reading:button:fitWindow')}` : `${$t('trials:reading:button:fitImage')}`"
|
|
|
|
|
@click.prevent="fitToType(forceFitToWindow)"
|
|
|
|
|
>
|
|
|
|
|
<svg-icon v-if="forceFitToWindow" icon-class="fitToWindow" class="svg-icon" />
|
|
|
|
|
<svg-icon v-else icon-class="fitToImage" class="svg-icon" />
|
|
|
|
|
</div> -->
|
|
|
|
|
</div>
|
|
|
|
|
<div
|
|
|
|
|
v-for="tool in tools"
|
|
|
|
|
:key="tool.toolName"
|
|
|
|
@@ -568,7 +568,7 @@ export default {
|
|
|
|
|
fps: 15,
|
|
|
|
|
manualsDialog: { visible: false, isFullscreen: false },
|
|
|
|
|
hotKeyList: [],
|
|
|
|
|
forceFitToWindow: true,
|
|
|
|
|
forceFitToWindow: false,
|
|
|
|
|
isShowAnnotations: true,
|
|
|
|
|
clinicalDataVisible: false,
|
|
|
|
|
isClinicalDataFullscreen: false,
|
|
|
|
@@ -780,11 +780,11 @@ export default {
|
|
|
|
|
} else {
|
|
|
|
|
// 多帧
|
|
|
|
|
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}?visitTaskId=${taskId}&instanceId=${instance.Id}&frame=${i + 1}`
|
|
|
|
|
stack.push(newImageId)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
imageIds.push(`wadouri:${this.OSSclientConfig.basePath}${instance.Path}?instanceId=${instance.Id}&visitTaskId=${taskId}`)
|
|
|
|
|
imageIds.push(`wadouri:${this.OSSclientConfig.basePath}${instance.Path}?visitTaskId=${taskId}&instanceId=${instance.Id}`)
|
|
|
|
|
this.instanceInfo[instance.Id] = { taskIndex, studyIndex, seriesIndex }
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
@@ -1154,6 +1154,8 @@ export default {
|
|
|
|
|
console.log('Modified')
|
|
|
|
|
if (this.readingTaskState === 2) return
|
|
|
|
|
const { annotation } = e.detail
|
|
|
|
|
console.log(annotation.highlighted)
|
|
|
|
|
if (!annotation.highlighted) return
|
|
|
|
|
if (!annotation) return
|
|
|
|
|
if (annotation.metadata.toolName === 'PlanarFreehandROI' && !annotation.data.contour.closed) return
|
|
|
|
|
const series = this.$refs[`viewport-${this.activeViewportIndex}`][0].series
|
|
|
|
@@ -1744,8 +1746,9 @@ export default {
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
fitToType(forceFitToWindow) {
|
|
|
|
|
this.$refs[`viewport-${this.activeViewportIndex}`][0].resize(forceFitToWindow)
|
|
|
|
|
this.forceFitToWindow = !forceFitToWindow
|
|
|
|
|
this.$refs[`viewport-${this.activeViewportIndex}`][0].resize(forceFitToWindow)
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
// 切换全屏
|
|
|
|
|
toggleFullScreen(e, index) {
|
|
|
|
@@ -1862,7 +1865,7 @@ export default {
|
|
|
|
|
if (baselineSeries.IsMarked) {
|
|
|
|
|
const i = annotations.findIndex(i => Object.keys(i.MeasureData).length > 0 && i.OrderMarkName === baselineSeries.MeasureData.OrderMarkName)
|
|
|
|
|
if (i > -1) {
|
|
|
|
|
obj = this.getMarkedSeries(studyList, annotations[i])
|
|
|
|
|
obj = this.getMarkedSeries(studyList, annotations[i].MeasureData)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (Object.keys(obj).length === 0) {
|
|
|
|
@@ -1906,7 +1909,7 @@ export default {
|
|
|
|
|
const i = annotations.findIndex(a => Object.keys(a.MeasureData).length > 0)
|
|
|
|
|
if (i > -1) {
|
|
|
|
|
// 有标记时,显示带标记影像所在序列
|
|
|
|
|
obj = this.getMarkedSeries(studyList, annotations[i])
|
|
|
|
|
obj = this.getMarkedSeries(studyList, annotations[i].MeasureData)
|
|
|
|
|
} else {
|
|
|
|
|
for (let k = 0; k < studyList.length; k++) {
|
|
|
|
|
const seriesIdx = studyList[k].SeriesList.findIndex(s => s.SliceThickness && parseInt(s.SliceThickness) === 5)
|
|
|
|
@@ -1935,21 +1938,21 @@ export default {
|
|
|
|
|
},
|
|
|
|
|
getMarkedSeries(studyList, annotation) {
|
|
|
|
|
let obj = {}
|
|
|
|
|
const sIdx = studyList.findIndex(s => s.StudyId === annotation.StudyId)
|
|
|
|
|
const sIdx = studyList.findIndex(s => s.StudyId === annotation.studyId)
|
|
|
|
|
if (sIdx > -1) {
|
|
|
|
|
const seriesList = studyList[sIdx].SeriesList
|
|
|
|
|
const seriesIdx = seriesList.findIndex(s => s.Id === annotation.SeriesId)
|
|
|
|
|
const seriesIdx = seriesList.findIndex(s => s.Id === annotation.seriesId)
|
|
|
|
|
if (seriesIdx > -1) {
|
|
|
|
|
const instanceIdx = seriesList[seriesIdx].InstanceInfoList.findIndex(i => i.Id === annotation.InstanceId)
|
|
|
|
|
const instanceIdx = seriesList[seriesIdx].InstanceInfoList.findIndex(i => i.Id === annotation.instanceId)
|
|
|
|
|
let filterStr = ''
|
|
|
|
|
if (instanceIdx > -1 && seriesList[seriesIdx].IsExistMutiFrames) {
|
|
|
|
|
if (seriesList[seriesIdx].InstanceInfoList[instanceIdx].NumberOfFrames > 0) {
|
|
|
|
|
filterStr = `frame=${annotation.MeasureData.frame}&instanceId=${annotation.InstanceId}`
|
|
|
|
|
filterStr = `instanceId=${annotation.instanceId}&frame=${annotation.numberOfFrames}`
|
|
|
|
|
} else {
|
|
|
|
|
filterStr = `instanceId=${annotation.InstanceId}`
|
|
|
|
|
filterStr = `instanceId=${annotation.instanceId}`
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
filterStr = `instanceId=${annotation.InstanceId}`
|
|
|
|
|
filterStr = `instanceId=${annotation.instanceId}`
|
|
|
|
|
}
|
|
|
|
|
const stack = seriesList[seriesIdx].Stack
|
|
|
|
|
const imageIdIdx = stack.findIndex(is => is.includes(filterStr))
|
|
|
|
@@ -2027,7 +2030,7 @@ export default {
|
|
|
|
|
}
|
|
|
|
|
const annotationIdx = this.visitTaskList[taskIdx].Annotations.findIndex(i => i.OrderMarkName === obj.lesionName)
|
|
|
|
|
if (annotationIdx > -1) {
|
|
|
|
|
firstAddSeries = this.getMarkedSeries(this.visitTaskList[taskIdx].StudyList, this.visitTaskList[taskIdx].Annotations[annotationIdx])
|
|
|
|
|
firstAddSeries = this.getMarkedSeries(this.visitTaskList[taskIdx].StudyList, this.visitTaskList[taskIdx].Annotations[annotationIdx].MeasureData)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (obj.isMarked) {
|
|
|
|
|