From 0960b480a69430b2202d1d403bac6e47737a3e96 Mon Sep 17 00:00:00 2001 From: caiyiling <1321909229@qq.com> Date: Tue, 1 Apr 2025 16:48:04 +0800 Subject: [PATCH] =?UTF-8?q?=E9=98=85=E7=89=87=E9=A1=B5=E9=9D=A2=E6=9B=B4?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reading/clinical-data/index.vue | 2 +- .../trials-panel/reading/dicoms/index.vue | 9 +- .../reading/dicoms3D/components/ReadPage.vue | 1787 +++++++++++++++++ .../dicoms3D/components/ReportPage.vue | 0 .../reading/dicoms3D/components/StudyList.vue | 273 +++ .../reading/dicoms3D/components/Viewport.vue | 551 +++++ .../dicoms3D/components/VisitReview.vue | 79 + .../reading/dicoms3D/components/toolConfig.js | 193 ++ .../trials-panel/reading/dicoms3D/index.vue | 113 ++ .../visit-review/components/ReadPage.vue | 4 +- 10 files changed, 3006 insertions(+), 5 deletions(-) create mode 100644 src/views/trials/trials-panel/reading/dicoms3D/components/ReadPage.vue create mode 100644 src/views/trials/trials-panel/reading/dicoms3D/components/ReportPage.vue create mode 100644 src/views/trials/trials-panel/reading/dicoms3D/components/StudyList.vue create mode 100644 src/views/trials/trials-panel/reading/dicoms3D/components/Viewport.vue create mode 100644 src/views/trials/trials-panel/reading/dicoms3D/components/VisitReview.vue create mode 100644 src/views/trials/trials-panel/reading/dicoms3D/components/toolConfig.js create mode 100644 src/views/trials/trials-panel/reading/dicoms3D/index.vue diff --git a/src/views/trials/trials-panel/reading/clinical-data/index.vue b/src/views/trials/trials-panel/reading/clinical-data/index.vue index 2f0ebf6e..3d7b5eba 100644 --- a/src/views/trials/trials-panel/reading/clinical-data/index.vue +++ b/src/views/trials/trials-panel/reading/clinical-data/index.vue @@ -277,7 +277,7 @@ export default { } } - \ No newline at end of file diff --git a/src/views/trials/trials-panel/reading/dicoms3D/components/ReportPage.vue b/src/views/trials/trials-panel/reading/dicoms3D/components/ReportPage.vue new file mode 100644 index 00000000..e69de29b diff --git a/src/views/trials/trials-panel/reading/dicoms3D/components/StudyList.vue b/src/views/trials/trials-panel/reading/dicoms3D/components/StudyList.vue new file mode 100644 index 00000000..670db458 --- /dev/null +++ b/src/views/trials/trials-panel/reading/dicoms3D/components/StudyList.vue @@ -0,0 +1,273 @@ + + + diff --git a/src/views/trials/trials-panel/reading/dicoms3D/components/Viewport.vue b/src/views/trials/trials-panel/reading/dicoms3D/components/Viewport.vue new file mode 100644 index 00000000..3256127a --- /dev/null +++ b/src/views/trials/trials-panel/reading/dicoms3D/components/Viewport.vue @@ -0,0 +1,551 @@ + + + \ No newline at end of file diff --git a/src/views/trials/trials-panel/reading/dicoms3D/components/VisitReview.vue b/src/views/trials/trials-panel/reading/dicoms3D/components/VisitReview.vue new file mode 100644 index 00000000..f9908be8 --- /dev/null +++ b/src/views/trials/trials-panel/reading/dicoms3D/components/VisitReview.vue @@ -0,0 +1,79 @@ + + + diff --git a/src/views/trials/trials-panel/reading/dicoms3D/components/toolConfig.js b/src/views/trials/trials-panel/reading/dicoms3D/components/toolConfig.js new file mode 100644 index 00000000..9427deb2 --- /dev/null +++ b/src/views/trials/trials-panel/reading/dicoms3D/components/toolConfig.js @@ -0,0 +1,193 @@ +const config = { + "standards": [ + { + "type": 1, + "name": "RECIST 1.1", + "tools": [ + { + "name": "直径测量工具", + "icon": "length", + "toolName": "Length", + "i18nKey": "trials:reading:button:length" + }, + { + "name": "长短径测量工具", + "icon": "bidirection", + "toolName": "Bidirectional", + "i18nKey": "trials:reading:button:bidirectional" + }, + { + "name": "矩形工具", + "icon": "rectangle", + "toolName": "RectangleRoi", + "i18nKey": "trials:reading:button:rectangle" + }, + { + "name": "箭头工具", + "icon": "arrow", + "toolName": "ArrowAnnotate", + "i18nKey": "trials:reading:button:arrowAnnotate" + } + ] + }, + { + "type": 2, + "name": "Lugano 2014", + "tools": [ + { + "name": "直径测量工具", + "icon": "length", + "toolName": "Length", + "i18nKey": "trials:reading:button:length" + }, + { + "name": "长短径测量工具", + "icon": "bidirection", + "toolName": "Bidirectional", + "i18nKey": "trials:reading:button:bidirectional" + }, + { + "name": "矩形工具", + "icon": "rectangle", + "toolName": "RectangleRoi", + "i18nKey": "trials:reading:button:rectangle" + }, + { + "name": "箭头工具", + "icon": "arrow", + "toolName": "ArrowAnnotate", + "i18nKey": "trials:reading:button:arrowAnnotate" + } + ] + }, + { + "type": 3, + "name": "iRECIST", + "tools": [ + { + "name": "直径测量工具", + "icon": "length", + "toolName": "Length", + "i18nKey": "trials:reading:button:length" + }, + { + "name": "长短径测量工具", + "icon": "bidirection", + "toolName": "Bidirectional", + "i18nKey": "trials:reading:button:bidirectional" + }, + { + "name": "矩形工具", + "icon": "rectangle", + "toolName": "RectangleRoi", + "i18nKey": "trials:reading:button:rectangle" + }, + { + "name": "箭头工具", + "icon": "arrow", + "toolName": "ArrowAnnotate", + "i18nKey": "trials:reading:button:arrowAnnotate" + } + ] + }, + { + "type": 7, + "name": "mRECIST HCC", + "tools": [ + { + "name": "直径测量工具", + "icon": "length", + "toolName": "Length", + "i18nKey": "trials:reading:button:length" + }, + { + "name": "长短径测量工具", + "icon": "bidirection", + "toolName": "Bidirectional", + "i18nKey": "trials:reading:button:bidirectional" + }, + { + "name": "矩形工具", + "icon": "rectangle", + "toolName": "RectangleRoi", + "i18nKey": "trials:reading:button:rectangle" + }, + { + "name": "箭头工具", + "icon": "arrow", + "toolName": "ArrowAnnotate", + "i18nKey": "trials:reading:button:arrowAnnotate" + } + ] + }, + { + "type": 10, + "name": "PCWG3", + "tools": [ + { + "name": "矩形工具", + "icon": "rectangle", + "toolName": "RectangleRoi", + "i18nKey": "trials:reading:button:rectangle" + }, + { + "name": "箭头工具", + "icon": "arrow", + "toolName": "ArrowAnnotate", + "i18nKey": "trials:reading:button:arrowAnnotate" + } + ] + }, + { + "type": 17, + "name": "PCWG3", + "tools": [ + { + "name": "直径测量工具", + "icon": "length", + "toolName": "Length", + "i18nKey": "trials:reading:button:length" + }, + { + "name": "矩形工具", + "icon": "rectangle", + "toolName": "RectangleRoi", + "i18nKey": "trials:reading:button:rectangle" + }, + { + "name": "箭头工具", + "icon": "arrow", + "toolName": "ArrowAnnotate", + "i18nKey": "trials:reading:button:arrowAnnotate" + } + ] + }, + { + "type": 19, + "name": "IVUS定量评估", + "tools": [] + }, + { + "type": 20, + "name": "OCT定量评估", + "tools": [] + }, + { + "type": 21, + "name": "MRI-PDFF", + "tools": [ + { + "name": "圆形测量", + "icon": "oval", + "toolName": "Probe", + "i18nKey": "trials:reading:button:circle" + } + ] + } + ] +} +const getTools = (criterionType) => { + const standard = config.standards.find(s => s.type === criterionType); + return standard?.tools || []; +}; +export {config, getTools} diff --git a/src/views/trials/trials-panel/reading/dicoms3D/index.vue b/src/views/trials/trials-panel/reading/dicoms3D/index.vue new file mode 100644 index 00000000..cc0b6467 --- /dev/null +++ b/src/views/trials/trials-panel/reading/dicoms3D/index.vue @@ -0,0 +1,113 @@ + + + \ No newline at end of file diff --git a/src/views/trials/trials-panel/reading/visit-review/components/ReadPage.vue b/src/views/trials/trials-panel/reading/visit-review/components/ReadPage.vue index 65093dbd..d65167fb 100644 --- a/src/views/trials/trials-panel/reading/visit-review/components/ReadPage.vue +++ b/src/views/trials/trials-panel/reading/visit-review/components/ReadPage.vue @@ -295,8 +295,8 @@ export default { async toggleTaskByViewer(visitTaskNum) { const i = this.visitTaskList.findIndex(v => v.VisitTaskNum === visitTaskNum) if (i === -1) return - const visistTaskId = this.visitTaskList[i].VisitTaskId - this.setActiveTaskVisitId(visistTaskId, true) + const visitTaskId = this.visitTaskList[i].VisitTaskId + this.setActiveTaskVisitId(visitTaskId, true) }, // 设置激活的访视 async setActiveTaskVisitId(id, isInitActiveFile = false) {