diff --git a/src/components/uploadDicomAndNonedicom/study-view.vue b/src/components/uploadDicomAndNonedicom/study-view.vue index 96ca2559..edaf8971 100644 --- a/src/components/uploadDicomAndNonedicom/study-view.vue +++ b/src/components/uploadDicomAndNonedicom/study-view.vue @@ -245,13 +245,13 @@ export default { if (this.IsDicom) { var token = getToken() routeData = this.$router.resolve({ - path: `/showdicom?studyId=${row.Id}&TokenKey=${token}&type=Study&visitTaskId=${this.visitTaskId}`, + path: `/showdicom?studyId=${row.Id}&TokenKey=${token}&type=Study&visitTaskId=${this.visitTaskId}&isReading=true`, }) } else { let trialId = this.$route.query.trialId var token = getToken() routeData = this.$router.resolve({ - path: `/showNoneDicoms?trialId=${trialId}&subjectVisitId=${row.SourceSubjectVisitId}&studyId=${row.Id}&TokenKey=${token}`, + path: `/showNoneDicoms?trialId=${trialId}&subjectVisitId=${row.SourceSubjectVisitId}&studyId=${row.Id}&TokenKey=${token}&isReading=true`, }) } window.open(routeData.href, '_blank') diff --git a/src/utils/index.js b/src/utils/index.js index 78bdbf9d..a6db6712 100644 --- a/src/utils/index.js +++ b/src/utils/index.js @@ -110,7 +110,8 @@ let timer = null, // 网速定时器 // 获取网速 export function getNetWorkSpeed() { if (timer) return false; - if (lastPercentage < 100) return false; + // if (lastPercentage < 100) return false; + if (imageId && imageId !== Id) return false imageId = null timer = setInterval(() => { let timeList = Object.keys(bytesReceivedPerSecond).sort((a, b) => a - b); @@ -135,8 +136,9 @@ export function setNetWorkSpeedSize(totalPercentage, total, Id) { if (imageId && imageId !== Id) return false imageId = Id let percentage = totalPercentage - lastPercentage + percentage = percentage / 100 lastPercentage = totalPercentage - console.log(percentage, totalPercentage, total) + // console.log(percentage, totalPercentage, total) let time = new Date().getTime(); let timeList = Object.keys(bytesReceivedPerSecond).sort((a, b) => a - b); let bytesTime = timeList.find(item => time - item < 1000); @@ -156,6 +158,7 @@ export function workSpeedclose(isForce = false) { if (!isForce && lastPercentage < 100) { return false } + console.log('workSpeedclose') if (timer) { clearInterval(timer); timer = null; diff --git a/src/views/dicom-show/dicom-study.vue b/src/views/dicom-show/dicom-study.vue index e8f5b708..c893076e 100644 --- a/src/views/dicom-show/dicom-study.vue +++ b/src/views/dicom-show/dicom-study.vue @@ -192,7 +192,8 @@ export default { imageList: [], showSeriesList: [], currentLoadIns: [], - isFromCRCUpload: false + isFromCRCUpload: false, + isReading: null } }, created: function () { @@ -206,6 +207,9 @@ export default { store.dispatch('user/setToken', this.$router.currentRoute.query.TokenKey) changeURLStatic('TokenKey', '') } + if (this.$router.currentRoute.query.isReading) { + this.isReading = this.$router.currentRoute.query.isReading + } this.studyId = this.$router.currentRoute.query.studyId this.isFromCRCUpload = !!this.$router.currentRoute.query.isFromCRCUpload if (this.type === 'Series') { @@ -244,7 +248,8 @@ export default { this.seriesCount = data.Result.SeriesCount this.description = data.Result.Description } - const url = `/series/list/${this.studyId}` + let isReading = !!this.isReading ? `?IsReading=true` : '' + const url = `/series/list/${this.studyId}${isReading}` this.getSeriesList(url) } }, diff --git a/src/views/dicom-show/dicom-visit.vue b/src/views/dicom-show/dicom-visit.vue index 7aa373ff..b06d13c8 100644 --- a/src/views/dicom-show/dicom-visit.vue +++ b/src/views/dicom-show/dicom-visit.vue @@ -149,7 +149,7 @@ -
@@ -171,66 +171,69 @@
{{ study.Description }}
-
+
-
+
+
+ + +
+
+
+ Key Images +
+
#{{ seriesItem.seriesNumber }}
+
+ +
+
+
+
{{ instance.InstanceNumber }}
+
{{ `${instance.NumberOfFrames > 0 ? instance.NumberOfFrames : 1} frame` + }}
+
+ +
+
+ +
+
+ +
+
+ {{ seriesItem.modality }}: {{ seriesItem.instanceCount }} image +
+
+ T: {{ seriesItem.sliceThickness }} +
+ +
+ {{ seriesItem.description }} +
+
+
+
- - -
-
-
- Key Images -
-
#{{ seriesItem.seriesNumber }}
-
- -
-
-
-
{{ instance.InstanceNumber }}
-
{{ `${instance.NumberOfFrames > 0 ? instance.NumberOfFrames : 1} frame` - }}
-
- -
-
- -
-
- -
-
- {{ seriesItem.modality }}: {{ seriesItem.instanceCount }} image -
-
- T: {{ seriesItem.sliceThickness }} -
- -
- {{ seriesItem.description }} -
-
+
+
-
@@ -303,7 +306,8 @@ export default { currentLoadIns: [], isFromCRCUpload: false, visitTaskId: null, - page: '' + page: '', + activeSeriesId: null } }, mounted() { @@ -435,6 +439,8 @@ export default { } }, showSeriesImage(e, studyIndex, seriesIndex, series) { + this.activeSeriesId = series.seriesId + workSpeedclose(true) const element = e.currentTarget const elements = document.querySelectorAll('[series-type]') Array.from(elements).forEach((e) => { @@ -725,9 +731,15 @@ export default { item.InstanceInfoList.forEach(i => { if (i.NumberOfFrames && i.NumberOfFrames > 1) { for (let j = 0; j < i.NumberOfFrames; j++) { + if (!i.ImageId) { + i.ImageId = `wadouri:${localStorage.getItem('location') !== 'USA' ? scope.OSSclientConfig.basePath : scope.OSSclientConfig.basePath}${i.Path}?frame=${j}&instanceId=${i.Id}&idx=${index}|${seriesIndex}&isRelation=1` + } imageIds.push(`wadouri:${localStorage.getItem('location') !== 'USA' ? scope.OSSclientConfig.basePath : scope.OSSclientConfig.basePath}${i.Path}?frame=${j}&instanceId=${i.Id}&idx=${index}|${seriesIndex}&isRelation=1`) } } else { + if (!i.ImageId) { + i.ImageId = `wadouri:${localStorage.getItem('location') !== 'USA' ? scope.OSSclientConfig.basePath : scope.OSSclientConfig.basePath}${i.Path}?instanceId=${i.Id}&idx=${index}|${seriesIndex}&isRelation=1` + } imageIds.push(`wadouri:${localStorage.getItem('location') !== 'USA' ? scope.OSSclientConfig.basePath : scope.OSSclientConfig.basePath}${i.Path}?instanceId=${i.Id}&idx=${index}|${seriesIndex}&isRelation=1`) } }) @@ -751,9 +763,12 @@ export default { isShowPopper: false }) }) - scope.relationStudyList[index].seriesCount = seriesList.length - scope.relationStudyList[index].seriesList = seriesList - scope.relationStudyList[index].showSeries = true + // scope.relationStudyList[index].seriesCount = seriesList.length + // scope.relationStudyList[index].seriesList = seriesList + // scope.relationStudyList[index].showSeries = true + scope.$set(scope.relationStudyList[index], 'seriesCount', seriesList.length) + scope.$set(scope.relationStudyList[index], 'seriesList', seriesList) + scope.$set(scope.relationStudyList[index], 'showSeries', true) scope.$forceUpdate() } } catch (e) { @@ -762,6 +777,8 @@ export default { } }, showRelationSeriesImage(e, series, studyIndex, index) { + this.activeSeriesId = series.seriesId + workSpeedclose(true) this.currentRelationIndex = index const element = e.currentTarget const elements = document.querySelectorAll('[series-type]') @@ -840,8 +857,11 @@ export default { } const studyIndex = params.idx.split('|')[0] const seriesIndex = params.idx.split('|')[1] - var series = !params.isRelation ? this.studyList[studyIndex].SeriesList[seriesIndex] : null + var series = !params.isRelation ? this.studyList[studyIndex].SeriesList[seriesIndex] : this.relationStudyList[studyIndex].seriesList[seriesIndex] if (!series) return + if (!this.activeSeriesId) { + this.activeSeriesId = series.seriesId + } var prefetchInstanceCount = series.prefetchInstanceCount var instanceCount = series.instanceCount if (series.imageloadedArr.indexOf(imageId) < 0) { @@ -863,8 +883,8 @@ export default { series.imageloadedArr.push(imageId) } } - let file = this.studyList[studyIndex].SeriesList[seriesIndex].instanceInfoList.find(item => item.ImageId === imageId) - if (file) { + let file = series.instanceInfoList.find(item => item.ImageId === imageId) + if (file && this.activeSeriesId === series.seriesId) { getNetWorkSpeed() setNetWorkSpeedSize(percentComplete, file.FileSize, imageId) } diff --git a/src/views/trials/trials-panel/setting/qc-question/components/QsForm.vue b/src/views/trials/trials-panel/setting/qc-question/components/QsForm.vue index df5d19b2..3de4a697 100644 --- a/src/views/trials/trials-panel/setting/qc-question/components/QsForm.vue +++ b/src/views/trials/trials-panel/setting/qc-question/components/QsForm.vue @@ -1,139 +1,68 @@