diff --git a/src/views/trials/trials-panel/reading/dicoms/components/DicomViewer.vue b/src/views/trials/trials-panel/reading/dicoms/components/DicomViewer.vue index fbf9e0cc..a94d2729 100644 --- a/src/views/trials/trials-panel/reading/dicoms/components/DicomViewer.vue +++ b/src/views/trials/trials-panel/reading/dicoms/components/DicomViewer.vue @@ -433,13 +433,31 @@ /> + + + + @@ -677,6 +695,8 @@ import RecistBMQuestionList from './RecistBM/QuestionList' import IRecistQuestionList from './IRecist/QuestionList' import PCWGQuestionList from './PCWG/QuestionList' import LuganoQuestionList from './Lugano/QuestionList' +import IVUSList from './IVUS/QuestionList' +import OCTList from './OCT/QuestionList' import CustomWwwcForm from './CustomWwwcForm' import Manuals from './Manuals' import Hotkeys from './Hotkeys' @@ -698,7 +718,10 @@ export default { PCWGQuestionList, RecistBMQuestionList, IRecistQuestionList, - LuganoQuestionList }, + LuganoQuestionList, + IVUSList, + OCTList + }, props: { isShow: { type: Boolean, @@ -923,6 +946,10 @@ export default { this.measuredTools = [{ toolName: 'ArrowAnnotate', text: this.$t('trials:reading:button:arrowAnnotate'), icon: 'arrow', isDisabled: false, disabledReason: '' }, { toolName: 'RectangleRoi', text: this.$t('trials:reading:button:rectangle'), icon: 'rectangle', isDisabled: false, disabledReason: '' }] } else if (this.CriterionType === 17) { this.measuredTools = [{ toolName: 'Length', text: this.$t('trials:reading:button:length'), icon: 'length', isDisabled: false, disabledReason: '' }, { toolName: 'RectangleRoi', text: this.$t('trials:reading:button:rectangle'), icon: 'rectangle', isDisabled: false, disabledReason: '' }, { toolName: 'ArrowAnnotate', text: this.$t('trials:reading:button:arrowAnnotate'), icon: 'arrow', isDisabled: false, disabledReason: '' }] + } else if (this.CriterionType === 19) { + this.measuredTools = [] + } else if (this.CriterionType === 20) { + this.measuredTools = [] } this.rotateList[0] = '1' this.colorList[0] = '' diff --git a/src/views/trials/trials-panel/reading/dicoms/components/IVUS/QuestionForm.vue b/src/views/trials/trials-panel/reading/dicoms/components/IVUS/QuestionForm.vue new file mode 100644 index 00000000..f058d8f3 --- /dev/null +++ b/src/views/trials/trials-panel/reading/dicoms/components/IVUS/QuestionForm.vue @@ -0,0 +1,546 @@ + + + diff --git a/src/views/trials/trials-panel/reading/dicoms/components/IVUS/QuestionList.vue b/src/views/trials/trials-panel/reading/dicoms/components/IVUS/QuestionList.vue new file mode 100644 index 00000000..7ac9761a --- /dev/null +++ b/src/views/trials/trials-panel/reading/dicoms/components/IVUS/QuestionList.vue @@ -0,0 +1,623 @@ + + + diff --git a/src/views/trials/trials-panel/reading/dicoms/components/OCT/QuestionForm.vue b/src/views/trials/trials-panel/reading/dicoms/components/OCT/QuestionForm.vue new file mode 100644 index 00000000..f058d8f3 --- /dev/null +++ b/src/views/trials/trials-panel/reading/dicoms/components/OCT/QuestionForm.vue @@ -0,0 +1,546 @@ + + + diff --git a/src/views/trials/trials-panel/reading/dicoms/components/OCT/QuestionList.vue b/src/views/trials/trials-panel/reading/dicoms/components/OCT/QuestionList.vue new file mode 100644 index 00000000..7ac9761a --- /dev/null +++ b/src/views/trials/trials-panel/reading/dicoms/components/OCT/QuestionList.vue @@ -0,0 +1,623 @@ + + + diff --git a/src/views/trials/trials-panel/reading/dicoms/components/StudyList.vue b/src/views/trials/trials-panel/reading/dicoms/components/StudyList.vue index e46a2fdc..412f8fbc 100644 --- a/src/views/trials/trials-panel/reading/dicoms/components/StudyList.vue +++ b/src/views/trials/trials-panel/reading/dicoms/components/StudyList.vue @@ -294,7 +294,14 @@ export default { store.dispatch('reading/setImageloadedInfo', item) } }) - var i = res.findIndex(s => s.isCurrentTask) + var i = -1 + var isReadingTaskViewInOrder = parseInt(this.$router.currentRoute.query.isReadingTaskViewInOrder) + if (isReadingTaskViewInOrder === 2) { + // 受试者内随机 + i = res.length === 2 ? 1 : -1 + } else { + i = res.findIndex(s => s.isCurrentTask) + } if (i > -1) { var idx = this.visitTaskList.findIndex(i => i.VisitTaskId === this.visitTaskId) if (idx > -1) { @@ -377,8 +384,23 @@ export default { var isReadingTaskViewInOrder = parseInt(this.$router.currentRoute.query.isReadingTaskViewInOrder) var idx = this.visitTaskList.findIndex(i => i.VisitTaskId === this.visitTaskId) this.studyList = this.visitTaskList[idx].StudyList - if (this.visitTaskList[idx].IsBaseLineTask || isReadingTaskViewInOrder !== 1) { - // 基线 + if (isReadingTaskViewInOrder === 2) { + // 受试者内随机 + const studyList = this.visitTaskList[idx].StudyList.filter(i => i.IsDicom) + const seriesArr = studyList.map(s => s.SeriesList).flat() + if (seriesArr.length === 1) { + seriesList.push(seriesArr[0], seriesArr[0]) + this.studyIndex = seriesArr[0].studyIndex + this.seriesIndex = seriesArr[0].seriesIndex + this.activeNames = [`${seriesArr[0].studyId}`] + } else if (seriesArr.length > 1) { + seriesList.push(seriesArr[0], seriesArr[1]) + this.studyIndex = seriesArr[1].studyIndex + this.seriesIndex = seriesArr[1].seriesIndex + this.activeNames = [`${seriesArr[1].studyId}`] + } + } else if (this.visitTaskList[idx].IsBaseLineTask || isReadingTaskViewInOrder === 0) { + // 基线任务或完全随机 const obj = this.getFirstMarkedSeries(this.visitTaskList[idx].MeasureData, [...this.visitTaskList[idx].StudyList]) if (Object.keys(obj).length !== 0) { this.studyIndex = obj.studyIndex