From 705585da3806a6fffd0ad0e113af52521f6535d8 Mon Sep 17 00:00:00 2001 From: "DESKTOP-6C3NK6N\\WXS" <815034831@qq.com> Date: Thu, 10 Oct 2024 13:57:30 +0800 Subject: [PATCH 001/400] =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E9=87=8D=E5=A4=8D=E8=AF=B7=E6=B1=82=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/dictionary/attachment/index.vue | 41 ++++++++++++++--------- 1 file changed, 25 insertions(+), 16 deletions(-) diff --git a/src/views/dictionary/attachment/index.vue b/src/views/dictionary/attachment/index.vue index d80a5d01..5911adf3 100644 --- a/src/views/dictionary/attachment/index.vue +++ b/src/views/dictionary/attachment/index.vue @@ -1,12 +1,19 @@ diff --git a/src/views/dictionary/template/email/components/EmailList.vue b/src/views/dictionary/template/email/components/EmailList.vue index c9ba8ce1..9c8718f3 100644 --- a/src/views/dictionary/template/email/components/EmailList.vue +++ b/src/views/dictionary/template/email/components/EmailList.vue @@ -111,7 +111,7 @@ min-width="120" > @@ -172,10 +172,10 @@ @@ -190,10 +190,10 @@ @@ -206,7 +206,7 @@ v-if="!systemLevel" > @@ -264,10 +264,10 @@ > @@ -281,10 +281,10 @@ > @@ -340,6 +340,7 @@ :system-level="systemLevel" @closeDialog="closeDialog" @getList="getList" + @PreviewHTML="preview" /> @@ -359,131 +360,148 @@ @getList="getList" /> + + +
+
From c3b7fd70726b06d9ce65bb0921206c9d818062c2 Mon Sep 17 00:00:00 2001 From: "DESKTOP-6C3NK6N\\WXS" <815034831@qq.com> Date: Sat, 12 Oct 2024 10:48:10 +0800 Subject: [PATCH 007/400] =?UTF-8?q?=E9=82=AE=E4=BB=B6=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E6=8E=92=E5=BA=8F=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/dictionary/template/email/components/EmailList.vue | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/views/dictionary/template/email/components/EmailList.vue b/src/views/dictionary/template/email/components/EmailList.vue index 9c8718f3..2c2eef6c 100644 --- a/src/views/dictionary/template/email/components/EmailList.vue +++ b/src/views/dictionary/template/email/components/EmailList.vue @@ -390,6 +390,8 @@ const searchDataDefault = () => { CriterionTypeEnum: null, PageIndex: 1, PageSize: 20, + SortField: 'Code', + Asc: true, } } export default { From 292151f7e1e8f0bbc969e9635beab46dbdac44c9 Mon Sep 17 00:00:00 2001 From: "DESKTOP-6C3NK6N\\WXS" <815034831@qq.com> Date: Mon, 14 Oct 2024 16:28:20 +0800 Subject: [PATCH 008/400] =?UTF-8?q?=E7=AE=80=E5=8E=86=E6=96=B0=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/router/index.js | 5 + src/utils/whiteList.js | 2 +- .../components/file/agreement.vue | 96 ++++++++ .../components/file/certificate.vue | 129 ++++++++++ .../components/file/curriculum.vue | 133 +++++++++++ .../curriculumVitae/components/info/info.vue | 10 + src/views/reviewers/curriculumVitae/index.vue | 220 ++++++++++++++++++ 7 files changed, 594 insertions(+), 1 deletion(-) create mode 100644 src/views/reviewers/curriculumVitae/components/file/agreement.vue create mode 100644 src/views/reviewers/curriculumVitae/components/file/certificate.vue create mode 100644 src/views/reviewers/curriculumVitae/components/file/curriculum.vue create mode 100644 src/views/reviewers/curriculumVitae/components/info/info.vue create mode 100644 src/views/reviewers/curriculumVitae/index.vue diff --git a/src/router/index.js b/src/router/index.js index d4b2c220..302adff7 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -223,6 +223,11 @@ export const constantRoutes = [ component: () => import('@/views/reviewers/ReviewersResearch'), hidden: true }, + { + path: '/curriculumVitae', + component: () => import('@/views/reviewers/curriculumVitae/index'), + hidden: true + }, { path: '/ReviewersResearchForm', component: () => import('@/views/reviewers/ReviewersResearchForm'), diff --git a/src/utils/whiteList.js b/src/utils/whiteList.js index d48236ce..fc95b171 100644 --- a/src/utils/whiteList.js +++ b/src/utils/whiteList.js @@ -1,2 +1,2 @@ -const WHITELIST = ['/', 'researchDetail_m', '/researchForm', '/ReviewersResearch', '/login', '/error', '/resetpassword', '/recompose', '/email-recompose', '/trialStats', '/showdicom', '/imagesShare', '/audit', '/preview', '/researchLogin', '/researchLogin_m', '/blindResumeInfo', '/trialsResume', '/joinVerify', '/showNoneDicoms', '/noneDicomReading', '/clinicalData', '/readingDicoms', '/readingPage', '/visitDicomReview', '/visitNondicomReview', '/globalReview', '/adReview', '/oncologyReview', '/nonedicoms'] +const WHITELIST = ['/', "/curriculumVitae", 'researchDetail_m', '/researchForm', '/ReviewersResearch', '/login', '/error', '/resetpassword', '/recompose', '/email-recompose', '/trialStats', '/showdicom', '/imagesShare', '/audit', '/preview', '/researchLogin', '/researchLogin_m', '/blindResumeInfo', '/trialsResume', '/joinVerify', '/showNoneDicoms', '/noneDicomReading', '/clinicalData', '/readingDicoms', '/readingPage', '/visitDicomReview', '/visitNondicomReview', '/globalReview', '/adReview', '/oncologyReview', '/nonedicoms'] export default WHITELIST diff --git a/src/views/reviewers/curriculumVitae/components/file/agreement.vue b/src/views/reviewers/curriculumVitae/components/file/agreement.vue new file mode 100644 index 00000000..bedfc416 --- /dev/null +++ b/src/views/reviewers/curriculumVitae/components/file/agreement.vue @@ -0,0 +1,96 @@ + + + \ No newline at end of file diff --git a/src/views/reviewers/curriculumVitae/components/file/certificate.vue b/src/views/reviewers/curriculumVitae/components/file/certificate.vue new file mode 100644 index 00000000..93751582 --- /dev/null +++ b/src/views/reviewers/curriculumVitae/components/file/certificate.vue @@ -0,0 +1,129 @@ + + + \ No newline at end of file diff --git a/src/views/reviewers/curriculumVitae/components/file/curriculum.vue b/src/views/reviewers/curriculumVitae/components/file/curriculum.vue new file mode 100644 index 00000000..6185c1d8 --- /dev/null +++ b/src/views/reviewers/curriculumVitae/components/file/curriculum.vue @@ -0,0 +1,133 @@ + + + \ No newline at end of file diff --git a/src/views/reviewers/curriculumVitae/components/info/info.vue b/src/views/reviewers/curriculumVitae/components/info/info.vue new file mode 100644 index 00000000..06555a5e --- /dev/null +++ b/src/views/reviewers/curriculumVitae/components/info/info.vue @@ -0,0 +1,10 @@ + + + \ No newline at end of file diff --git a/src/views/reviewers/curriculumVitae/index.vue b/src/views/reviewers/curriculumVitae/index.vue new file mode 100644 index 00000000..04a065fa --- /dev/null +++ b/src/views/reviewers/curriculumVitae/index.vue @@ -0,0 +1,220 @@ + + + \ No newline at end of file From a3e544f6e495a02ea75d0f1d83f61baac2a009c9 Mon Sep 17 00:00:00 2001 From: caiyiling <1321909229@qq.com> Date: Tue, 15 Oct 2024 15:30:36 +0800 Subject: [PATCH 009/400] =?UTF-8?q?=E9=98=85=E7=89=87=E6=A0=87=E5=87=86?= =?UTF-8?q?=E9=85=8D=E7=BD=AECRF=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/dictionary.js | 16 + .../template/components/CriterionFormItem.vue | 2 +- .../components/CriterionQuestionForm.vue | 719 ++++++++++------- .../template/components/CriterionsConfig.vue | 4 +- .../template/components/TableQsForm.vue | 485 +++++++----- .../customize/CustomizeQuestionFormItem.vue | 6 +- .../customize/CustomizeQuestionsPreview.vue | 22 +- .../dicoms/customize/CustomizeReportPage.vue | 12 +- .../components/QuestionFormItem.vue | 12 +- .../components/QuestionTableFormItem.vue | 22 +- .../reading-unit/components/QuestionsForm.vue | 744 ++++++++++-------- .../components/QuestionsPreview.vue | 1 - .../reading-unit/components/TableQsForm.vue | 440 +++++++---- 13 files changed, 1471 insertions(+), 1014 deletions(-) diff --git a/src/api/dictionary.js b/src/api/dictionary.js index 3a45df78..99be1f16 100644 --- a/src/api/dictionary.js +++ b/src/api/dictionary.js @@ -1045,4 +1045,20 @@ export function getExploreRecommentInfo(params) { method: 'get', params }) +} + +export function getSystemCalculateQuestions(params) { + return request({ + url: `/ReadingQuestion/getSystemCalculateQuestions`, + method: 'post', + data: params + }) +} + +export function getSystemCalculateTableQuestions(params) { + return request({ + url: `/ReadingQuestion/getSystemCalculateTableQuestions`, + method: 'post', + data: params + }) } \ No newline at end of file diff --git a/src/views/dictionary/template/components/CriterionFormItem.vue b/src/views/dictionary/template/components/CriterionFormItem.vue index efb01afe..16b7dfd4 100644 --- a/src/views/dictionary/template/components/CriterionFormItem.vue +++ b/src/views/dictionary/template/components/CriterionFormItem.vue @@ -13,7 +13,7 @@ {{ question.GroupName }}
{{ question.QuestionName }} diff --git a/src/views/dictionary/template/components/CriterionQuestionForm.vue b/src/views/dictionary/template/components/CriterionQuestionForm.vue index 76512d45..0c3579c6 100644 --- a/src/views/dictionary/template/components/CriterionQuestionForm.vue +++ b/src/views/dictionary/template/components/CriterionQuestionForm.vue @@ -6,9 +6,10 @@ size="small" :rules="rules" :disabled="type === 'look'" - label-width="130px" + label-width="140px" >
+ + - - - - - + - - - - - {{ item.label }} - - - - - - - - - {{ item.label }} - - - - - - - - - - - - - - - - - - - - {{ item.label }} - - - - - - - - - - - - - - - - - {{ item.label }} - - - - + 公有属性 + - - - - - - - - - - - - - - - - - - - - - {{ item.label }} - - - @@ -396,14 +188,6 @@ label="必填触发值" prop="RelevanceValueList" > - - - - - - - - - - - - - - - - {{ item.label }} + + + + + {{ item.label }} + + + + + + v-for="item in $d.ExportResult" + :key="`ExportResult${item.value}`" + :label="item.value" + :value="item.label"> + - + + - - + + + + + + + + + + + + + + + + {{ item.label }} + + + + 私有属性 + + + + + {{ item.label }} + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + - - + + - + - - - + + + + + + + {{ item.label }} + {{ item.label }} + + + + + + + + + {{ item.label }} + - + + + + + + + + + + + + + + + + {{ item.label }} + + + + + + + + + + +
+ + + + + + + + + + + + + + +
+
+
-
info
-
summarize
-
specialty
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
@@ -72,8 +96,30 @@ import curriculum from './components/file/curriculum.vue' import certificate from './components/file/certificate.vue' import agreement from './components/file/agreement.vue' +import info from './components/info/info.vue' +import summarize from './components/info/summarize.vue' +import specialty from './components/info/specialty.vue' +import educationalExperience from './components/info/educationalExperience.vue' +import continuingTraining from './components/info/continuingTraining.vue' +import scientificResearchProject from './components/info/scientificResearchProject.vue' +import clinicalTrials from './components/info/clinicalTrials.vue' +import treatise from './components/info/treatise.vue' +import other from './components/info/other.vue' export default { - components: { curriculum, certificate, agreement }, + components: { + curriculum, + certificate, + agreement, + info, + summarize, + specialty, + educationalExperience, + continuingTraining, + scientificResearchProject, + clinicalTrials, + treatise, + other, + }, data() { return { activeIndex: 'info', @@ -173,6 +219,16 @@ export default { justify-content: space-between; } } +.box { + border: 1px solid #ddd; + border-radius: 3px; + padding: 15px; + margin-bottom: 20px; +} +::v-deep .noData { + color: #909399; + text-align: center; +} .rightFile { width: 300px; padding-right: 10px; @@ -196,10 +252,7 @@ export default { justify-content: center; margin-bottom: 10px; } - ::v-deep .noData { - color: #909399; - text-align: center; - } + ::v-deep .file { width: 100%; display: flex; From 8790c8f8143d2298c808f65d69f4785531cac6c9 Mon Sep 17 00:00:00 2001 From: caiyiling <1321909229@qq.com> Date: Wed, 16 Oct 2024 14:28:15 +0800 Subject: [PATCH 011/400] =?UTF-8?q?=E6=9C=AC=E5=9C=B0=E5=BD=B1=E5=83=8F?= =?UTF-8?q?=E9=A2=84=E8=A7=88=E6=98=BE=E7=A4=BA=E4=BF=A1=E6=81=AF=E6=9B=B4?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/dicom-show/dicom-preview.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/dicom-show/dicom-preview.vue b/src/views/dicom-show/dicom-preview.vue index a737f308..f55c83bb 100644 --- a/src/views/dicom-show/dicom-preview.vue +++ b/src/views/dicom-show/dicom-preview.vue @@ -43,7 +43,7 @@
{{ item.modality }} : {{ item.instanceCount }} Series + >{{ item.modality }} : {{ item.instanceCount }} image
From 7beec24a7c8216e03c4ee132aa1f05acb92720be Mon Sep 17 00:00:00 2001 From: "DESKTOP-6C3NK6N\\WXS" <815034831@qq.com> Date: Wed, 16 Oct 2024 15:41:01 +0800 Subject: [PATCH 012/400] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=BA=8B=E4=BB=B6?= =?UTF-8?q?=E8=8F=9C=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/admin.js | 16 +++ src/views/system/event/index.vue | 224 +++++++++++++++++++++++++++++++ 2 files changed, 240 insertions(+) create mode 100644 src/views/system/event/index.vue diff --git a/src/api/admin.js b/src/api/admin.js index c03b0d81..54432dd1 100644 --- a/src/api/admin.js +++ b/src/api/admin.js @@ -293,3 +293,19 @@ export function batchUpdateInternationalInfo(data) { data }) } +// 邮件事件消息列表 +export function getEventStoreRecordList(data) { + return request({ + url: `/EventStoreRecord/getEventStoreRecordList`, + method: 'post', + data + }) +} +// 重新发布事件消息 +export function rePublishEvent(param) { + return request({ + url: `/EventStoreRecord/rePublishEvent`, + method: 'post', + param + }) +} diff --git a/src/views/system/event/index.vue b/src/views/system/event/index.vue new file mode 100644 index 00000000..742e87c4 --- /dev/null +++ b/src/views/system/event/index.vue @@ -0,0 +1,224 @@ + + + From 9a77ce849bbae965c116880ce6a6ca1fdd5fb953 Mon Sep 17 00:00:00 2001 From: "DESKTOP-6C3NK6N\\WXS" <815034831@qq.com> Date: Wed, 16 Oct 2024 15:41:14 +0800 Subject: [PATCH 013/400] =?UTF-8?q?=E7=AE=80=E5=8E=86=E9=A2=84=E8=A7=88?= =?UTF-8?q?=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/reviewers/curriculumVitae/index.vue | 14 +- .../reviewers/curriculumVitae/preview.vue | 316 ++++++++++++++++++ 2 files changed, 329 insertions(+), 1 deletion(-) create mode 100644 src/views/reviewers/curriculumVitae/preview.vue diff --git a/src/views/reviewers/curriculumVitae/index.vue b/src/views/reviewers/curriculumVitae/index.vue index 33dfde45..c0efa720 100644 --- a/src/views/reviewers/curriculumVitae/index.vue +++ b/src/views/reviewers/curriculumVitae/index.vue @@ -50,7 +50,9 @@ {{ $t('curriculumVitae:button:importResume') }} - {{ $t('common:button:preview') }} + {{ + $t('common:button:preview') + }}
@@ -90,6 +92,9 @@
+ + + diff --git a/src/views/reviewers/curriculumVitae/preview.vue b/src/views/reviewers/curriculumVitae/preview.vue new file mode 100644 index 00000000..fa967bab --- /dev/null +++ b/src/views/reviewers/curriculumVitae/preview.vue @@ -0,0 +1,316 @@ + + + \ No newline at end of file From 12e1454be444d2f8ac1a5bbb8f9abec1914f77a8 Mon Sep 17 00:00:00 2001 From: "DESKTOP-6C3NK6N\\WXS" <815034831@qq.com> Date: Wed, 16 Oct 2024 15:47:20 +0800 Subject: [PATCH 014/400] =?UTF-8?q?=E4=B8=AD=E5=BF=83=E8=B0=83=E7=A0=94?= =?UTF-8?q?=E8=A1=A8=E6=9D=83=E9=99=90=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/research.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/api/research.js b/src/api/research.js index 1b2f8836..086c0294 100644 --- a/src/api/research.js +++ b/src/api/research.js @@ -12,7 +12,8 @@ export function verifySendCode(param) { return request({ url: '/TrialSiteSurvey/verifySendCode', method: 'post', - data: param + data: param, + clearToken: true }) } From 3b7ea6491e34debfd75f137577370790b4ba29a1 Mon Sep 17 00:00:00 2001 From: "DESKTOP-6C3NK6N\\WXS" <815034831@qq.com> Date: Wed, 16 Oct 2024 16:13:19 +0800 Subject: [PATCH 015/400] =?UTF-8?q?lili=E6=B7=BB=E5=8A=A0=E5=85=B3?= =?UTF-8?q?=E4=BA=8E=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/login/index.vue | 35 +++++++++++++++++++++++++++++------ 1 file changed, 29 insertions(+), 6 deletions(-) diff --git a/src/views/login/index.vue b/src/views/login/index.vue index 3583cda8..db896199 100644 --- a/src/views/login/index.vue +++ b/src/views/login/index.vue @@ -155,6 +155,14 @@ 关于 + -

关于

+

+ About +

+

关于

- {{ $t('login:title:system_title') }} + {{ $t('login:title:system_title_about') }}

{{ $t('login:title:system') }}

@@ -191,18 +205,24 @@ Copyright © {{ new Date().getFullYear() }} 上海展影医疗科技有限公司 版权所有

+

+ © {{ new Date().getFullYear() }} Elevate Imaging Inc. +

Copyright © {{ new Date().getFullYear() }} Shanghai Extensive Imaging Inc.

-
+
+ +
+
@@ -263,6 +283,9 @@ export default { }, computed: { ...mapGetters(['asyncRoutes', 'routes', 'language']), + host() { + return window.location.host + }, }, watch: { '$i18n.locale': { From ccdedbee2fc92dc2f2b6437c29ec4c9793ac9b48 Mon Sep 17 00:00:00 2001 From: caiyiling <1321909229@qq.com> Date: Wed, 16 Oct 2024 16:20:34 +0800 Subject: [PATCH 016/400] =?UTF-8?q?=E5=BD=B1=E5=83=8F=E6=B5=8F=E8=A7=88?= =?UTF-8?q?=E9=A1=B5=E5=B7=A5=E5=85=B7=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Dicom/DicomCanvas.vue | 12 ++++++++-- .../tools/RectangleRoi/RectangleRoiTool.js | 22 ++++++++++++++----- 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/src/components/Dicom/DicomCanvas.vue b/src/components/Dicom/DicomCanvas.vue index 24cce9e1..8733c5db 100644 --- a/src/components/Dicom/DicomCanvas.vue +++ b/src/components/Dicom/DicomCanvas.vue @@ -108,6 +108,8 @@ import invertOrientationString from '@/views/trials/trials-panel/reading/dicoms/ import calculateSUV from '@/views/trials/trials-panel/reading/dicoms/tools/calculateSUV' // import requestPoolManager from '@/utils/request-pool' import ScaleOverlayTool from '@/views/trials/trials-panel/reading/dicoms/tools/ScaleOverlay/ScaleOverlayTool' +import RectangleRoiTool from '@/views/trials/trials-panel/reading/dicoms/tools/RectangleRoi/RectangleRoiTool' +import EllipticalRoiTool from '@/views/trials/trials-panel/reading/dicoms/tools/EllipticalRoi/EllipticalRoiTool' cornerstoneTools.external.cornerstone = cornerstone cornerstoneTools.external.Hammer = Hammer cornerstoneTools.external.cornerstoneMath = cornerstoneMath @@ -262,7 +264,13 @@ export default { apiTool ) if (!toolAlreadyAddedToElement) { - cornerstoneTools.addToolForElement(element, apiTool) + if (toolName === 'RectangleRoi') { + cornerstoneTools.addToolForElement(element, apiTool, { configuration: { showMinMax: true, showStatsText: true}}) + } else if (toolName === 'EllipticalRoi') { + cornerstoneTools.addToolForElement(element, apiTool, { configuration: { showMinMax: true}}) + } else { + cornerstoneTools.addToolForElement(element, apiTool) + } } } // Setup button listener @@ -322,7 +330,7 @@ export default { // cornerstoneTools.addStackStateManager(this.canvas, ['stack', 'stackPrefetch', 'playClip']) cornerstoneTools.addToolState(this.canvas, 'stack', this.stack) // cornerstoneTools.stackPrefetch.enable(this.canvas) - cornerstone.updateImage(element, true) + cornerstone.updateImage(element, true) // cornerstoneTools.stackPrefetch.setConfiguration({ maxImagesToPrefetch: Infinity, // preserveExistingPool: true }) // cornerstoneTools.stackPrefetch.enable(this.canvas) diff --git a/src/views/trials/trials-panel/reading/dicoms/tools/RectangleRoi/RectangleRoiTool.js b/src/views/trials/trials-panel/reading/dicoms/tools/RectangleRoi/RectangleRoiTool.js index 6a201329..99b942c5 100644 --- a/src/views/trials/trials-panel/reading/dicoms/tools/RectangleRoi/RectangleRoiTool.js +++ b/src/views/trials/trials-panel/reading/dicoms/tools/RectangleRoi/RectangleRoiTool.js @@ -40,7 +40,8 @@ export default class RectangleRoiTool extends cornerstoneTools.RectangleRoiTool drawHandles: true, drawHandlesOnHover: false, hideHandlesIfMoving: false, - renderDashed: false + renderDashed: false, + showStatsText: false // showMinMax: false, // showHounsfieldUnits: true }, @@ -531,12 +532,15 @@ function _createTextBoxContent( minString += ' ' } - otherLines.push(`${minString}${maxString}`) + otherLines.push(`${minString}`) + otherLines.push(`${maxString}`) } } - - // textLines.push(_formatArea(area, hasPixelSpacing)) - // otherLines.forEach(x => textLines.push(x)) + if (options.showStatsText) { + textLines.push(_formatArea(area, hasPixelSpacing)) + otherLines.forEach(x => textLines.push(x)) + } + if (data.hasOwnProperty('remark')) { if (data.hasOwnProperty('status') && data.status) { textLines.push(`${data.remark}(${data.status})`) @@ -546,3 +550,11 @@ function _createTextBoxContent( } return textLines } +function _formatArea(area, hasPixelSpacing) { + // This uses Char code 178 for a superscript 2 + const suffix = hasPixelSpacing + ? ` mm${String.fromCharCode(178)}` + : ` px${String.fromCharCode(178)}`; + + return `Area: ${numbersWithCommas(area.toFixed(2))}${suffix}`; +} From a6b68ea599fd86fbe9336103244c75f41ddf4b40 Mon Sep 17 00:00:00 2001 From: caiyiling <1321909229@qq.com> Date: Wed, 16 Oct 2024 16:22:02 +0800 Subject: [PATCH 017/400] 1 --- src/components/Dicom/DicomCanvas.vue | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/components/Dicom/DicomCanvas.vue b/src/components/Dicom/DicomCanvas.vue index 8733c5db..9332f54a 100644 --- a/src/components/Dicom/DicomCanvas.vue +++ b/src/components/Dicom/DicomCanvas.vue @@ -108,8 +108,6 @@ import invertOrientationString from '@/views/trials/trials-panel/reading/dicoms/ import calculateSUV from '@/views/trials/trials-panel/reading/dicoms/tools/calculateSUV' // import requestPoolManager from '@/utils/request-pool' import ScaleOverlayTool from '@/views/trials/trials-panel/reading/dicoms/tools/ScaleOverlay/ScaleOverlayTool' -import RectangleRoiTool from '@/views/trials/trials-panel/reading/dicoms/tools/RectangleRoi/RectangleRoiTool' -import EllipticalRoiTool from '@/views/trials/trials-panel/reading/dicoms/tools/EllipticalRoi/EllipticalRoiTool' cornerstoneTools.external.cornerstone = cornerstone cornerstoneTools.external.Hammer = Hammer cornerstoneTools.external.cornerstoneMath = cornerstoneMath From 6d943f94d8bcb768075f9e9f20cfe25a9b8609a8 Mon Sep 17 00:00:00 2001 From: "DESKTOP-6C3NK6N\\WXS" <815034831@qq.com> Date: Wed, 16 Oct 2024 16:25:54 +0800 Subject: [PATCH 018/400] 1 --- src/main.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main.js b/src/main.js index 4cbcdfbc..2a547c89 100644 --- a/src/main.js +++ b/src/main.js @@ -15,7 +15,7 @@ import '@/styles/index.scss' // global css import App from './App' import store from './store' import router from './router' - +import WHITELIST from "./utils/whiteList" import '@/icons' // icon import '@/permission' // permission control import md5 from 'js-md5' @@ -324,7 +324,7 @@ async function VueInit() { if (eval(process.env.VUE_APP_LOGIN_FOR_PERMISSION)) { setInterval(() => { var lang = zzSessionStorage.getItem('lang') ? zzSessionStorage.getItem('lang') : 'zh' - if (_vm.$route.path === '/ReviewersResearchForm' || _vm.$route.path === '/ReviewersResearch' || _vm.$route.path === '/login' || _vm.$route.path === '/researchForm' || _vm.$route.path === '/researchDetail_m' || _vm.$route.path === '/researchLogin_m' || _vm.$route.path === '/researchLogin' || _vm.$route.path === '/email-recompose' || _vm.$route.path === '/recompose' || _vm.$route.path === '/resetpassword' || _vm.$route.path === '/error') { + if (WHITELIST.includes(_vm.$route.path)) { return } if (_vm.$store.state.user.userId !== zzSessionStorage.getItem('userId')) { @@ -388,7 +388,7 @@ async function VueInit() { // window.VUE_APP_COMPANY_NAME = process.env.VUE_APP_COMPANY_NAME; waitOperate(eval(process.env.VUE_APP_LOGOUT_FOR_PERMISSION) ? () => { var lang = zzSessionStorage.getItem('lang') ? zzSessionStorage.getItem('lang') : 'zh' - if (_vm.$store.state.trials.unlock || _vm.$route.path === '/ReviewersResearchForm' || _vm.$route.path === '/ReviewersResearch' || _vm.$route.path === '/login' || _vm.$route.path === '/researchForm' || _vm.$route.path === '/researchDetail_m' || _vm.$route.path === '/researchLogin_m' || _vm.$route.path === '/researchLogin' || _vm.$route.path === '/email-recompose' || _vm.$route.path === '/recompose' || _vm.$route.path === '/resetpassword' || _vm.$route.path === '/error') { + if (_vm.$store.state.trials.unlock || WHITELIST.includes(_vm.$route.path)) { count = 0; localStorage.setItem('count', '0') return @@ -417,7 +417,7 @@ async function VueInit() { } : () => { }, process.env.VUE_APP_LOGOUT_FOR_TIME, eval(process.env.VUE_APP_LOCK_FOR_PERMISSION) ? () => { var lang = zzSessionStorage.getItem('lang') ? zzSessionStorage.getItem('lang') : 'zh' - if (_vm.$store.state.trials.unlock || _vm.$route.path === '/ReviewersResearchForm' || _vm.$route.path === '/ReviewersResearch' || _vm.$route.path === '/login' || _vm.$route.path === '/researchForm' || _vm.$route.path === '/researchDetail_m' || _vm.$route.path === '/researchLogin_m' || _vm.$route.path === '/researchLogin' || _vm.$route.path === '/email-recompose' || _vm.$route.path === '/recompose' || _vm.$route.path === '/resetpassword' || _vm.$route.path === '/error') { + if (_vm.$store.state.trials.unlock || WHITELIST.includes(_vm.$route.path)) { count = 0; localStorage.setItem('count', '0') if (_vm.$route.path === '/login') { From 07a4c66fcc6821692071c088238818415b37a71a Mon Sep 17 00:00:00 2001 From: "DESKTOP-6C3NK6N\\WXS" <815034831@qq.com> Date: Thu, 17 Oct 2024 09:46:06 +0800 Subject: [PATCH 019/400] =?UTF-8?q?=E8=8B=B1=E6=96=87=E7=8E=AF=E5=A2=83log?= =?UTF-8?q?o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/zzlogo4.png | Bin 15219 -> 7479 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/assets/zzlogo4.png b/src/assets/zzlogo4.png index 6a21b1c6369c6dc97075324067919a919f2db72d..5f62d7fe29d300cbead6dff60f72138fa2897108 100644 GIT binary patch literal 7479 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 C`3iLa literal 15219 zcma*OWl&sA7d48zyIUYQ1or_3hu{!2xVyW%%U}uaF2UVhLvVL@clqXdzx(svs=KRZ z>hx4i_c?vK_ugx*-H}QPQm9BoNDvSZs4~*xDi9EmGT>`B1UT>&`-1WfxB=;`A_at~ zo+3F0H(<;~-aV_PBYUF3v(SxYn;h2?c>jZTt_OAZd978zPCsiYo<3rbpZ zgq%sn;7L(m|E8`f<=w4u zFqyI0@xf?lFw(bh^|oZup`wsI!D<`J$E3e<=S$QO60eQFTcfs`^A(LOB7MJY+h4gE zP2jV$yTHiZWxMyhHysZHFd@Z{7AIMqxBrvS?%$N~tcC28!{5*+0iY!MP5M3F2Y&LL zb^bIp{9np7F}c(^#d_4WnJoQuE<|sWK5C*`2y$h@yD>V0HfZM@QXi13JfWv$279f z5_m^$MhWl4DA@-gN`GGf`Rw<%1lZStCeddsBD_Fbp@}Et08Xh(2HZv*PrgDA^bRGR z5oGne!h;=FD7|bA#xx-m)*?^o^7DFAE)JkzCx+4baV^%S!6jE|skx<#outG(zfJd` zne>W+lCu3BeAS)@DpAC^R9We zc>SEtMM0tEb{n0)ytSUL5n;_gaC9!>Qr?oh zRe?V56y7GI7w?GU4C>K7%{do+MnXR{6VD~7AY)QxV8}U8l@-^ax*vBNOEtSEGGy%Q zZKzfLp~O&snMXC@+@&ZW`tVw>^Y8pUaEdhlgzv?NQbOPSrR_?JP`&|^Zs^D4s9S+D zF8+p@7GNihb~RSgIq1u}rVvL3BF`85*@;tO(1ds}azlC{;SUJq6qELU7HiEJiz*c( zT%1H#_=)c`J#wzCYUb`|xzNpM{+J4k9rJp>)6gOD)r%3#9Z+Z|a35A14_>7#MfAd)AlIZy1{d!kR}>yri1IST8yus*K%7tD89 z&vQ#3y6aN%R)^uQSTba}phslki6$Pe<(!U9QsRjD)BdhS4#VJaQQhm`^(TlT4%b}6|v_a`_WE+`k=FOj( zeVHXLJ{ZVQ)(NW73|2{dklX&Er>WP%HNPMGxwH%uRDYE#$A3zY?nI(5e*Ye?QOWYA zPbQOnTGePAmZ^}V#!{0dq{sio#m^7TJY2^-ae(0e+E;`YyFq)5W(?VJIO$nPTGh8V zQcws1fi8k!cj84sNqZD-yA9w2P3Eg$LjF+E(jPbJEaxE{$I!GdyWiQ&#!bTAt1B*K zyZ*L5v}v%cemj%YNRUU+Ls*!5VGg1X`3rx*+Ry9JYDt*WXfPxPN`MDh{fz7+_B!rs z)qtD~*kCAO zOdfq5KTf(zk6|r8xQw6`nVZlM3F|=Qt%IrYg1&|jagMKUgj3iX4x>bG3bpn-Uyn0# zhSbuc4$;opt6!jx3kMbk$9y9Go6>lHBh8<142*I(b?xE^kdm>pycHu5#<%bs`MXIu zI&dAZ>{?Y{ho7ea!w6NCX7q;ZG;8Yj-+PVYIg5HyY>x}CS=_Mj#}Tm<;~4fY$CJh~ z;|)v{I@D!qlQY|1{I8QamvDE&wzL+iU<6L?sR=Ewi$6+CTF+>kS7`C@Ps{`&7jZ09 z?KaO2uh`S#*T2sc1-;5wZvDW!4n`2(u?pIFIOgv`1uuUQm7~h4qzMHSj!2d!0lO zaG;z`ZF50+v4lT;vnwajlkQ<$xZOC#TA3By!z=VXXO`CEvU3cBLI#%kY_`{Hh<}F} zztD6g8;bA#-&_e^F-jlJ2*JM}a=Y~RVJ7dT#{?C^26oTS=f)jLI z50p1*O;2!b1mPH!!38dmkg#CS<1ANiGc&c-4t7qlNZ(Wh>-49(x5CPV&BS~TeiD#L z)leZgJspf54|07(p5YZi$m&LYUzE0i4AJ_ifw*f;Nc1suB@w+}09t z$nI}WThk)c`k&MJe@ww4 z^W}a1@(^lrytSz6#Uv?B=K|!n+Bo9E;a&YhY&x97T(A`9>;Jq2UOcRh0rRR1&{m|KM9=O{BycHstB z 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 AA^-pY From 2b7a100d7321420498fb8e56b1634ce769163dc1 Mon Sep 17 00:00:00 2001 From: "DESKTOP-6C3NK6N\\WXS" <815034831@qq.com> Date: Thu, 17 Oct 2024 13:57:30 +0800 Subject: [PATCH 020/400] =?UTF-8?q?cron=E9=97=AE=E9=A2=98=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../template/email/components/EmailForm.vue | 2 + .../email-manage/components/EmailForm.vue | 313 +++++++++++++----- 2 files changed, 235 insertions(+), 80 deletions(-) diff --git a/src/views/dictionary/template/email/components/EmailForm.vue b/src/views/dictionary/template/email/components/EmailForm.vue index b8bd2c27..05704515 100644 --- a/src/views/dictionary/template/email/components/EmailForm.vue +++ b/src/views/dictionary/template/email/components/EmailForm.vue @@ -284,6 +284,7 @@ From 77f8a80fd68bb5b50e8218a64f06389e3ce00960 Mon Sep 17 00:00:00 2001 From: caiyiling <1321909229@qq.com> Date: Thu, 17 Oct 2024 14:50:57 +0800 Subject: [PATCH 021/400] =?UTF-8?q?ecrf=E9=85=8D=E7=BD=AE=E6=9B=B4?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../template/components/CriterionFormItem.vue | 6 ++++++ .../components/CriterionQuestionForm.vue | 1 + .../template/components/TableQsForm.vue | 1 + .../components/QuestionFormItem.vue | 17 ++++++++--------- .../components/QuestionTableFormItem.vue | 12 ++++++------ 5 files changed, 22 insertions(+), 15 deletions(-) diff --git a/src/views/dictionary/template/components/CriterionFormItem.vue b/src/views/dictionary/template/components/CriterionFormItem.vue index 16b7dfd4..b7398f76 100644 --- a/src/views/dictionary/template/components/CriterionFormItem.vue +++ b/src/views/dictionary/template/components/CriterionFormItem.vue @@ -143,6 +143,12 @@ v-if="question.Type==='number'" v-model="questionForm[question.Id]" /> + + - + { + this.$set(this.QuestionsForm, i.Id, null) + }) this.QuestionsForm = {}; }, getOrganInfoList() { diff --git a/src/views/trials/trials-panel/setting/reading-unit/components/QuestionTableFormItem.vue b/src/views/trials/trials-panel/setting/reading-unit/components/QuestionTableFormItem.vue index f39bb20b..0805c904 100644 --- a/src/views/trials/trials-panel/setting/reading-unit/components/QuestionTableFormItem.vue +++ b/src/views/trials/trials-panel/setting/reading-unit/components/QuestionTableFormItem.vue @@ -131,7 +131,7 @@ Date: Thu, 17 Oct 2024 15:39:34 +0800 Subject: [PATCH 022/400] =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E9=98=85?= =?UTF-8?q?=E7=89=87=E9=85=8D=E7=BD=AE=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/QuestionFormItem.vue | 16 ++++++--- .../components/QuestionTableFormItem.vue | 35 ++++++++++++------- 2 files changed, 33 insertions(+), 18 deletions(-) diff --git a/src/views/trials/trials-panel/setting/reading-unit/components/QuestionFormItem.vue b/src/views/trials/trials-panel/setting/reading-unit/components/QuestionFormItem.vue index b4a8bf53..de2f752d 100644 --- a/src/views/trials/trials-panel/setting/reading-unit/components/QuestionFormItem.vue +++ b/src/views/trials/trials-panel/setting/reading-unit/components/QuestionFormItem.vue @@ -328,8 +328,8 @@ :visit-task-id="visitTaskId" :criterion-id="criterionId" @formItemTableNumberChange="formItemTableNumberChange" - @setFormItemData="setFormItemData" - @resetFormItemData="resetFormItemData" + @setFormItemData="setTblFormItemData" + @resetFormItemData="resetTblFormItemData" /> @@ -151,25 +305,43 @@ diff --git a/src/views/reviewers/components/BasicInfo.vue b/src/views/reviewers/components/BasicInfo.vue index 80a76aad..27651faa 100644 --- a/src/views/reviewers/components/BasicInfo.vue +++ b/src/views/reviewers/components/BasicInfo.vue @@ -15,31 +15,62 @@ > - - + + - - + + - - + + - - + + - + - - + + - + - - + + - - - - - + + + + + - + - + - - + + {{ $t('common:button:save') }} + > + {{ $t('common:button:save') }} @@ -142,6 +200,15 @@ import { getBasicInfo, addOrUpdateDoctorBasicInfo } from '@/api/reviewers' import { changeURLStatic } from '@/utils/history.js' import { getBasicDataSelects } from '@/api/dictionary/dictionary' export default { + props: { + reviewerId: { + type: String, + }, + isSystem: { + type: Boolean, + default: true, + }, + }, data() { return { basicInfo: { @@ -156,58 +223,58 @@ export default { EMail: '', WeChat: '', Introduction: '', - Nation: 0 + Nation: 0, }, rules: { FirstName: [ { required: true, message: 'Please enter FirstName', - trigger: 'blur' + trigger: 'blur', }, - { max: 50, message: 'The maximum length is 50' } + { max: 50, message: 'The maximum length is 50' }, ], LastName: [ { required: true, message: 'Please enter LastName', trigger: 'blur' }, - { max: 50, message: 'The maximum length is 50' } + { max: 50, message: 'The maximum length is 50' }, ], ChineseName: [{ max: 50, message: 'The maximum length is 50' }], Sex: [ - { required: true, message: 'Please select gender', trigger: 'blur' } + { required: true, message: 'Please select gender', trigger: 'blur' }, ], TitleIds: [ - { required: true, message: 'Please select Title', trigger: 'blur' } + { required: true, message: 'Please select Title', trigger: 'blur' }, ], Phone: [ { required: true, message: 'Please enter phone number', - trigger: 'blur' + trigger: 'blur', }, - { max: 20, min: 7, message: 'The length is 7 to 20' } + { max: 20, min: 7, message: 'The length is 7 to 20' }, ], EMail: [ { required: true, message: 'Please input the email address', - trigger: 'blur' + trigger: 'blur', }, { type: 'email', message: 'Please input the correct email address', - trigger: 'blur,change' + trigger: 'blur,change', }, - { max: 50, message: 'The maximum length is 50' } + { max: 50, message: 'The maximum length is 50' }, ], - WeChat: [{ max: 50, message: 'The maximum length is 50' }] + WeChat: [{ max: 50, message: 'The maximum length is 50' }], }, isDisabled: false, loading: false, genderOptions: [ { label: 'Male', value: 0 }, - { label: 'Female', value: 1 } + { label: 'Female', value: 1 }, ], - dictionaryList: {} + dictionaryList: {}, } }, mounted() { @@ -227,7 +294,12 @@ export default { this.$message.success('Saved successfully') if (!this.id) { this.basicInfo.Id = res.Result.Id - changeURLStatic('Id', res.Result.Id) + if (this.isSystem) { + changeURLStatic('Id', res.Result.Id) + } + if (!this.reviewerId) { + this.$emit('update:reviewerId', res.Result.Id) + } this.basicInfo.ReviewerCode = res.Result.ReviewerCode } }) @@ -241,27 +313,29 @@ export default { async initForm() { await this.getDicData() - const id = this.$route.query.Id + const id = this.$route.query.Id || this.reviewerId if (id) { this.loading = true - getBasicInfo(id).then((res) => { - // eslint-disable-next-line no-unused-vars - const { TitleList, ...param } = res.Result - this.basicInfo = param - this.loading = false - }).catch(() => { - this.loading = false - }) + getBasicInfo(id) + .then((res) => { + // eslint-disable-next-line no-unused-vars + const { TitleList, ...param } = res.Result + this.basicInfo = param + this.loading = false + }) + .catch(() => { + this.loading = false + }) } }, getDicData() { - getBasicDataSelects(['Title']).then(res => { - this.dictionaryList = { ...res.Result } - }).catch(() => { - - }) - } - } + getBasicDataSelects(['Title']) + .then((res) => { + this.dictionaryList = { ...res.Result } + }) + .catch(() => {}) + }, + }, } diff --git a/src/views/reviewers/components/EducationTraining.vue b/src/views/reviewers/components/EducationTraining.vue index 476ab668..72d1abee 100644 --- a/src/views/reviewers/components/EducationTraining.vue +++ b/src/views/reviewers/components/EducationTraining.vue @@ -2,8 +2,14 @@

{{ $t('system:reviewer:title:Education') }}

- - {{ $t('common:button:add') }} + + {{ $t('common:button:add') }}
- + - + - + - + - + - + -
+

{{ $t('system:reviewer:title:Postgraduate') }}

- - {{ $t('common:button:add') }} + + {{ $t('common:button:add') }}
- + - + - + - + - + - + - + @@ -150,8 +299,18 @@ width="40%" :close-on-click-modal="false" > - - + + - + - - + + - + - + - + - + - + - + - + - + - - - - - - - - - - - - + - + - + - + + + + + + + + + + + - {{ $t('common:button:save') }} + {{ $t('common:button:save') }} @@ -248,8 +473,18 @@ width="40%" :close-on-click-modal="false" > - - + + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - {{ $t('common:button:save') }} + {{ $t('common:button:save') }}
diff --git a/src/views/reviewers/components/Employment.vue b/src/views/reviewers/components/Employment.vue index 24bbeea7..d8b0a888 100644 --- a/src/views/reviewers/components/Employment.vue +++ b/src/views/reviewers/components/Employment.vue @@ -1,7 +1,7 @@ diff --git a/src/views/reviewers/components/Setting.vue b/src/views/reviewers/components/Setting.vue index a3b17759..0fb8c0c4 100644 --- a/src/views/reviewers/components/Setting.vue +++ b/src/views/reviewers/components/Setting.vue @@ -1,80 +1,144 @@ diff --git a/src/views/reviewers/components/Specialty.vue b/src/views/reviewers/components/Specialty.vue index 5a636f12..36f14e1b 100644 --- a/src/views/reviewers/components/Specialty.vue +++ b/src/views/reviewers/components/Specialty.vue @@ -1,7 +1,7 @@ + + + + + + + + + + From 93c64e04f26bf4c500b291530da358a977168e2a Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Fri, 18 Oct 2024 11:08:22 +0800 Subject: [PATCH 024/400] 1 --- src/api/admin.js | 6 +++--- src/views/system/event/index.vue | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/api/admin.js b/src/api/admin.js index 54432dd1..05e82744 100644 --- a/src/api/admin.js +++ b/src/api/admin.js @@ -302,10 +302,10 @@ export function getEventStoreRecordList(data) { }) } // 重新发布事件消息 -export function rePublishEvent(param) { +export function rePublishEvent(params) { return request({ url: `/EventStoreRecord/rePublishEvent`, - method: 'post', - param + method: 'get', + params }) } diff --git a/src/views/system/event/index.vue b/src/views/system/event/index.vue index 742e87c4..d28cacf6 100644 --- a/src/views/system/event/index.vue +++ b/src/views/system/event/index.vue @@ -164,6 +164,7 @@ export default { EventId: row.Id, }) if (res.IsSuccess) { + this.$message.success(this.$t('system:event:message:rePublishSuccess')) this.getList() } } catch (err) { From 6288770c260440f0093c42efe3c2061289aab288 Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Fri, 18 Oct 2024 11:08:59 +0800 Subject: [PATCH 025/400] 1 --- src/views/system/event/index.vue | 81 +++++++++++++++----------------- 1 file changed, 39 insertions(+), 42 deletions(-) diff --git a/src/views/system/event/index.vue b/src/views/system/event/index.vue index d28cacf6..e1879abc 100644 --- a/src/views/system/event/index.vue +++ b/src/views/system/event/index.vue @@ -39,14 +39,14 @@ size="mini" @click="getList" > - {{ $t('common:button:search') }} + {{ $t("common:button:search") }} - {{ $t('common:button:reset') }} + {{ $t("common:button:reset") }} @@ -67,7 +67,7 @@ sortable="custom" > - {{ $fd('EventState', scope.row.EventState) }} + {{ $fd("EventState", scope.row.EventState) }} @@ -91,13 +91,8 @@ show-overflow-tooltip > @@ -114,21 +109,21 @@
\ No newline at end of file diff --git a/src/views/reviewers/curriculumVitae/index.vue b/src/views/reviewers/curriculumVitae/index.vue index c0efa720..5d6e6513 100644 --- a/src/views/reviewers/curriculumVitae/index.vue +++ b/src/views/reviewers/curriculumVitae/index.vue @@ -37,6 +37,9 @@ {{ $t('curriculumVitae:menu:other') }} + {{ + $t('curriculumVitae:menu:pay') + }}
@@ -82,6 +85,9 @@
+
+ +
@@ -110,6 +116,7 @@ import scientificResearchProject from './components/info/scientificResearchProje import clinicalTrials from './components/info/clinicalTrials.vue' import treatise from './components/info/treatise.vue' import other from './components/info/other.vue' +import pay from './components/info/pay.vue' import preview from './preview.vue' export default { components: { @@ -125,6 +132,7 @@ export default { clinicalTrials, treatise, other, + pay, preview, }, data() { diff --git a/src/views/reviewers/curriculumVitae/preview.vue b/src/views/reviewers/curriculumVitae/preview.vue index fa967bab..1c89ff70 100644 --- a/src/views/reviewers/curriculumVitae/preview.vue +++ b/src/views/reviewers/curriculumVitae/preview.vue @@ -1,238 +1,392 @@ {{$t('trials:readingUnit:title:privateProperties')}} + + + + + {{ item.label }} + + + @@ -375,7 +409,7 @@ /> - @@ -383,7 +417,7 @@ :disabled="form.DataSource === 1" v-model="form.DefaultValue" /> - + --> @@ -444,28 +478,7 @@ - - - - - {{ item.label }} - - - + { - if (value === '') { - callback(new Error(this.$t('common:ruleMessage:specify'))) - } else { - var arr = value.split('|') - if (new Set(arr).size !== arr.length) { - // '选项不允许存在相同值' - callback(new Error(this.$t('trials:readingUnit:qsList:message:msg0'))) - } else { - callback() - } - } - } return { ClassifyAlgorithmsList: [], form: { @@ -858,13 +858,10 @@ export default { Type: [ {required: true, message: this.$t('common:ruleMessage:select'), trigger: ['blur', 'change']} ], - QuestionName: [{required: true, message: this.$t('common:ruleMessage:specify'), trigger: ['blur', 'change']}, - {max: 50, message: `${this.$t('common:ruleMessage:maxLength')} 50`}], - QuestionEnName:[{required: true, message: this.$t('common:ruleMessage:specify'), trigger: ['blur', 'change']}, - {max: 50, message: `${this.$t('common:ruleMessage:maxLength')} 50`}], - TypeValue: [{required: true, message: this.$t('common:ruleMessage:specify'), trigger: ['blur', 'change']}, - {validator: validateTypeVal, trigger: ['blur', 'change']}, - {max: 200, message: `${this.$t('common:ruleMessage:maxLength')} 200`}], + // QuestionName: [{required: true, message: this.$t('common:ruleMessage:specify'), trigger: ['blur', 'change']}, + // {max: 50, message: `${this.$t('common:ruleMessage:maxLength')} 50`}], + // QuestionEnName:[{required: true, message: this.$t('common:ruleMessage:specify'), trigger: ['blur', 'change']}, + // {max: 50, message: `${this.$t('common:ruleMessage:maxLength')} 50`}], ShowQuestion: [{required: true, message: this.$t('common:ruleMessage:select'), trigger: ['blur', 'change']}], IsRequired: [{required: true, message: this.$t('common:ruleMessage:select'), trigger: ['blur', 'change']}], ParentId: [{required: true, message: this.$t('common:ruleMessage:select'), trigger: ['blur', 'change']}], @@ -896,7 +893,8 @@ export default { lesionTypes: [], Questions: [], tableQuestions: [], - isShow: true + isShow: true, + validateTypeVal:null } }, watch: { @@ -905,6 +903,21 @@ export default { } }, mounted() { + this.validateTypeVal = (rule, value, callback) => { + if (value === '') { + callback(new Error(this.$t('common:ruleMessage:specify'))) + } else { + var arr = value.split('|') + if (new Set(arr).size !== arr.length) { + // '选项不允许存在相同值' + callback(new Error(this.$t('trials:readingUnit:qsList:message:msg0'))) + } else if (this.form.Type === 'number' && arr.findIndex(i=>isNaN(parseFloat(i)) && i!== 'NE') > -1) { + callback(new Error(this.$t('trials:readingUnit:qsList:message:msg5'))) + } else { + callback() + } + } + } this.initForm() this.getBasicConfigSelect() this.getCalculateQuestions('number') diff --git a/src/views/trials/trials-panel/setting/reading-unit/components/TableQsForm.vue b/src/views/trials/trials-panel/setting/reading-unit/components/TableQsForm.vue index 74dc41cf..fbbe30c7 100644 --- a/src/views/trials/trials-panel/setting/reading-unit/components/TableQsForm.vue +++ b/src/views/trials/trials-panel/setting/reading-unit/components/TableQsForm.vue @@ -31,6 +31,10 @@ v-if="form.Type !== 'group'&& $i18n.locale !== 'en'" :label="$t('trials:readingUnit:qsList:title:qsName')" prop="QuestionName" + :rules="[ + { required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' }, + { max: form.Type === 'summary' ? 500 : 100, message: `${this.$t('common:ruleMessage:maxLength')} ${form.Type === 'summary' ? 500 : 100}` } + ]" > @@ -401,7 +413,7 @@ { - if (value === '') { - callback(new Error(this.$t('common:ruleMessage:specify'))) - } else { - var arr = value.split('|') - if (new Set(arr).size !== arr.length) { - callback(new Error(this.$t('trials:medicalFeedbackCfg:message:msg2'))) - } else { - callback() - } - } - } return { ClassifyAlgorithmsList: [], form: { @@ -679,13 +679,13 @@ export default { Type: [ { required: true, message: this.$t('common:ruleMessage:select'), trigger: 'blur' } ], - QuestionName: [{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' }, - { max: 200, message: `${this.$t('common:ruleMessage:maxLength')} 200` }], - QuestionEnName:[{required: true, message: this.$t('common:ruleMessage:specify'), trigger: ['blur', 'change']}, - {max: 50, message: `${this.$t('common:ruleMessage:maxLength')} 50`}], - TypeValue: [{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' }, - { validator: validateTypeVal, trigger: 'blur' }, - { max: 200, message: `${this.$t('common:ruleMessage:maxLength')} 200` }], + // QuestionName: [{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' }, + // { max: 200, message: `${this.$t('common:ruleMessage:maxLength')} 200` }], + // QuestionEnName:[{required: true, message: this.$t('common:ruleMessage:specify'), trigger: ['blur', 'change']}, + // {max: 50, message: `${this.$t('common:ruleMessage:maxLength')} 50`}], + // TypeValue: [{ required: form.Type !== 'number', message: this.$t('common:ruleMessage:specify'), trigger: 'blur' }, + // { validator: validateTypeVal, trigger: 'blur' }, + // { max: 200, message: `${this.$t('common:ruleMessage:maxLength')} 200` }], ShowQuestion: [{ required: true, message: this.$t('common:ruleMessage:select'), trigger: 'blur' }], IsRequired: [{ required: true, message: this.$t('common:ruleMessage:select'), trigger: 'blur' }], ParentId: [{ required: true, message: this.$t('common:ruleMessage:select'), trigger: 'blur' }], @@ -708,7 +708,8 @@ export default { Questions: [], tableQuestions: [], LimitEdit: 0, - highlightAnswers: [] + highlightAnswers: [], + validateTypeVal: null } }, watch: { @@ -733,6 +734,21 @@ export default { } }, mounted() { + this.validateTypeVal = (rule, value, callback) => { + if (value === '') { + callback(new Error(this.$t('common:ruleMessage:specify'))) + } else { + var arr = value.split('|') + if (new Set(arr).size !== arr.length) { + // '选项不允许存在相同值' + callback(new Error(this.$t('trials:readingUnit:qsList:message:msg0'))) + } else if (this.form.Type === 'number' && arr.findIndex(i=>isNaN(parseFloat(i)) && i!== 'NE') > -1) { + callback(new Error(this.$t('trials:readingUnit:qsList:message:msg5'))) + } else { + callback() + } + } + } this.initForm() this.getCalculateTableQuestions('number') this.getCalculateTableQuestions('table') From 9bfb233270ae7b9119b257c98aa0420754d1b01b Mon Sep 17 00:00:00 2001 From: caiyiling <1321909229@qq.com> Date: Mon, 21 Oct 2024 15:24:25 +0800 Subject: [PATCH 031/400] =?UTF-8?q?=E5=B0=8F=E7=BB=93=E9=A2=98=E5=9E=8B?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dictionary/template/components/CriterionQuestionForm.vue | 4 ++-- src/views/dictionary/template/components/TableQsForm.vue | 4 ++-- .../setting/reading-unit/components/QuestionsForm.vue | 4 ++-- .../setting/reading-unit/components/TableQsForm.vue | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/views/dictionary/template/components/CriterionQuestionForm.vue b/src/views/dictionary/template/components/CriterionQuestionForm.vue index d3123e27..4e587b1a 100644 --- a/src/views/dictionary/template/components/CriterionQuestionForm.vue +++ b/src/views/dictionary/template/components/CriterionQuestionForm.vue @@ -51,7 +51,7 @@ prop="QuestionName" :rules="[ { required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' }, - { max: form.Type === 'summary' ? 500 : 100, message: `${this.$t('common:ruleMessage:maxLength')} ${form.Type === 'summary' ? 500 : 100}` } + { max: form.Type === 'summary' ? 300 : 100, message: `${this.$t('common:ruleMessage:maxLength')} ${form.Type === 'summary' ? 300 : 100}` } ]" > @@ -62,7 +62,7 @@ label="问题名称(EN)" prop="QuestionEnName" :rules="[ - { max: form.Type === 'summary' ? 500 : 100, message: `${this.$t('common:ruleMessage:maxLength')} ${form.Type === 'summary' ? 500 : 100}` } + { max: form.Type === 'summary' ? 300 : 100, message: `${this.$t('common:ruleMessage:maxLength')} ${form.Type === 'summary' ? 300 : 100}` } ]" > diff --git a/src/views/dictionary/template/components/TableQsForm.vue b/src/views/dictionary/template/components/TableQsForm.vue index 3529de9f..d72a3e43 100644 --- a/src/views/dictionary/template/components/TableQsForm.vue +++ b/src/views/dictionary/template/components/TableQsForm.vue @@ -30,7 +30,7 @@ prop="QuestionName" :rules="[ { required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' }, - { max: form.Type === 'summary' ? 500 : 100, message: `${this.$t('common:ruleMessage:maxLength')} ${form.Type === 'summary' ? 500 : 100}` } + { max: form.Type === 'summary' ? 300 : 100, message: `${this.$t('common:ruleMessage:maxLength')} ${form.Type === 'summary' ? 300 : 100}` } ]" > Date: Mon, 21 Oct 2024 15:42:18 +0800 Subject: [PATCH 032/400] =?UTF-8?q?=E9=98=85=E7=89=87=E9=A1=B5=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E4=B8=8B=E8=BD=BD=E9=A1=B5=E9=9D=A2=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../trials-panel/reading/dicoms/components/DicomViewer.vue | 4 ++-- .../reading/dicoms/customize/CustomizeDicomViewer.vue | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) 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 90fca6c6..64973ddc 100644 --- a/src/views/trials/trials-panel/reading/dicoms/components/DicomViewer.vue +++ b/src/views/trials/trials-panel/reading/dicoms/components/DicomViewer.vue @@ -1221,8 +1221,8 @@ export default { if (idx > -1) { this.taskId = this.visitTaskList[idx].VisitTaskId } - this.uploadSubjectCode = this.$route.query.subjectCode||localStorage.getItem("subjectCode") - this.uploadSubjectId = this.$route.query.subjectId||localStorage.getItem("subjectId") + this.uploadSubjectCode = localStorage.getItem("subjectCode") + this.uploadSubjectId = localStorage.getItem("subjectId") this.uploadTrialCriterion = this.trialCriterion this.uploadStatus = status this[`${status}ImageVisible`] = true diff --git a/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeDicomViewer.vue b/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeDicomViewer.vue index 80645b29..c4661dcd 100644 --- a/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeDicomViewer.vue +++ b/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeDicomViewer.vue @@ -1083,8 +1083,8 @@ export default { if (idx > -1) { this.taskId = this.visitTaskList[idx].VisitTaskId } - this.uploadSubjectCode = this.$route.query.subjectCode||localStorage.getItem("subjectCode") - this.uploadSubjectId = this.$route.query.subjectId||localStorage.getItem("subjectId") + this.uploadSubjectCode = localStorage.getItem("subjectCode") + this.uploadSubjectId = localStorage.getItem("subjectId") this.uploadTrialCriterion = this.trialCriterion this.uploadStatus = status this[`${status}ImageVisible`] = true From d6861f400e86253c4483c3431f8cf2f5e86a4e59 Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Mon, 21 Oct 2024 17:55:57 +0800 Subject: [PATCH 033/400] =?UTF-8?q?=E7=AE=80=E5=8E=86=E9=83=A8=E5=88=86?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=AF=B9=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/reviewers.js | 8 + src/permission.js | 2 +- src/views/reviewers/ReviewersResearch.vue | 188 ++++--- .../components/EducationTraining.vue | 11 +- .../components/info/educationalExperience.vue | 410 +++++++++++++--- .../curriculumVitae/components/info/info.vue | 463 ++++++++++++++---- .../components/info/specialty.vue | 351 +++++++++++-- src/views/reviewers/curriculumVitae/index.vue | 57 ++- src/views/reviewers/new.vue | 2 +- 9 files changed, 1239 insertions(+), 253 deletions(-) diff --git a/src/api/reviewers.js b/src/api/reviewers.js index 079b1aa6..a7cecde7 100644 --- a/src/api/reviewers.js +++ b/src/api/reviewers.js @@ -290,3 +290,11 @@ export function verifyEmialGetDoctorInfo(param) { data: param }) } +// 新增或编辑基本信息 +export function addOrUpdateDoctorBasicInfoAndEmployment(param) { + return request({ + url: `/Doctor/addOrUpdateDoctorBasicInfoAndEmployment`, + method: 'post', + data: param + }) +} diff --git a/src/permission.js b/src/permission.js index f2a95bc1..67fa23fb 100644 --- a/src/permission.js +++ b/src/permission.js @@ -25,7 +25,7 @@ router.beforeEach(async (to, from, next) => { if (hasToken) { if (to.path === '/login' || to.path === '/recompose' || to.path === '/email-recompose' || to.path === '/error' || to.path === '/ReviewersResearchForm' || to.path === '/ReviewersResearch') { if (to.path === '/ReviewersResearch') { - await this.$store.dispatch('user/logout') + await store.dispatch('user/logout') await OSSclient() } if (to.path === '/ReviewersResearchForm') { diff --git a/src/views/reviewers/ReviewersResearch.vue b/src/views/reviewers/ReviewersResearch.vue index cf78879a..faf999b7 100644 --- a/src/views/reviewers/ReviewersResearch.vue +++ b/src/views/reviewers/ReviewersResearch.vue @@ -1,10 +1,10 @@ \ No newline at end of file diff --git a/src/views/reviewers/curriculumVitae/components/info/specialty.vue b/src/views/reviewers/curriculumVitae/components/info/specialty.vue index f12d067b..c7084658 100644 --- a/src/views/reviewers/curriculumVitae/components/info/specialty.vue +++ b/src/views/reviewers/curriculumVitae/components/info/specialty.vue @@ -1,22 +1,68 @@ @@ -85,9 +247,37 @@ From 20ff8d2a81c563710b4be8cfb7a726d57fb7e1f7 Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Tue, 22 Oct 2024 15:06:50 +0800 Subject: [PATCH 044/400] =?UTF-8?q?=E7=AE=80=E5=8E=86=E9=83=A8=E5=88=86?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=AF=B9=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/reviewers.js | 24 + .../components/EducationTraining.vue | 15 +- .../components/info/clinicalTrials.vue | 19 + .../components/info/continuingTraining.vue | 412 +++++++++++++++--- .../components/info/educationalExperience.vue | 9 +- .../curriculumVitae/components/info/info.vue | 10 +- .../curriculumVitae/components/info/other.vue | 96 +++- .../curriculumVitae/components/info/pay.vue | 126 +++++- .../info/scientificResearchProject.vue | 108 ++++- .../components/info/specialty.vue | 60 ++- .../components/info/summarize.vue | 79 +++- .../components/info/treatise.vue | 136 +++--- src/views/reviewers/curriculumVitae/index.vue | 75 +++- 13 files changed, 940 insertions(+), 229 deletions(-) diff --git a/src/api/reviewers.js b/src/api/reviewers.js index a7cecde7..e1fda283 100644 --- a/src/api/reviewers.js +++ b/src/api/reviewers.js @@ -298,3 +298,27 @@ export function addOrUpdateDoctorBasicInfoAndEmployment(param) { data: param }) } +// 新增或编辑概述 +export function updateGneralSituation(param) { + return request({ + url: `/Doctor/updateGneralSituation`, + method: 'post', + data: param + }) +} +// 新增或编辑支付方式 +export function updatePaymentMode(param) { + return request({ + url: `/Doctor/updatePaymentMode`, + method: 'post', + data: param + }) +} +// 新增或编辑Publication +export function addOrUpdateResearchPublicationInfo(param) { + return request({ + url: `/ResearchPublication/addOrUpdateResearchPublicationInfo`, + method: 'post', + data: param + }) +} \ No newline at end of file diff --git a/src/views/reviewers/components/EducationTraining.vue b/src/views/reviewers/components/EducationTraining.vue index 5501bcb9..5e4c28aa 100644 --- a/src/views/reviewers/components/EducationTraining.vue +++ b/src/views/reviewers/components/EducationTraining.vue @@ -37,8 +37,11 @@ min-width="70" show-overflow-tooltip > - - - --> + + + + + + + + + + + + + { this.loading = false }) }) }, + getStringResult(arr, dictionaryCode) { + let newArr = arr.map(i => this.$fd(dictionaryCode, i)) + let delimiter = this.$i18n.locale === 'zh' ? ',' : ', ' + return newArr.join(delimiter) + }, // 查询 handleSearch() { this.getList() diff --git a/src/views/trials/trials-panel/setting/reading-unit/components/QuestionsForm.vue b/src/views/trials/trials-panel/setting/reading-unit/components/QuestionsForm.vue index 9ee98a39..6a5d15cb 100644 --- a/src/views/trials/trials-panel/setting/reading-unit/components/QuestionsForm.vue +++ b/src/views/trials/trials-panel/setting/reading-unit/components/QuestionsForm.vue @@ -89,7 +89,7 @@ @@ -452,7 +452,7 @@ /> - + @@ -527,8 +527,14 @@ /> --> - + @@ -585,6 +591,9 @@
- - - - + + + + + + + + - + /> --> this.$fd(dictionaryCode, i)) + let delimiter = this.$i18n.locale === 'zh' ? ',' : ', ' + return newArr.join(delimiter) + }, // 查询 handleSearch() { this.getList() diff --git a/src/views/trials/trials-panel/setting/reading-unit/components/TableQsForm.vue b/src/views/trials/trials-panel/setting/reading-unit/components/TableQsForm.vue index d8782ba5..6e680a3d 100644 --- a/src/views/trials/trials-panel/setting/reading-unit/components/TableQsForm.vue +++ b/src/views/trials/trials-panel/setting/reading-unit/components/TableQsForm.vue @@ -233,9 +233,6 @@ :label="$t('trials:readingUnit:qsList:title:MaxRowCount')" v-if="form.Type !== 'summary' && form.Type !== 'screenshot' && form.Type !== 'upload'" prop="MaxRowCount" - :rules="[ - { required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' } - ]" > {{$t('trials:readingUnit:title:privateProperties')}} - + @@ -327,6 +330,9 @@ @@ -468,7 +474,7 @@
- - - - - + + + + + - {{ $fd('YesOrNo', scope.row.IsShowInDicom) }} - + --> - {{ $fd('GlobalReadingShowType', scope.row.GlobalReadingShowType) }} + --> + + + - + + + + + + + { this.loading = false }) }) }, + getStringResult(arr, dictionaryCode) { + let newArr = arr.map(i => this.$fd(dictionaryCode, i)) + let delimiter = this.$i18n.locale === 'zh' ? ',' : ', ' + return newArr.join(delimiter) + }, // 查询 handleSearch() { this.getList() From 99cd18c8e529295d6c533772d79c527e5ad2a1ac Mon Sep 17 00:00:00 2001 From: caiyiling <1321909229@qq.com> Date: Wed, 23 Oct 2024 13:04:13 +0800 Subject: [PATCH 051/400] 1 --- .../components/CriterionQuestionForm.vue | 15 +++++++-- .../template/components/TableQsForm.vue | 13 ++++++-- .../reading-unit/components/QuestionsForm.vue | 22 ++++++++++--- .../reading-unit/components/TableQsForm.vue | 31 ++++++++++++++++++- 4 files changed, 70 insertions(+), 11 deletions(-) diff --git a/src/views/dictionary/template/components/CriterionQuestionForm.vue b/src/views/dictionary/template/components/CriterionQuestionForm.vue index 25d97000..9d2b6410 100644 --- a/src/views/dictionary/template/components/CriterionQuestionForm.vue +++ b/src/views/dictionary/template/components/CriterionQuestionForm.vue @@ -598,9 +598,6 @@ @@ -1326,6 +1323,23 @@ export default { } else { form.MaxAnswerLength = null } + form.ImageCount = null + form.QuestionGenre = null + form.CalculateQuestions = [] + form.CustomCalculateMark = '' + form.DataSource = 0 + form.CustomUnit = null + form.ValueType = null + form.DefaultValue = null + form.MaxQuestionCount = null + form.FileType = [] + form.DictionaryCode = null + form.GroupId = null + form.ClassifyQuestionId = null + form.ClassifyAlgorithms = null + form.HighlightAnswerList = [] + form.ExportIdentification = 0 + form.ExportResult = [] }, getLesionType() { return new Promise((resolve, reject) => { diff --git a/src/views/trials/trials-panel/setting/reading-unit/components/TableQsForm.vue b/src/views/trials/trials-panel/setting/reading-unit/components/TableQsForm.vue index 6e680a3d..6337450e 100644 --- a/src/views/trials/trials-panel/setting/reading-unit/components/TableQsForm.vue +++ b/src/views/trials/trials-panel/setting/reading-unit/components/TableQsForm.vue @@ -560,6 +560,19 @@ ]" > + + + + + Date: Wed, 23 Oct 2024 13:46:27 +0800 Subject: [PATCH 052/400] =?UTF-8?q?ecrf=E9=BB=98=E8=AE=A4=E5=80=BC?= =?UTF-8?q?=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../setting/reading-unit/components/QuestionsForm.vue | 4 ++-- .../setting/reading-unit/components/TableQsForm.vue | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/views/trials/trials-panel/setting/reading-unit/components/QuestionsForm.vue b/src/views/trials/trials-panel/setting/reading-unit/components/QuestionsForm.vue index 3293d63b..17b84bdc 100644 --- a/src/views/trials/trials-panel/setting/reading-unit/components/QuestionsForm.vue +++ b/src/views/trials/trials-panel/setting/reading-unit/components/QuestionsForm.vue @@ -905,7 +905,7 @@ export default { GroupName: '', GroupEnName: '', Remark: '', - ImageCount: 1, + ImageCount: 0, RelevanceId: '', RelevanceValueList: [], LesionType: '', @@ -1323,7 +1323,7 @@ export default { } else { form.MaxAnswerLength = null } - form.ImageCount = null + form.ImageCount = 0 form.QuestionGenre = null form.CalculateQuestions = [] form.CustomCalculateMark = '' diff --git a/src/views/trials/trials-panel/setting/reading-unit/components/TableQsForm.vue b/src/views/trials/trials-panel/setting/reading-unit/components/TableQsForm.vue index 6337450e..e589396e 100644 --- a/src/views/trials/trials-panel/setting/reading-unit/components/TableQsForm.vue +++ b/src/views/trials/trials-panel/setting/reading-unit/components/TableQsForm.vue @@ -760,7 +760,7 @@ export default { ClassifyAlgorithms: null, ExportIdentification: 0, ExportResult: [], - ImageCount: null + ImageCount: 0 // IsEnable: true }, rules: { @@ -1114,7 +1114,7 @@ export default { form.ClassifyAlgorithms = null form.ExportIdentification = 0 form.ExportResult = [] - form.ImageCount = null + form.ImageCount = 0 }, close() { this.$emit('close') From a3dcb7054a492910ed2f4dbcaec29b7ceace106d Mon Sep 17 00:00:00 2001 From: caiyiling <1321909229@qq.com> Date: Wed, 23 Oct 2024 14:09:11 +0800 Subject: [PATCH 053/400] =?UTF-8?q?=E8=A1=A8=E5=8D=95=E6=A0=B7=E5=BC=8F?= =?UTF-8?q?=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/CriterionQuestionForm.vue | 1345 +++++++++-------- .../template/components/CriterionsConfig.vue | 2 +- .../template/components/TableQsForm.vue | 962 ++++++------ .../template/components/TableQsList.vue | 2 +- .../reading-unit/components/QuestionsForm.vue | 156 +- .../reading-unit/components/TableQsForm.vue | 1234 +++++++-------- .../reading-unit/components/TableQsList.vue | 2 +- 7 files changed, 1859 insertions(+), 1844 deletions(-) diff --git a/src/views/dictionary/template/components/CriterionQuestionForm.vue b/src/views/dictionary/template/components/CriterionQuestionForm.vue index 9d2b6410..1497357c 100644 --- a/src/views/dictionary/template/components/CriterionQuestionForm.vue +++ b/src/views/dictionary/template/components/CriterionQuestionForm.vue @@ -8,687 +8,690 @@ :disabled="type === 'look'" label-width="140px" > -
- - - - - - - - - - - - - - - - - - - - - - 公有属性 - - - - - - - - +
+ + + - {{ item.label }} - - - - - - - - - - - - - - - - - - - - {{ item.label }} - - - - - - - - - - - - - - - - - - - {{ item.label }} - - - - - {{ item.label }} - - - - - - - - - - - - - {{ item.label }} - - - - - {{ item.label }} - - - - - - - - - - {{ item.label }} - - - - - - - - - - - - - - - - - - - {{ item.label }} - - - - 私有属性 - - - - - {{ item.label }} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {{ item.label }} - - - - - - - - - {{ item.label }} - - - - - - - - - - - - - - - - - - - + + - + + + + + + + + + + + + + + + + + + + + + + + + {{ item.label }} + + + + + + + + + {{ item.label }} + + + + + + + + + + + + + + + + + + + - {{ item.label }} - - - - - - - - - - -
- - - - - - - + + + + + + + + + +
+ - - - - - - - -
-
- + + + + + + + + + + + + +
+
+
+
@@ -848,7 +890,9 @@ export default { ExportIdentification: 0, ExportResult: [], ImageCount: 0, - ClassifyType: null + ClassifyType: null, + ClassifyEditType: null, + ClassifyShowType: null, // IsEnable: true }, rules: { @@ -1238,6 +1282,11 @@ export default { } else { form.MaxAnswerLength = null } + if (val === 'class') { + form.ClassifyEditType = 1 + } else { + form.ClassifyEditType = null + } form.IsRequired = 2 form.TypeValue = '' form.TableQuestionType = null @@ -1260,6 +1309,7 @@ export default { form.ExportResult = [] form.ImageCount = 0 form.ClassifyType = null + form.ClassifyShowType = null }, close() { this.$emit('close') From bb4193730e0f4eb8a5dc7b4c36352c075ca3d3f6 Mon Sep 17 00:00:00 2001 From: caiyiling <1321909229@qq.com> Date: Wed, 30 Oct 2024 13:31:54 +0800 Subject: [PATCH 085/400] =?UTF-8?q?=E8=A1=A8=E6=A0=BC=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E8=AE=A1=E7=AE=97=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../customize/CustomizeQuestionFormItem.vue | 75 +++++++++++++++---- .../CustomizeQuestionTableFormItem.vue | 17 +---- 2 files changed, 63 insertions(+), 29 deletions(-) diff --git a/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeQuestionFormItem.vue b/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeQuestionFormItem.vue index 798750ac..f41ee6d0 100644 --- a/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeQuestionFormItem.vue +++ b/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeQuestionFormItem.vue @@ -763,35 +763,84 @@ export default { } // this.$emit('formItemNumberChange') }, + // formItemTableNumberChange() { + // this.question.TableQuestions.Questions.forEach(v => { + // if (v.Type === 'number' && v.DataSource === 1) { + // var CalculateQuestions = JSON.parse(v.CalculateQuestions) + // var num + // CalculateQuestions.forEach((o, i) => { + // if (i === 0) { + // num = this.QuestionsForm[o.TableQuestionId] + // } else { + // switch (v.CustomCalculateMark) { + // case 1: + // num += this.QuestionsForm[o.TableQuestionId] + // break; + // case 2: + // num -= this.QuestionsForm[o.TableQuestionId] + // break; + // case 3: + // num *= this.QuestionsForm[o.TableQuestionId] + // break; + // case 4: + // num /= this.QuestionsForm[o.TableQuestionId] + // break; + // } + // } + // }) + // this.$set(this.QuestionsForm, v.Id, num.toString()) + // } + // }) + + // }, formItemTableNumberChange() { - this.question.TableQuestions.Questions.forEach(v => { - if (v.Type === 'number' && v.DataSource === 1) { - var CalculateQuestions = JSON.parse(v.CalculateQuestions) - var num + this.question.TableQuestions.Questions.forEach((v) => { + if (v.Type === "number" && v.DataSource === 1) { + var CalculateQuestions = JSON.parse(v.CalculateQuestions); + var num, + arr = []; CalculateQuestions.forEach((o, i) => { if (i === 0) { - num = this.QuestionsForm[o.TableQuestionId] + num = parseFloat(this.QuestionsForm[o.TableQuestionId]); + arr = [num]; } else { switch (v.CustomCalculateMark) { case 1: - num += this.QuestionsForm[o.TableQuestionId] + num += parseFloat(this.QuestionsForm[o.TableQuestionId]); break; case 2: - num -= this.QuestionsForm[o.TableQuestionId] + num -= parseFloat(this.QuestionsForm[o.TableQuestionId]); break; case 3: - num *= this.QuestionsForm[o.TableQuestionId] + num *= parseFloat(this.QuestionsForm[o.TableQuestionId]); break; case 4: - num /= this.QuestionsForm[o.TableQuestionId] + num /= parseFloat(this.QuestionsForm[o.TableQuestionId]); + break; + case 7: + arr.push(parseFloat(this.QuestionsForm[o.TableQuestionId])); + num = + arr.length === 0 + ? 0 + : arr.reduce((acc, curr) => { + return acc + (typeof curr === "number" ? curr : 0); + }, 0) / arr.length; + break; + case 8: + arr.push(parseFloat(this.QuestionsForm[o.TableQuestionId])); + num = arr.length === 0 ? 0 : Math.max(...arr); + break; + case 9: + arr.push(parseFloat(this.QuestionsForm[o.TableQuestionId])); + num = arr.length === 0 ? 0 : Math.min(...arr); + // console.log('min', this.questionForm[o.QuestionId], arr, num) break; } } - }) - this.$set(this.QuestionsForm, v.Id, num.toString()) + }); + this.$set(this.QuestionsForm, v.Id, num.toString()); } - }) - + }); }, openAddTableCol(row, index) { this.addOrEdit.visible = true diff --git a/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeQuestionTableFormItem.vue b/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeQuestionTableFormItem.vue index 9b90234b..6aa5e0df 100644 --- a/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeQuestionTableFormItem.vue +++ b/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeQuestionTableFormItem.vue @@ -482,22 +482,7 @@ export default { return num.toFixed(digitPlaces) }, formItemNumberChange(v, question) { - this.CalculationList.forEach((v, i) => { - console.log('v', v) - var find = v.CalculateQuestionList.filter(o => { - return o.QuestionId === question.Id - }) - console.log('find', find) - // find的自动计算值number - if (find) { - var num = this.logic(v) - console.log(num) - if (num !== false) { - this.$set(this.questionForm, v.QuestionId, num) - // this.$emit('setFormItemData', { key: v.QuestionId, val: num }) - } - } - }) + this.$emit('formItemTableNumberChange', v, question) // this.$emit('formItemTableNumberChange', v, question) }, resetChild(obj) { From 48ebd8e76d2a2c9227989082e2afe3088b5f7179 Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Thu, 31 Oct 2024 11:47:16 +0800 Subject: [PATCH 086/400] =?UTF-8?q?=E8=AE=BF=E8=A7=86-=E5=BD=B1=E5=83=8F?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=8B=8D=E7=89=87=E6=97=A5=E6=9C=9F=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../trials-panel/visit/crc-upload/index.vue | 35 ++++++++++++++----- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/src/views/trials/trials-panel/visit/crc-upload/index.vue b/src/views/trials/trials-panel/visit/crc-upload/index.vue index 12c2cd8f..b3fd41fd 100644 --- a/src/views/trials/trials-panel/visit/crc-upload/index.vue +++ b/src/views/trials/trials-panel/visit/crc-upload/index.vue @@ -361,7 +361,7 @@
- - - + --> + From 6b7d3da4a4b29a1d1eb5ce37fcf56590252fe72f Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Thu, 31 Oct 2024 13:58:53 +0800 Subject: [PATCH 087/400] =?UTF-8?q?IQC=E8=B4=A8=E7=96=91=20=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E4=BC=98=E5=8C=96=E3=80=91=E6=9C=80=E6=96=B0=E5=9B=9E?= =?UTF-8?q?=E5=A4=8D=E4=BA=BA=20=E7=9A=84=E5=8F=96=E5=80=BC=E6=94=B9?= =?UTF-8?q?=E4=B8=BA=20=E7=94=A8=E6=88=B7=E7=9A=84=E5=A7=93=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/trials/trials-panel/visit/qc-question/index.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/views/trials/trials-panel/visit/qc-question/index.vue b/src/views/trials/trials-panel/visit/qc-question/index.vue index 5f2b0caa..0cb89312 100644 --- a/src/views/trials/trials-panel/visit/qc-question/index.vue +++ b/src/views/trials/trials-panel/visit/qc-question/index.vue @@ -188,9 +188,9 @@ width="160" sortable="custom" /> --> - + Date: Thu, 31 Oct 2024 14:15:59 +0800 Subject: [PATCH 088/400] 1 --- .../trials/trials-panel/visit/qc-check/components/chatForm.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/trials/trials-panel/visit/qc-check/components/chatForm.vue b/src/views/trials/trials-panel/visit/qc-check/components/chatForm.vue index 4b8308c3..4eb939a2 100644 --- a/src/views/trials/trials-panel/visit/qc-check/components/chatForm.vue +++ b/src/views/trials/trials-panel/visit/qc-check/components/chatForm.vue @@ -10,7 +10,7 @@ QC
From 11627af62930950706b092fb0310435b99c76cd3 Mon Sep 17 00:00:00 2001 From: caiyiling <1321909229@qq.com> Date: Fri, 1 Nov 2024 09:42:11 +0800 Subject: [PATCH 089/400] =?UTF-8?q?pet-ct=E8=9E=8D=E5=90=88=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E4=BC=AA=E5=BD=A9=E6=96=B9=E6=A1=88=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reading/dicoms/components/Fusion/PetCt.vue | 2 +- .../js/setPetColorMapTransferFunctionForVolumeActor.js | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/views/trials/trials-panel/reading/dicoms/components/Fusion/PetCt.vue b/src/views/trials/trials-panel/reading/dicoms/components/Fusion/PetCt.vue index 9ca41a88..3f0c9dba 100644 --- a/src/views/trials/trials-panel/reading/dicoms/components/Fusion/PetCt.vue +++ b/src/views/trials/trials-panel/reading/dicoms/components/Fusion/PetCt.vue @@ -505,7 +505,7 @@ export default { isLocate: true, // colorMaps: ['BLUE-WHITE', 'BkBu', 'BkCy', 'BkMa', 'Blues', 'Cool to Warm', 'GBBr', 'Grayscale', 'Greens', 'Haze', 'Haze_green', 'Oranges', 'Purples', 'Warm to Cool', 'X Ray', 'blue2yellow', 'coolwarm', 'hsv', 'jet', 'rainbow', 'magenta', '2hot'], colorMaps: [], - rgbPresetName: 'hsv', + rgbPresetName: 'siemens', range: 40, upper: 6, isSlideMoving: false, diff --git a/src/views/trials/trials-panel/reading/dicoms/components/Fusion/js/setPetColorMapTransferFunctionForVolumeActor.js b/src/views/trials/trials-panel/reading/dicoms/components/Fusion/js/setPetColorMapTransferFunctionForVolumeActor.js index 49f230ff..3aa23daa 100644 --- a/src/views/trials/trials-panel/reading/dicoms/components/Fusion/js/setPetColorMapTransferFunctionForVolumeActor.js +++ b/src/views/trials/trials-panel/reading/dicoms/components/Fusion/js/setPetColorMapTransferFunctionForVolumeActor.js @@ -1,8 +1,8 @@ import vtkColorMaps from '@kitware/vtk.js/Rendering/Core/ColorTransferFunction/ColorMaps' import vtkColorTransferFunction from '@kitware/vtk.js/Rendering/Core/ColorTransferFunction' import vtkPiecewiseFunction from '@kitware/vtk.js/Common/DataModel/PiecewiseFunction' -// import { utilities } from '@cornerstonejs/core' -// const { getColormap } = utilities.colormap +import { utilities } from '@cornerstonejs/core' +const { getColormap } = utilities.colormap function setPetColorMapTransferFunctionForVolumeActor( volumeInfo ) { @@ -11,7 +11,8 @@ function setPetColorMapTransferFunctionForVolumeActor( mapper.setSampleDistance(1.0) const cfun = vtkColorTransferFunction.newInstance() - const presetToUse = preset || vtkColorMaps.getPresetByName('hsv') + // const presetToUse = preset || vtkColorMaps.getPresetByName('hsv') + const presetToUse = preset || getColormap('siemens') cfun.applyColorMap(presetToUse) From 3f9edfa2a0daf64df558a0e9b2e5fb52347a5698 Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Fri, 1 Nov 2024 10:09:45 +0800 Subject: [PATCH 090/400] =?UTF-8?q?=E4=B8=80=E8=87=B4=E6=80=A7=E5=88=86?= =?UTF-8?q?=E6=9E=90=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/export.js | 9 + .../components/exportList.vue | 72 ++- .../reading/consistency-analysis/index.vue | 461 +++++++++--------- 3 files changed, 288 insertions(+), 254 deletions(-) diff --git a/src/api/export.js b/src/api/export.js index 93067284..17606cfe 100644 --- a/src/api/export.js +++ b/src/api/export.js @@ -239,3 +239,12 @@ export function GetInternationalizationList_Export(data) { data }) } +// 导出一致性分析 +export function GetAnalysisTaskList_Export(data) { + return requestDownload({ + url: `/ExcelExport/GetAnalysisTaskList_Export`, + responseType: 'blob', + method: 'post', + data + }) +} diff --git a/src/views/trials/trials-panel/reading/consistency-analysis/components/exportList.vue b/src/views/trials/trials-panel/reading/consistency-analysis/components/exportList.vue index 217dce6b..16565329 100644 --- a/src/views/trials/trials-panel/reading/consistency-analysis/components/exportList.vue +++ b/src/views/trials/trials-panel/reading/consistency-analysis/components/exportList.vue @@ -1,18 +1,37 @@ @@ -384,16 +384,16 @@ > @@ -419,24 +419,24 @@ > @@ -458,10 +458,10 @@ > @@ -475,10 +475,10 @@ > @@ -519,19 +519,19 @@ > @@ -648,11 +648,11 @@ - {{ $t("trials:consistencyAnalysis:table:impact") }} + {{ $t('trials:consistencyAnalysis:table:impact') }} : {{ $t("trials:consistencyAnalysis:title:impactInfluence") }}: {{ $t('trials:consistencyAnalysis:title:impactInfluence') }}
@@ -684,7 +684,7 @@ :loading="btnLoading" @click="addReaderRulesForm()" > - {{ $t("trials:selftConsistencyAnalysis:button:config") }} + {{ $t('trials:selftConsistencyAnalysis:button:config') }}
{{ - $fd("YesOrNo", scope.row.IsHaveReadingPeriod) + $fd('YesOrNo', scope.row.IsHaveReadingPeriod) }} {{ - $fd("YesOrNo", scope.row.IsHaveReadingPeriod) + $fd('YesOrNo', scope.row.IsHaveReadingPeriod) }} @@ -769,11 +769,11 @@ v-if="scope.row.IsGenerateGlobalTask" size="success" >{{ - $fd("YesOrNo", scope.row.IsGenerateGlobalTask) + $fd('YesOrNo', scope.row.IsGenerateGlobalTask) }} {{ - $fd("YesOrNo", scope.row.IsGenerateGlobalTask) + $fd('YesOrNo', scope.row.IsGenerateGlobalTask) }} @@ -864,7 +864,7 @@ type="primary" @click="ReaderRulesVisible = false" > - {{ $t("common:button:cancel") }} + {{ $t('common:button:cancel') }}
@@ -894,13 +894,13 @@ @click="addReaderRulesForm('g')" > - {{ $t("trials:grouptConsistencyAnalysis:button:config") }} + {{ $t('trials:grouptConsistencyAnalysis:button:config') }} {{ - $t("trials:consistencyAnalysis:applyReread:imageReload") + $t('trials:consistencyAnalysis:applyReread:imageReload') }} {{ - $t("trials:consistencyAnalysis:applyReread:other") + $t('trials:consistencyAnalysis:applyReread:other') }} @@ -1056,11 +1056,11 @@ size="small" type="primary" @click=" - ApplyforReasonVisible = false; - ApplyforReasonForm = { Type: null, RequestReReadingReason: null }; + ApplyforReasonVisible = false + ApplyforReasonForm = { Type: null, RequestReReadingReason: null } " > - {{ $t("common:button:cancel") }} + {{ $t('common:button:cancel') }} - {{ $t("common:button:save") }} + {{ $t('common:button:save') }}
@@ -1116,27 +1116,28 @@ import { getDoctorUserSelectList, getAnalysisTaskList, applyReReading, -} from "@/api/trials/reading"; -import { setTaskValid } from "@/api/trials"; -import ClinicalData from "@/views/trials/trials-panel/subject/reading-period/components/ClinicalData"; +} from '@/api/trials/reading' +import { setTaskValid } from '@/api/trials' +import ClinicalData from '@/views/trials/trials-panel/subject/reading-period/components/ClinicalData' import { getSelfAnalysisTaskList_Export, getGroupAnalysisTaskList_Export, -} from "@/api/export"; -import ReaderRulesForm from "./components/ReaderRulesForm"; -import DoctorConsistentRuleSubjectTable from "./components/DoctorConsistentRuleSubjectTable"; -import GroupConsistentRuleSubjectTable from "./components/GroupConsistentRuleSubjectTable"; -import VirtualCenter from "./components/VirtualCenter"; -import BaseContainer from "@/components/BaseContainer"; -import Pagination from "@/components/Pagination"; -import { getToken } from "@/utils/auth"; -import exportList from "./components/exportList.vue"; + GetAnalysisTaskList_Export, +} from '@/api/export' +import ReaderRulesForm from './components/ReaderRulesForm' +import DoctorConsistentRuleSubjectTable from './components/DoctorConsistentRuleSubjectTable' +import GroupConsistentRuleSubjectTable from './components/GroupConsistentRuleSubjectTable' +import VirtualCenter from './components/VirtualCenter' +import BaseContainer from '@/components/BaseContainer' +import Pagination from '@/components/Pagination' +import { getToken } from '@/utils/auth' +import exportList from './components/exportList.vue' const searchDataDefault = () => { return { PageIndex: 1, PageSize: 20, Asc: true, - SortField: "", + SortField: '', TrialId: null, TrialSiteId: null, SubjectId: null, @@ -1153,10 +1154,10 @@ const searchDataDefault = () => { TrialReadingCriterionId: null, BeginSignTime: null, EndSignTime: null, - }; -}; + } +} export default { - name: "TrialsNotice", + name: 'TrialsNotice', components: { exportList, BaseContainer, @@ -1205,15 +1206,15 @@ export default { Type: [ { required: true, - message: this.$t("common:ruleMessage:specify"), - trigger: "blur", + message: this.$t('common:ruleMessage:specify'), + trigger: 'blur', }, ], RequestReReadingReason: [ { required: true, - message: this.$t("common:ruleMessage:specify"), - trigger: "blur", + message: this.$t('common:ruleMessage:specify'), + trigger: 'blur', }, ], }, @@ -1224,17 +1225,17 @@ export default { exportVisible: false, clinicalDataVisible: false, - }; + } }, mounted() { - this.getList(); - this.getSite(); - this.getDoctorUserSelectList(); - this.getTrialCriterionList(); + this.getList() + this.getSite() + this.getDoctorUserSelectList() + this.getTrialCriterionList() }, beforeDestroy() { if (this.openWindow) { - this.openWindow.close(); + this.openWindow.close() } }, methods: { @@ -1242,35 +1243,35 @@ export default { async handleSetState(row) { try { let confirm = await this.$confirm( - this.$t("trials:reading:consistencyAnalysis:message:setState"), + this.$t('trials:reading:consistencyAnalysis:message:setState'), { - type: "warning", + type: 'warning', distinguishCancelAndClose: true, } - ); - if (!confirm) return; + ) + if (!confirm) return let data = { visitTaskId: row.Id, - }; - let res = await setTaskValid(data); + } + let res = await setTaskValid(data) if (res.IsSuccess) { this.$message.success( - this.$t("trials:reading:consistencyAnalysis:setStateSuccess") - ); - this.getList(); + this.$t('trials:reading:consistencyAnalysis:setStateSuccess') + ) + this.getList() } } catch (err) { - console.log(err); + console.log(err) } }, // 临床数据相关 handleView(row) { - this.currentData = row; - this.currentData.TrialId = this.$route.query.trialId; - this.clinicalDataVisible = true; + this.currentData = row + this.currentData.TrialId = this.$route.query.trialId + this.clinicalDataVisible = true }, openSite() { - this.isOpenSite = true; + this.isOpenSite = true }, handleExport(type, TrialReadingCriterionId) { // if (!this.searchData.TrialReadingCriterionId) { @@ -1279,89 +1280,91 @@ export default { // } if (!TrialReadingCriterionId) { this.$alert( - this.$t("trials:consistencyAnalysis:message:selectCriterion") - ); //'请先选择阅片标准' - return; + this.$t('trials:consistencyAnalysis:message:selectCriterion') + ) //'请先选择阅片标准' + return } - let obj = JSON.parse(JSON.stringify(this.searchData)); - obj.TrialReadingCriterionId = TrialReadingCriterionId; + let obj = JSON.parse(JSON.stringify(this.searchData)) + obj.TrialReadingCriterionId = TrialReadingCriterionId + obj.ReadingExportType = type + return GetAnalysisTaskList_Export(obj) if (type === 1) { getSelfAnalysisTaskList_Export(obj) .then((res) => {}) .catch(() => { - this.loading = false; - }); + this.loading = false + }) } else { getGroupAnalysisTaskList_Export(obj) .then((res) => {}) .catch(() => { - this.loading = false; - }); + this.loading = false + }) } }, getTrialCriterionList() { - this.loading = true; + this.loading = true getTrialCriterionList(this.trialId) .then((res) => { - this.trialCriterionList = res.Result; + this.trialCriterionList = res.Result this.TrialReadingCriterionId = - this.trialCriterionList[0].TrialReadingCriterionId; - this.loading = false; + this.trialCriterionList[0].TrialReadingCriterionId + this.loading = false }) .catch(() => { - this.loading = false; - }); + this.loading = false + }) }, setAnalysisTaskInvalid(row) { // '确定要将该一致性任务设置成失效吗?' this.$confirm( - this.$t("trials:consistencyAnalysis:applyReread:msg1") + this.$t('trials:consistencyAnalysis:applyReread:msg1') ).then(() => { - this.loading = true; + this.loading = true setAnalysisTaskInvalid([row.Id]) .then((res) => { // 设置成功 this.$message.success( - this.$t("trials:consistencyAnalysis:applyReread:msg2") - ); - this.getList(); - this.loading = false; + this.$t('trials:consistencyAnalysis:applyReread:msg2') + ) + this.getList() + this.loading = false }) .catch(() => { - this.loading = false; - }); - }); + this.loading = false + }) + }) }, changeTimeList() { if (this.timeList) { - this.searchData.BeginAllocateDate = this.timeList[0]; - this.searchData.EndAllocateDate = this.timeList[1]; + this.searchData.BeginAllocateDate = this.timeList[0] + this.searchData.EndAllocateDate = this.timeList[1] } else { - this.searchData.BeginAllocateDate = null; - this.searchData.EndAllocateDate = null; + this.searchData.BeginAllocateDate = null + this.searchData.EndAllocateDate = null } }, changeTimeList2() { if (this.timeList2) { - this.searchData.BeginSignTime = this.timeList2[0]; - this.searchData.EndSignTime = this.timeList2[1]; + this.searchData.BeginSignTime = this.timeList2[0] + this.searchData.EndSignTime = this.timeList2[1] } else { - this.searchData.BeginSignTime = null; - this.searchData.EndSignTime = null; + this.searchData.BeginSignTime = null + this.searchData.EndSignTime = null } }, // 重阅历史 reReadingHistory(row) { this.$router.push({ path: `/trials/trials-panel/reading/reReadingTracking?trialId=${this.$route.query.trialId}&trialCode=${this.$route.query.trialCode}&researchProgramNo=${this.$route.query.researchProgramNo}&TrialSiteId=${row.TrialSiteId}&SubjectCode=${row.SubjectCode}&TaskName=${row.TaskName}&DoctorUserId=${row.DoctorUserId}`, - }); + }) }, // 申请重阅 applyReReading() { this.$refs.reasonForm.validate((valid) => { - if (!valid) return; - this.loading = true; - this.btnLoading = true; + if (!valid) return + this.loading = true + this.btnLoading = true var params = { TaskIdList: [this.rowData.Id], TrialId: this.$route.query.trialId, @@ -1369,28 +1372,28 @@ export default { RequestReReadingReason: this.ApplyforReasonForm.Type === 2 ? this.ApplyforReasonForm.RequestReReadingReason - : this.$t("trials:consistencyAnalysis:applyReread:imageReload"), //'图像重传' - }; + : this.$t('trials:consistencyAnalysis:applyReread:imageReload'), //'图像重传' + } applyReReading(params) .then((res) => { - this.loading = false; - this.btnLoading = false; + this.loading = false + this.btnLoading = false // 申请重阅成功 this.$message.success( - this.$t("trials:consistencyAnalysis:applyReread:msg3") - ); - this.getList(); - this.ApplyforReasonVisible = false; + this.$t('trials:consistencyAnalysis:applyReread:msg3') + ) + this.getList() + this.ApplyforReasonVisible = false }) .catch(() => { - this.loading = false; - this.btnLoading = false; - }); - }); + this.loading = false + this.btnLoading = false + }) + }) }, lookReadingResults(row) { if (this.openWindow) { - this.openWindow.close(); + this.openWindow.close() } // var token = getToken() // const routeData = this.$router.resolve({ @@ -1398,38 +1401,38 @@ export default { // }) // window.open(routeData.href, '_blank') window.localStorage.setItem( - "TrialReadingCriterionId", + 'TrialReadingCriterionId', this.TrialReadingCriterionId - ); - var token = getToken(); - var path = ""; + ) + var token = getToken() + var path = '' if (row.ReadingTool === 0) { - path = `/readingDicoms?TrialReadingCriterionId=${row.TrialReadingCriterionId}&trialId=${row.TrialId}&subjectCode=${row.SubjectCode}&subjectId=${row.SubjectId}&visitTaskId=${row.Id}&isReadingTaskViewInOrder=${row.IsReadingTaskViewInOrder}&criterionType=${row.CriterionType}&readingTool=${row.ReadingTool}&TokenKey=${token}`; + path = `/readingDicoms?TrialReadingCriterionId=${row.TrialReadingCriterionId}&trialId=${row.TrialId}&subjectCode=${row.SubjectCode}&subjectId=${row.SubjectId}&visitTaskId=${row.Id}&isReadingTaskViewInOrder=${row.IsReadingTaskViewInOrder}&criterionType=${row.CriterionType}&readingTool=${row.ReadingTool}&TokenKey=${token}` } else { - path = `/noneDicomReading?TrialReadingCriterionId=${row.TrialReadingCriterionId}&trialId=${row.TrialId}&subjectCode=${row.SubjectCode}&subjectId=${row.SubjectId}&visitTaskId=${row.Id}&isReadingTaskViewInOrder=${row.IsReadingTaskViewInOrder}&criterionType=${row.CriterionType}&readingTool=${row.ReadingTool}&TokenKey=${token}`; + path = `/noneDicomReading?TrialReadingCriterionId=${row.TrialReadingCriterionId}&trialId=${row.TrialId}&subjectCode=${row.SubjectCode}&subjectId=${row.SubjectId}&visitTaskId=${row.Id}&isReadingTaskViewInOrder=${row.IsReadingTaskViewInOrder}&criterionType=${row.CriterionType}&readingTool=${row.ReadingTool}&TokenKey=${token}` } - var routeData = this.$router.resolve({ path }); - this.openWindow = window.open(routeData.href, "_blank"); + var routeData = this.$router.resolve({ path }) + this.openWindow = window.open(routeData.href, '_blank') }, openApplyReReading(row) { - this.rowData = { ...row }; - this.ApplyforReasonVisible = true; + this.rowData = { ...row } + this.ApplyforReasonVisible = true this.ApplyforReasonForm = { Type: null, Remake: null, - }; + } }, editReaderRulesForm(row) { - this.rowData = { ...row }; - this.ReaderRulesFormVisible = true; + this.rowData = { ...row } + this.ReaderRulesFormVisible = true }, openDoctorConsistentRuleSubjectTable(row, IsAutoAllocateGenerateTask) { - this.rowData = { ...row }; - this.DoctorConsistentRuleSubjectTableVisible = true; - this.rowData.IsAutoAllocateGenerateTask = IsAutoAllocateGenerateTask; + this.rowData = { ...row } + this.DoctorConsistentRuleSubjectTableVisible = true + this.rowData.IsAutoAllocateGenerateTask = IsAutoAllocateGenerateTask }, addReaderRulesForm(isg) { - this.isDisable = false; + this.isDisable = false if (isg) { if ( this.$refs[ @@ -1440,115 +1443,115 @@ export default { `GroupConsistentRuleSubjectTable${this.TrialReadingCriterionId}` ][0].list.forEach((v) => { if (v.IsHaveGeneratedTask) { - this.isDisable = true; + this.isDisable = true } - }); + }) } } else { if (this.TaskConsistentRuleList.length > 0) { - this.rowData = { ...this.TaskConsistentRuleList[0] }; + this.rowData = { ...this.TaskConsistentRuleList[0] } this.TaskConsistentRuleList.forEach((v) => { if (v.GeneratedSubjectCount) { - this.isDisable = true; + this.isDisable = true } - }); + }) } else { - this.rowData = {}; + this.rowData = {} } } - this.ReaderRulesFormVisible = true; + this.ReaderRulesFormVisible = true }, clickTab(tab, event) { - this.loading = true; + this.loading = true this.title = `${this.$t( - "trials:selftConsistencyAnalysis:button:config" + 'trials:selftConsistencyAnalysis:button:config' )}(${ this.trialCriterionList.find( (v) => v.TrialReadingCriterionId === this.TrialReadingCriterionId ).TrialReadingCriterionName - })`; + })` getSelfConsistentDoctorStatList({ TrialId: this.trialId, TrialReadingCriterionId: tab.name, }) .then((res) => { if (res.OtherInfo) { - this.ReaderRulesFormVisible = false; - this.RuleOtherInfo = res.OtherInfo; + this.ReaderRulesFormVisible = false + this.RuleOtherInfo = res.OtherInfo } else { - this.ReaderRulesFormVisible = true; + this.ReaderRulesFormVisible = true } // this.ReaderRulesFormVisible = false // this.DoctorConsistentRuleSubjectTableVisible = false - this.TaskConsistentRuleList = res.Result; + this.TaskConsistentRuleList = res.Result // this.IsSelfAnalysis = true // this.ReaderRulesVisible = true // this.getList() - this.loading = false; + this.loading = false }) .catch(() => { - this.loading = false; - }); + this.loading = false + }) }, openExport() { if (this.trialCriterionList.length === 0) { this.$alert( this.$t( - "trials:trials-panel:consistency-analysis:trialCriterionListLength" + 'trials:trials-panel:consistency-analysis:trialCriterionListLength' ) - ); - return; + ) + return } - this.exportVisible = true; + this.exportVisible = true }, openTaskConsistentRule(IsSelfAnalysis) { if (this.trialCriterionList.length === 0) { this.$alert( this.$t( - "trials:trials-panel:consistency-analysis:trialCriterionListLength" + 'trials:trials-panel:consistency-analysis:trialCriterionListLength' ) - ); - return; + ) + return } - this.loading = true; + this.loading = true if (IsSelfAnalysis) { // '配置自身一致性分析规则' this.title = `${this.$t( - "trials:selftConsistencyAnalysis:button:config" + 'trials:selftConsistencyAnalysis:button:config' )}(${ this.trialCriterionList.find( (v) => v.TrialReadingCriterionId === this.TrialReadingCriterionId ).TrialReadingCriterionName - })`; + })` getSelfConsistentDoctorStatList({ TrialId: this.trialId, TrialReadingCriterionId: this.TrialReadingCriterionId, }) .then((res) => { if (res.OtherInfo) { - this.ReaderRulesFormVisible = false; - this.RuleOtherInfo = res.OtherInfo; + this.ReaderRulesFormVisible = false + this.RuleOtherInfo = res.OtherInfo } else { - this.ReaderRulesFormVisible = true; + this.ReaderRulesFormVisible = true } - this.DoctorConsistentRuleSubjectTableVisible = false; - this.TaskConsistentRuleList = res.Result; - this.IsSelfAnalysis = IsSelfAnalysis; - this.ReaderRulesVisible = true; - this.getList(); - this.loading = false; + this.DoctorConsistentRuleSubjectTableVisible = false + this.TaskConsistentRuleList = res.Result + this.IsSelfAnalysis = IsSelfAnalysis + this.ReaderRulesVisible = true + this.getList() + this.loading = false }) .catch(() => { - this.loading = false; - }); + this.loading = false + }) } else { - this.changeNum++; - this.ReaderRulesFormVisible = false; + this.changeNum++ + this.ReaderRulesFormVisible = false // '配置组间一致性分析规则' - this.title = this.$t("trials:grouptConsistencyAnalysis:button:config"); - this.IsSelfAnalysis = IsSelfAnalysis; - this.ReaderRulesVisible2 = true; - this.loading = false; + this.title = this.$t('trials:grouptConsistencyAnalysis:button:config') + this.IsSelfAnalysis = IsSelfAnalysis + this.ReaderRulesVisible2 = true + this.loading = false } // getTaskConsistentRuleList({ // IsSelfAnalysis: IsSelfAnalysis, @@ -1563,57 +1566,57 @@ export default { }, getDoctorUserSelectList() { getDoctorUserSelectList(this.$route.query.trialId).then((res) => { - this.DoctorUserList = res.Result; + this.DoctorUserList = res.Result if (this.DoctorUserList.length > 0) { - this.ReadingType = this.DoctorUserList[0].ReadingType; + this.ReadingType = this.DoctorUserList[0].ReadingType } else { } - }); + }) }, getList() { - this.searchData.TrialId = this.$route.query.trialId; - this.loading = true; + this.searchData.TrialId = this.$route.query.trialId + this.loading = true getAnalysisTaskList(this.searchData) .then((res) => { - this.loading = false; - this.OtherInfo = res.OtherInfo; - this.list = res.Result.CurrentPageData; - this.total = res.Result.TotalCount; - this.ReaderRulesVisible2 = false; - this.AssignMedicalReviewTaskVisible = false; + this.loading = false + this.OtherInfo = res.OtherInfo + this.list = res.Result.CurrentPageData + this.total = res.Result.TotalCount + this.ReaderRulesVisible2 = false + this.AssignMedicalReviewTaskVisible = false }) .catch(() => { - this.loading = false; - }); + this.loading = false + }) }, handleSearch() { - this.searchData.PageIndex = 1; - this.getList(); + this.searchData.PageIndex = 1 + this.getList() }, handleReset() { - this.timeList = null; - this.timeList2 = null; - this.searchData = searchDataDefault(); - this.getList(); + this.timeList = null + this.timeList2 = null + this.searchData = searchDataDefault() + this.getList() }, getSite() { getTrialSiteCodeSelect(this.trialId).then((res) => { - this.siteOptions = res.Result; - }); + this.siteOptions = res.Result + }) }, // 排序 handleSortChange(column) { - if (column.order === "ascending") { - this.searchData.Asc = true; + if (column.order === 'ascending') { + this.searchData.Asc = true } else { - this.searchData.Asc = false; + this.searchData.Asc = false } - this.searchData.SortField = column.prop; - this.searchData.PageIndex = 1; - this.getList(); + this.searchData.SortField = column.prop + this.searchData.PageIndex = 1 + this.getList() }, }, -}; +} \ No newline at end of file From ceb1425908809323e8526d67609dadbf928fc69a Mon Sep 17 00:00:00 2001 From: caiyiling <1321909229@qq.com> Date: Thu, 7 Nov 2024 15:06:52 +0800 Subject: [PATCH 126/400] =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E8=A1=A8=E6=A0=BC=E9=97=AE=E9=A2=98=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reading/dicoms/customize/CustomizeQuestionFormItem.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeQuestionFormItem.vue b/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeQuestionFormItem.vue index bfb87db4..fede46b1 100644 --- a/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeQuestionFormItem.vue +++ b/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeQuestionFormItem.vue @@ -590,8 +590,8 @@ export default { submitTableQuestion(params).then(async res => { this.$message.success(this.$t('common:message:savedSuccessfully')) this.QuestionsForm.RowId = res.Result.RowId - DicomEvent.$emit('reGetQuestionAnswer') - // this.save() + // DicomEvent.$emit('reGetQuestionAnswer') + this.save() loading.close() }).catch(() => { loading.close() }) }) From 8c5297e401a48696a692197fa2bb6822b939d92a Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Thu, 7 Nov 2024 15:58:42 +0800 Subject: [PATCH 127/400] =?UTF-8?q?=E6=9C=AF=E8=AF=AD=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main.js | 4 +- .../trial-config/components/logicalConfig.vue | 43 +++++++++++++++++++ .../trial-config/components/terminology.vue | 35 +++++++++++++-- 3 files changed, 77 insertions(+), 5 deletions(-) diff --git a/src/main.js b/src/main.js index 46612886..34c567a5 100644 --- a/src/main.js +++ b/src/main.js @@ -300,7 +300,9 @@ async function VueInit() { } let text = i18n.t(key) if (Array.isArray(store.state.trials.config.TrialObjectNameList) && store.state.trials.config.TrialObjectNameList.length > 0) { - store.state.trials.config.TrialObjectNameList.forEach(item => { + let arr = JSON.parse(JSON.stringify(store.state.trials.config.TrialObjectNameList)) + arr.sort((a, b) => b.Name.length - a.Name.length) + arr.forEach(item => { let test = new RegExp(item.Name, 'ig') text = text.replace(test, item.TrialName) }) diff --git a/src/views/trials/trials-panel/setting/trial-config/components/logicalConfig.vue b/src/views/trials/trials-panel/setting/trial-config/components/logicalConfig.vue index 58900386..15a51368 100644 --- a/src/views/trials/trials-panel/setting/trial-config/components/logicalConfig.vue +++ b/src/views/trials/trials-panel/setting/trial-config/components/logicalConfig.vue @@ -767,6 +767,35 @@ import ClinicalDataForm from './clinicalDataForm' import terminology from './terminology' import const_ from '@/const/sign-code' import BaseModel from '@/components/BaseModel' +const defaultDATA = () => { + return [ + { + Name: '受试者编号', + TrialName: '受试者编号', + IsDefault: true, + }, + { + Name: '访视基准日期', + TrialName: '访视基准日期', + IsDefault: true, + }, + { + Name: '拍片日期', + TrialName: '拍片日期', + IsDefault: true, + }, + { + Name: '阅片人', + TrialName: '阅片人', + IsDefault: true, + }, + { + Name: '独立阅片人', + TrialName: '独立阅片人', + IsDefault: true, + }, + ] +} export default { name: 'LogicalConfig', components: { SignForm, ClinicalDataForm, BaseModel, terminology }, @@ -1323,6 +1352,20 @@ export default { this.form[k] = res[k] } } + if ( + !this.form.TrialObjectNameList || + (Array.isArray(this.form.TrialObjectNameList) && + this.form.TrialObjectNameList.length <= 0) + ) { + // this.form.TrialObjectNameList = defaultDATA() + this.form.TrialObjectNameList = this.$d.Terminology.map((item) => { + return { + Name: item.label, + TrialName: item.label, + IsDefault: true, + } + }) + } let Modalitys = this.form.ModalityList.map((item) => { return this.$fd('Modality', item.trim()) }) diff --git a/src/views/trials/trials-panel/setting/trial-config/components/terminology.vue b/src/views/trials/trials-panel/setting/trial-config/components/terminology.vue index 51081857..19560ba0 100644 --- a/src/views/trials/trials-panel/setting/trial-config/components/terminology.vue +++ b/src/views/trials/trials-panel/setting/trial-config/components/terminology.vue @@ -9,14 +9,14 @@ :before-close="handleColse" width="900px" > -
{{ $t('common:button:add') }} -
+
--> @@ -72,7 +73,12 @@ :label="$t('trials:logincCfg:form:terminologyName')" prop="Name" > - + +
{ return { Name: null, TrialName: null, + IsDefault: false, } } export default { @@ -134,6 +146,22 @@ export default { message: this.$t('common:ruleMessage:specify'), trigger: 'blur', }, + { + validator: (rule, value, callback) => { + if ( + value && + this.DATA.find((item) => item.Name === value) && + this.status === 'add' + ) { + callback( + new Error(this.$t('trials:uploadDicomList:table:Existed')) + ) + } else { + callback() + } + }, + trigger: ['blur', 'change'], + }, ], TrialName: [ { @@ -158,7 +186,6 @@ export default { Object.keys(this.form).forEach((key) => { this.form[key] = row[key] }) - this.form.Id = row.Id } this.editVisible = true }, From 1d35efd4aa47680b9adccd714d665feb7ed7551e Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Thu, 7 Nov 2024 16:04:26 +0800 Subject: [PATCH 128/400] =?UTF-8?q?=E6=9C=AF=E8=AF=AD=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E5=90=8C=E6=AD=A5=E5=AD=97=E5=85=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../trial-config/components/logicalConfig.vue | 46 +++++++------------ 1 file changed, 16 insertions(+), 30 deletions(-) diff --git a/src/views/trials/trials-panel/setting/trial-config/components/logicalConfig.vue b/src/views/trials/trials-panel/setting/trial-config/components/logicalConfig.vue index 15a51368..2e354f36 100644 --- a/src/views/trials/trials-panel/setting/trial-config/components/logicalConfig.vue +++ b/src/views/trials/trials-panel/setting/trial-config/components/logicalConfig.vue @@ -767,35 +767,6 @@ import ClinicalDataForm from './clinicalDataForm' import terminology from './terminology' import const_ from '@/const/sign-code' import BaseModel from '@/components/BaseModel' -const defaultDATA = () => { - return [ - { - Name: '受试者编号', - TrialName: '受试者编号', - IsDefault: true, - }, - { - Name: '访视基准日期', - TrialName: '访视基准日期', - IsDefault: true, - }, - { - Name: '拍片日期', - TrialName: '拍片日期', - IsDefault: true, - }, - { - Name: '阅片人', - TrialName: '阅片人', - IsDefault: true, - }, - { - Name: '独立阅片人', - TrialName: '独立阅片人', - IsDefault: true, - }, - ] -} export default { name: 'LogicalConfig', components: { SignForm, ClinicalDataForm, BaseModel, terminology }, @@ -1357,7 +1328,6 @@ export default { (Array.isArray(this.form.TrialObjectNameList) && this.form.TrialObjectNameList.length <= 0) ) { - // this.form.TrialObjectNameList = defaultDATA() this.form.TrialObjectNameList = this.$d.Terminology.map((item) => { return { Name: item.label, @@ -1365,7 +1335,23 @@ export default { IsDefault: true, } }) + } else if ( + Array.isArray(this.form.TrialObjectNameList) && + this.form.TrialObjectNameList.length > 0 + ) { + this.$d.Terminology.forEach((item) => { + if ( + !this.form.TrialObjectNameList.find((d) => d.Name === item.label) + ) { + this.form.TrialObjectNameList.push({ + Name: item.label, + TrialName: item.label, + IsDefault: true, + }) + } + }) } + let Modalitys = this.form.ModalityList.map((item) => { return this.$fd('Modality', item.trim()) }) From 76616e257f89bfe84144f49622a2b50a7fd6c5bd Mon Sep 17 00:00:00 2001 From: caiyiling <1321909229@qq.com> Date: Fri, 8 Nov 2024 10:17:13 +0800 Subject: [PATCH 129/400] =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E5=85=A8?= =?UTF-8?q?=E5=B1=80=E9=98=85=E7=89=87=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../customize/CustomizeQuestionFormItem.vue | 2 +- .../components/CustomizeTable.vue | 432 ++++++++++++++++++ .../reading/global-review/index.vue | 14 +- 3 files changed, 445 insertions(+), 3 deletions(-) create mode 100644 src/views/trials/trials-panel/reading/global-review/components/CustomizeTable.vue diff --git a/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeQuestionFormItem.vue b/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeQuestionFormItem.vue index fede46b1..80f19e12 100644 --- a/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeQuestionFormItem.vue +++ b/src/views/trials/trials-panel/reading/dicoms/customize/CustomizeQuestionFormItem.vue @@ -491,7 +491,7 @@ export default { deleteReadingRowAnswer(param) .then(async res => { if (res.IsSuccess) { - this.$message.success('删除成功') + this.$message.success(this.$t('common:message:deletedSuccessfully')) DicomEvent.$emit('reGetQuestionAnswer') } loading.close() diff --git a/src/views/trials/trials-panel/reading/global-review/components/CustomizeTable.vue b/src/views/trials/trials-panel/reading/global-review/components/CustomizeTable.vue new file mode 100644 index 00000000..02e443e4 --- /dev/null +++ b/src/views/trials/trials-panel/reading/global-review/components/CustomizeTable.vue @@ -0,0 +1,432 @@ + + + + + diff --git a/src/views/trials/trials-panel/reading/global-review/index.vue b/src/views/trials/trials-panel/reading/global-review/index.vue index 96f8c387..010cc981 100644 --- a/src/views/trials/trials-panel/reading/global-review/index.vue +++ b/src/views/trials/trials-panel/reading/global-review/index.vue @@ -41,8 +41,17 @@ {{ $t('trials:globalReview:button:submit') }}
+ Date: Fri, 8 Nov 2024 17:47:01 +0800 Subject: [PATCH 130/400] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=88=86=E7=B1=BB?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../template/components/CriterionsConfig.vue | 15 +++++++++++++-- .../template/components/TableQsList.vue | 11 +++++++++++ .../reading-unit/components/QuestionsForm.vue | 4 ++-- .../reading-unit/components/TableQsForm.vue | 4 ++-- 4 files changed, 28 insertions(+), 6 deletions(-) diff --git a/src/views/dictionary/template/components/CriterionsConfig.vue b/src/views/dictionary/template/components/CriterionsConfig.vue index 484a8e3d..fba49f04 100644 --- a/src/views/dictionary/template/components/CriterionsConfig.vue +++ b/src/views/dictionary/template/components/CriterionsConfig.vue @@ -107,7 +107,7 @@ - + + + + + --> + + + + i.Type === 'basicTable') - this.selectQuestions = res.Result.filter(i=>i.Type === 'select' || i.Type === 'radio') + this.selectQuestions = res.Result.filter(i=>i.Type === 'select' || i.Type === 'radio' || i.Type === 'class') this.numberQuestions = res.Result.filter(i=>i.Type === 'number') } } catch(e) { diff --git a/src/views/trials/trials-panel/setting/reading-unit/components/TableQsForm.vue b/src/views/trials/trials-panel/setting/reading-unit/components/TableQsForm.vue index 7f55b133..04dd00e2 100644 --- a/src/views/trials/trials-panel/setting/reading-unit/components/TableQsForm.vue +++ b/src/views/trials/trials-panel/setting/reading-unit/components/TableQsForm.vue @@ -980,7 +980,7 @@ export default { } } this.initForm() - this.getCalculateTableQuestions(['number', 'select', 'radio', 'basicTable']) + this.getCalculateTableQuestions(['number', 'select', 'radio', 'class', 'basicTable']) // this.getCalculateTableQuestions('number') // this.getCalculateTableQuestions('table') }, @@ -994,7 +994,7 @@ export default { let res = await getCalculateTableQuestions(params) if (res.Result) { this.tableQuestions = res.Result.filter(i=>i.Type === 'basicTable') - this.selectQuestions = res.Result.filter(i=>i.Type === 'select' || i.Type === 'radio') + this.selectQuestions = res.Result.filter(i=>i.Type === 'select' || i.Type === 'radio' || i.Type === 'class') this.numberQuestions = res.Result.filter(i=>i.Type === 'number') } } catch(e) { From af27788e4c36bc07a2fad0ae218a116f2d93e424 Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Mon, 11 Nov 2024 10:40:24 +0800 Subject: [PATCH 131/400] =?UTF-8?q?=E7=AE=80=E5=8E=86=E4=B8=AD=E8=8B=B1?= =?UTF-8?q?=E6=96=87=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/EducationTraining.vue | 31 +++++++++---------- .../reviewers/components/TrialExperience.vue | 15 +++++++-- .../curriculumVitae/components/info/info.vue | 4 ++- .../reviewers/curriculumVitae/preview.vue | 13 +++++--- 4 files changed, 40 insertions(+), 23 deletions(-) diff --git a/src/views/reviewers/components/EducationTraining.vue b/src/views/reviewers/components/EducationTraining.vue index c88adcfb..4b69dd96 100644 --- a/src/views/reviewers/components/EducationTraining.vue +++ b/src/views/reviewers/components/EducationTraining.vue @@ -59,7 +59,7 @@ > + \ No newline at end of file diff --git a/src/views/system/user/list/index.vue b/src/views/system/user/list/index.vue index f00d9a15..36a149a9 100644 --- a/src/views/system/user/list/index.vue +++ b/src/views/system/user/list/index.vue @@ -35,6 +35,16 @@ + @@ -115,7 +125,7 @@ export default { showOverflowTooltip: true, }, { - prop: 'RealName', + prop: 'FullName', label: this.$t('system:userlist:table:RealName'), minWidth: 120, sortable: 'custom', @@ -154,6 +164,7 @@ export default { prop: 'UserType', label: this.$t('system:userlist:table:UserType'), minWidth: 100, + slot: 'UserTypeSlot', sortable: 'custom', showOverflowTooltip: true, }, diff --git a/src/views/trials/trials-layout/components/trialsNavbar.vue b/src/views/trials/trials-layout/components/trialsNavbar.vue index c98a697c..48b0f80d 100644 --- a/src/views/trials/trials-layout/components/trialsNavbar.vue +++ b/src/views/trials/trials-layout/components/trialsNavbar.vue @@ -104,6 +104,7 @@ />
{ + .then(async (res) => { if (res && res.length > 0) { - this.$store.dispatch('global/getNoticeList') + await this.$store.dispatch('global/getNoticeList') this.$router.addRoutes(res) this.toggleRoleLoading = false if (this.loginType === 'DevOps') { diff --git a/src/views/trials/trials-myinfo/index.vue b/src/views/trials/trials-myinfo/index.vue index 488c1954..3f5b19f7 100644 --- a/src/views/trials/trials-myinfo/index.vue +++ b/src/views/trials/trials-myinfo/index.vue @@ -107,11 +107,11 @@ export default { spinner: 'el-icon-loading', background: 'rgba(0, 0, 0, 0.07)', }) - getUser(this.userId) + getUser() .then(async (res) => { this.user = res.Result /* eslint-disable */ - zzSessionStorage.setItem('realName', this.user.RealName) + zzSessionStorage.setItem('Name', this.user.FullName) await store.dispatch('user/updateInfo') loading.close() }) diff --git a/src/views/trials/trials-workbench/index.vue b/src/views/trials/trials-workbench/index.vue index ae323a63..b96ef01c 100644 --- a/src/views/trials/trials-workbench/index.vue +++ b/src/views/trials/trials-workbench/index.vue @@ -490,7 +490,7 @@ export default { }, methods: { getUserInfo() { - getUser(this.userId).then(async res => { + getUser().then(async res => { this.user = res.Result }).catch(() => { loading.close() }) }, diff --git a/src/views/user/myInfo.vue b/src/views/user/myInfo.vue index 2dfecd78..94561ea4 100644 --- a/src/views/user/myInfo.vue +++ b/src/views/user/myInfo.vue @@ -17,36 +17,78 @@ {{ $t('trials:trials-myinfo:title:basicInfo') }} - + - - + + - - + + - + Male Female - - + + - - + + - - + + @@ -68,39 +110,97 @@ - + {{ user.UserName }} - + - + {{ $t('trials:trials-myinfo:button:update') }} - + {{ user.Phone }} - + - + {{ $t('trials:trials-myinfo:button:update') }} - + {{ user.EMail }} - - - {{ sendTitle }} + + + {{ sendTitle }} - - + + - + {{ $t('trials:trials-myinfo:button:update') }} @@ -111,18 +211,52 @@ {{ $t('trials:trials-myinfo:title:updatePaasord') }} - + - - + + - - + + - - + + From dec01d779d0aba8517c7ad0e9453ebfa92825aac Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Wed, 25 Dec 2024 11:42:11 +0800 Subject: [PATCH 244/400] =?UTF-8?q?=E7=BC=96=E8=BE=91=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E8=A7=92=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/system/user/components/UserInfo.vue | 2 +- src/views/system/user/components/roleList.vue | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/views/system/user/components/UserInfo.vue b/src/views/system/user/components/UserInfo.vue index 22c477ab..84c03f80 100644 --- a/src/views/system/user/components/UserInfo.vue +++ b/src/views/system/user/components/UserInfo.vue @@ -281,7 +281,7 @@ export default { this.user.Roles.push(item.UserTypeId) } this.user.UserRoleList.push({ - UserTypeEnum: item.UserTypeEnum, + UserTypeEnum: item.UserType, UserTypeId: item.UserTypeId, IsUserRoleDisabled: item.IsUserRoleDisabled, UserTypeShortName: item.UserTypeShortName, diff --git a/src/views/system/user/components/roleList.vue b/src/views/system/user/components/roleList.vue index 06d2e0e8..d4138223 100644 --- a/src/views/system/user/components/roleList.vue +++ b/src/views/system/user/components/roleList.vue @@ -181,7 +181,7 @@ export default { arr.forEach((item) => { this.list.push({ UserTypeEnum: item.UserTypeEnum, - UserTypeId: item.UserTypeId, + UserTypeId: item.Id, IsUserRoleDisabled: false, UserTypeShortName: item.UserTypeShortName, }) From f637f746cbdb2ec4df56351274e89b8c3f8fcf0b Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Wed, 25 Dec 2024 13:27:31 +0800 Subject: [PATCH 245/400] =?UTF-8?q?=E9=87=8D=E7=BD=AE=E5=AF=86=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/forgetpassword/index.vue | 21 +++++++++++-------- src/views/system/user/components/roleList.vue | 1 + 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/views/forgetpassword/index.vue b/src/views/forgetpassword/index.vue index 1f18d6f4..d66f6c34 100644 --- a/src/views/forgetpassword/index.vue +++ b/src/views/forgetpassword/index.vue @@ -76,7 +76,8 @@ > - + - - + --> { this.formLoading = false - this.users = res.Result - if (this.users.length === 1) { - this.form.UserId = this.users[0].UserId - this.form.UserType = this.users[0].UserType - } + this.form.UserId = res.Result.Id + this.form.UserName = res.Result.UserName + // this.users = res.Result + // if (this.users.length === 1) { + // this.form.UserId = this.users[0].UserId + // this.form.UserType = this.users[0].UserType + // } // 验证成功 this.$message.success( this.$t('passwordReset:message:verifiedSuccessfully') diff --git a/src/views/system/user/components/roleList.vue b/src/views/system/user/components/roleList.vue index d4138223..f8b14998 100644 --- a/src/views/system/user/components/roleList.vue +++ b/src/views/system/user/components/roleList.vue @@ -7,6 +7,7 @@ :close-on-click-modal="false" :close-on-press-escape="false" append-to-body + :show-close="false" :title="$t('system:userlist:roleList:title')" :before-close="cancel" > From 9bdb8f64b3b23ef2b0c9c4c0f049e01ff6e6d581 Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Wed, 25 Dec 2024 14:10:31 +0800 Subject: [PATCH 246/400] 1 --- src/views/email-recompose/index.vue | 1 - src/views/system/user/components/UserInfo.vue | 1 - src/views/system/user/components/roleList.vue | 1 - 3 files changed, 3 deletions(-) diff --git a/src/views/email-recompose/index.vue b/src/views/email-recompose/index.vue index 9a11ceb9..ba74eceb 100644 --- a/src/views/email-recompose/index.vue +++ b/src/views/email-recompose/index.vue @@ -95,7 +95,6 @@ export default { : 'zh' /* eslint-disable */ var reg1 = /^[a-zA-Z0-9_]{4,16}$/ //密码必须是8位以上、必须含有字母、数字、特殊符号 - console.log(!reg1.test(value)) if (!reg1.test(value)) { callback( lang === 'zh' diff --git a/src/views/system/user/components/UserInfo.vue b/src/views/system/user/components/UserInfo.vue index 84c03f80..6c21913b 100644 --- a/src/views/system/user/components/UserInfo.vue +++ b/src/views/system/user/components/UserInfo.vue @@ -300,7 +300,6 @@ export default { : 'zh' /* eslint-disable */ var reg1 = /^[a-zA-Z0-9_]{4,16}$/ //密码必须是8位以上、必须含有字母、数字、特殊符号 - console.log(!reg1.test(value)) if (!reg1.test(value)) { callback( lang === 'zh' diff --git a/src/views/system/user/components/roleList.vue b/src/views/system/user/components/roleList.vue index f8b14998..f79c7e92 100644 --- a/src/views/system/user/components/roleList.vue +++ b/src/views/system/user/components/roleList.vue @@ -168,7 +168,6 @@ export default { roles.push(item.UserTypeId) } }) - console.log(roles) this.$emit('update:roles', roles) this.$emit('update:visible', false) }, From b233535d9554b00feb6d16f77861852874299bae Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Wed, 25 Dec 2024 14:47:12 +0800 Subject: [PATCH 247/400] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E8=A7=92=E8=89=B2?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/trials.js | 9 + .../personnel-manage/components/staff.vue | 369 +++++++++++++++--- 2 files changed, 314 insertions(+), 64 deletions(-) diff --git a/src/api/trials.js b/src/api/trials.js index d3df4757..26bba548 100644 --- a/src/api/trials.js +++ b/src/api/trials.js @@ -3922,4 +3922,13 @@ export function configTrialSPMInfo(data) { method: 'post', data }) +} + +// 项目添加角色修改权限 +export function updateTrialUserRole(data) { + return request({ + url: `/TrialMaintenance/updateTrialUserRole`, + method: 'put', + data + }) } \ No newline at end of file diff --git a/src/views/trials/trials-panel/setting/personnel-manage/components/staff.vue b/src/views/trials/trials-panel/setting/personnel-manage/components/staff.vue index 5fb31630..4ddfcaaf 100644 --- a/src/views/trials/trials-panel/setting/personnel-manage/components/staff.vue +++ b/src/views/trials/trials-panel/setting/personnel-manage/components/staff.vue @@ -16,7 +16,12 @@ - - + + @@ -42,14 +52,20 @@ {{ $t('common:button:search') }} - + {{ $t('common:button:reset') }} @@ -57,7 +73,9 @@ + > + + @@ -156,7 +195,11 @@ width="160" >
@@ -168,25 +211,29 @@ width="160" > - + /> --> - + /> --> @@ -207,30 +256,60 @@
- From 7ed4dd7e24f104e31f56894910b6f590a94d7acc Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Wed, 25 Dec 2024 14:51:36 +0800 Subject: [PATCH 248/400] 1 --- src/views/system/user/components/UserInfo.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/system/user/components/UserInfo.vue b/src/views/system/user/components/UserInfo.vue index 6c21913b..1f8de2ec 100644 --- a/src/views/system/user/components/UserInfo.vue +++ b/src/views/system/user/components/UserInfo.vue @@ -281,7 +281,7 @@ export default { this.user.Roles.push(item.UserTypeId) } this.user.UserRoleList.push({ - UserTypeEnum: item.UserType, + UserTypeEnum: item.UserTypeEnum, UserTypeId: item.UserTypeId, IsUserRoleDisabled: item.IsUserRoleDisabled, UserTypeShortName: item.UserTypeShortName, From 9d3ba7eb578163d6c82154b0848f636b8f7c8234 Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Wed, 25 Dec 2024 15:55:36 +0800 Subject: [PATCH 249/400] 1 --- .../trials-layout/components/trialsNavbar.vue | 1 - .../personnel-manage/components/site.vue | 2 +- .../components/staffExternalForm.vue | 2 +- .../personnel-manage/components/staffForm.vue | 158 ++++++++++++------ 4 files changed, 106 insertions(+), 57 deletions(-) diff --git a/src/views/trials/trials-layout/components/trialsNavbar.vue b/src/views/trials/trials-layout/components/trialsNavbar.vue index 48b0f80d..e8404a87 100644 --- a/src/views/trials/trials-layout/components/trialsNavbar.vue +++ b/src/views/trials/trials-layout/components/trialsNavbar.vue @@ -154,7 +154,6 @@ export default { }, created() { // this.isReviewer = JSON.parse(zzSessionStorage.getItem('IsReviewer')) - console.log(this.$route.path, 'this.$route.path') this.changeRoute(this.$route) }, methods: { diff --git a/src/views/trials/trials-panel/setting/personnel-manage/components/site.vue b/src/views/trials/trials-panel/setting/personnel-manage/components/site.vue index fed20e1a..8a7224b0 100644 --- a/src/views/trials/trials-panel/setting/personnel-manage/components/site.vue +++ b/src/views/trials/trials-panel/setting/personnel-manage/components/site.vue @@ -412,7 +412,7 @@ > - +
{{ $t('trials:staff:table:name') }}: - + {{ $t('trials:staff:table:uid') }}: - + {{ $t('trials:staff:table:organization') }}: - + {{ $t('trials:staff:table:userType') }}: - + - + {{ $t('common:button:search') }} - + {{ $t('common:button:reset') }} - + {{ $t('common:button:add') }}
@@ -101,17 +139,25 @@ sortable="custom" min-width="100" /> -
- + diff --git a/src/views/trials/trials-panel/reading/dicoms/components/MRIPDFF/QuestionList.vue b/src/views/trials/trials-panel/reading/dicoms/components/MRIPDFF/QuestionList.vue new file mode 100644 index 00000000..b306cb62 --- /dev/null +++ b/src/views/trials/trials-panel/reading/dicoms/components/MRIPDFF/QuestionList.vue @@ -0,0 +1,616 @@ + + + diff --git a/src/views/trials/trials-panel/reading/dicoms/components/ReportPage.vue b/src/views/trials/trials-panel/reading/dicoms/components/ReportPage.vue index 2e7c5019..4f9b4432 100644 --- a/src/views/trials/trials-panel/reading/dicoms/components/ReportPage.vue +++ b/src/views/trials/trials-panel/reading/dicoms/components/ReportPage.vue @@ -373,13 +373,13 @@ export default { }) }, async beforeLeave() { - if (this.questionFormChangeState && this.CriterionType !== 2) { - var msg = this.$t('trials:readingReport:message:msg5') - var isgo = await this.myConfirm(msg) - if (!isgo) { - return Promise.resolve(true) - } - } + // if (this.questionFormChangeState && this.CriterionType !== 2) { + // var msg = this.$t('trials:readingReport:message:msg5') + // var isgo = await this.myConfirm(msg) + // if (!isgo) { + // return Promise.resolve(true) + // } + // } var list = null DicomEvent.$emit('getAllUnSaveLesions', val => { list = val diff --git a/src/views/trials/trials-panel/reading/dicoms/tools/Probe/ProbeTool.js b/src/views/trials/trials-panel/reading/dicoms/tools/Probe/ProbeTool.js new file mode 100644 index 00000000..92caea2c --- /dev/null +++ b/src/views/trials/trials-panel/reading/dicoms/tools/Probe/ProbeTool.js @@ -0,0 +1,404 @@ +import * as cornerstoneTools from 'cornerstone-tools' +const external = cornerstoneTools.external +// State +const getToolState = cornerstoneTools.getToolState +const textStyle = cornerstoneTools.textStyle +const toolColors = cornerstoneTools.toolColors +const toolStyle = cornerstoneTools.toolStyle +// Drawing +const getNewContext = cornerstoneTools.import('drawing/getNewContext') +const draw = cornerstoneTools.import('drawing/draw') +const drawHandles = cornerstoneTools.import('drawing/drawHandles') +const drawTextBox = cornerstoneTools.import('drawing/drawTextBox') +// Utilities +const getRGBPixels = cornerstoneTools.import('util/getRGBPixels') +const calculateSUV = cornerstoneTools.import('util/calculateSUV') +// import { probeCursor } from '../cursors/index.js'; +// import { getLogger } from '../../util/logger.js'; +const throttle = cornerstoneTools.import('util/throttle') +const getModule = cornerstoneTools.getModule +const getPixelSpacing = cornerstoneTools.import('util/getPixelSpacing') +// import numbersWithCommas from './../../util/numbersWithCommas.js'; +const numbersWithCommas = cornerstoneTools.import('util/numbersWithCommas') +// const logger = getLogger('tools:annotation:ProbeTool'); +import calculateEllipseStatistics from './calculateEllipseStatistics' +import getCircleCoords from './getCircleCoords' +/** + * @public + * @class ProbeTool + * @memberof Tools.Annotation + * @classdesc Tool which provides a probe of the image data at the + * desired position. + * @extends Tools.Base.BaseAnnotationTool + */ +export default class ProbeTool extends cornerstoneTools.ProbeTool { + constructor(props = {}) { + const defaultProps = { + name: 'Probe', + supportedInteractionTypes: ['Mouse', 'Touch'], + // svgCursor: probeCursor, + configuration: { + drawHandles: true, + renderDashed: false, + handleRadius: 0, + fixedRadius: 0, + hideHandlesIfMoving: false, + digits: 1, + showRadius: false, + }, + }; + + super(props, defaultProps); + + this.throttledUpdateCachedStats = throttle(this.updateCachedStats, 110); + } + + createNewMeasurement(eventData) { + const goodEventData = + eventData && eventData.currentPoints && eventData.currentPoints.image; + + if (!goodEventData) { + logger.error( + `required eventData not supplied to tool ${this.name}'s createNewMeasurement` + ); + + return; + } + + return { + visible: true, + active: true, + color: undefined, + invalidated: true, + handles: { + // start: { + // x: eventData.currentPoints.image.x, + // y: eventData.currentPoints.image.y, + // highlight: true, + // active: false, + // }, + end: { + x: eventData.currentPoints.image.x, + y: eventData.currentPoints.image.y, + highlight: true, + active: true, + radius: 0 + }, + }, + }; + } + + /** + * + * + * @param {*} element + * @param {*} data + * @param {*} coords + * @returns {Boolean} + */ + pointNearTool(element, data, coords) { + const hasEndHandle = data && data.handles && data.handles.end; + const validParameters = hasEndHandle; + + if (!validParameters) { + logger.warn( + `invalid parameters supplied to tool ${this.name}'s pointNearTool` + ); + } + + if (!validParameters || data.visible === false) { + return false; + } + + const probeCoords = external.cornerstone.pixelToCanvas( + element, + data.handles.end + ); + + return external.cornerstoneMath.point.distance(probeCoords, coords) < 5; + } + // pointNearTool(element, data, coords) { + // const hasEndHandle = data && data.handles && data.handles.end; + // const validParameters = hasEndHandle; + + // if (!validParameters) { + // logger.warn( + // `invalid parameters supplied to tool ${this.name}'s pointNearTool` + // ); + // } + + // if (!validParameters || data.visible === false) { + // return false; + // } + // // data.handles.end.x = data.handles.end.x + 10 + // let endCoords = { + // x: data.handles.end.x + 50, + // y: data.handles.end.y, + // highlight: data.handles.end.highlight, + // active: data.handles.end.active, + // } + // const probeCoords = external.cornerstone.pixelToCanvas( + // element, + // endCoords + // ); + + // return external.cornerstoneMath.point.distance(probeCoords, coords) < 5; + // } + + // updateCachedStats(image, element, data) { + // const x = Math.round(data.handles.end.x); + // const y = Math.round(data.handles.end.y); + + // const stats = {}; + + // if (x >= 0 && y >= 0 && x < image.columns && y < image.rows) { + // stats.x = x; + // stats.y = y; + + // if (image.color) { + // stats.storedPixels = getRGBPixels(element, x, y, 1, 1); + // } else { + // stats.storedPixels = external.cornerstone.getStoredPixels( + // element, + // x, + // y, + // 1, + // 1 + // ); + // stats.sp = stats.storedPixels[0]; + // stats.mo = stats.sp * image.slope + image.intercept; + // stats.suv = calculateSUV(image, stats.sp); + // } + // } + + // data.cachedStats = stats; + // data.invalidated = false; + // } + updateCachedStats(image, element, data) { + const seriesModule = + external.cornerstone.metaData.get('generalSeriesModule', image.imageId) || + {}; + const modality = seriesModule.modality; + const pixelSpacing = getPixelSpacing(image); + const { fixedRadius, digits } = this.configuration; + const stats = _calculateStats( + image, + element, + data.handles, + modality, + pixelSpacing, + fixedRadius, + digits + ); + + data.cachedStats = stats; + data.invalidated = false; + } + + renderToolData(evt) { + const eventData = evt.detail; + const { fixedRadius, renderDashed } = this.configuration; + const toolData = getToolState(evt.currentTarget, this.name); + + if (!toolData) { + return; + } + + // We have tool data for this element - iterate over each one and draw it + const context = getNewContext(eventData.canvasContext.canvas); + const { image, element } = eventData; + const fontHeight = textStyle.getFontSize(); + const lineDash = getModule('globalConfiguration').configuration.lineDash; + const pixelSpacing = getPixelSpacing(image); + // Meta + const seriesModule = + external.cornerstone.metaData.get('generalSeriesModule', image.imageId) || + {}; + + // Pixel Spacing + const modality = seriesModule.modality; + const hasPixelSpacing = pixelSpacing && pixelSpacing.rowPixelSpacing && pixelSpacing.colPixelSpacing; + for (let i = 0; i < toolData.data.length; i++) { + const data = toolData.data[i]; + if (data.visible === false) { + continue; + } + + draw(context, context => { + const color = toolColors.getColorIfActive(data); + + if (this.configuration.drawHandles) { + // Draw the handles + let radius = getCanvasRadius(data.handles, fixedRadius, element, pixelSpacing) + data.handles.end.radius = radius + const handleOptions = { handleRadius: radius, color }; + + if (renderDashed) { + handleOptions.lineDash = lineDash; + } + drawHandles(context, eventData, data.handles, handleOptions); + } + + // Update textbox stats + if (data.invalidated === true) { + if (data.cachedStats) { + this.throttledUpdateCachedStats(image, element, data); + } else { + this.updateCachedStats(image, element, data); + } + } + + // let text, str; + let textLines = [] + const { x, y, area, mean, radius } = data.cachedStats; + + if (x >= 0 && y >= 0 && x < image.columns && y < image.rows) { + // text = `${x}, ${y}`; + if (data.remark) { + textLines.push(`${data.remark}`) + } + if (!image.color) { + // Draw text + let unit = _getUnit(modality, this.configuration.showHounsfieldUnits); + + // textLines.push(_formatArea(area, hasPixelSpacing)); + if (mean) { + // str += `mean: ${parseFloat(mean.toFixed(3))}`; + textLines.push(`Mean: ${mean} ${unit}`) + } + // if (radius) { + // str += `radius: ${parseFloat(radius.toFixed(3))}`; + // textLines.push(`radius: ${parseFloat(radius.toFixed(3))}`) + // } + } + let r = getPixelRadius(fixedRadius, pixelSpacing) + // Coords for text + const coords = { + // Translate the x/y away from the cursor + x: data.handles.end.x + r, + y: data.handles.end.y - r, + }; + const textCoords = external.cornerstone.pixelToCanvas( + eventData.element, + coords + ); + drawTextBox( + context, + textLines, + textCoords.x, + textCoords.y , + color + ); + // drawTextBox(context, '', textCoords.x, textCoords.y, color); + } + }); + } + } +} +function _getUnit(modality, showHounsfieldUnits) { + return modality === 'CT' && showHounsfieldUnits !== false ? 'HU' : ''; +} +function _formatArea(area, hasPixelSpacing) { + const suffix = hasPixelSpacing + ? ` mm${String.fromCharCode(178)}` + : ` px${String.fromCharCode(178)}`; + + return `Area: ${numbersWithCommas(area.toFixed(2))}${suffix}`; +} +function getCanvasRadius(handles, fixedRadius, element, pixelSpacing) { + let startCoords = { + x: handles.end.x, + y: handles.end.y + } + const handleCanvasStartCoords = external.cornerstone.pixelToCanvas( + element, + startCoords + ); + let r = getPixelRadius(fixedRadius, pixelSpacing) + let endCoords = { + x: handles.end.x + r, + y: handles.end.y + } + const handleCanvasEndCoords = external.cornerstone.pixelToCanvas( + element, + endCoords + ); + return Math.abs(handleCanvasEndCoords.x - handleCanvasStartCoords.x) +} +function getPixelRadius(r, pixelSpacing) { + return r / ((pixelSpacing && pixelSpacing.colPixelSpacing) || 1) +} +function _calculateStats(image, element, handles, modality, pixelSpacing, fixedRadius, digits) { + // Retrieve the bounds of the ellipse in image coordinates + let startCoords = { + x: handles.end.x, + y: handles.end.y + } + let r = getPixelRadius(fixedRadius, pixelSpacing) + let endCoords = { + x: handles.end.x + r, + y: handles.end.y + } + const circleCoordinates = getCircleCoords(startCoords, endCoords); + + // Retrieve the array of pixels that the ellipse bounds cover + const pixels = external.cornerstone.getPixels( + element, + circleCoordinates.left, + circleCoordinates.top, + circleCoordinates.width, + circleCoordinates.height + ); + + // Calculate the mean & standard deviation from the pixels and the ellipse details. + const ellipseMeanStdDev = calculateEllipseStatistics( + pixels, + circleCoordinates + ); + + let meanStdDevSUV; + + if (modality === 'PT') { + meanStdDevSUV = { + mean: calculateSUV(image, ellipseMeanStdDev.mean, true) || 0, + stdDev: calculateSUV(image, ellipseMeanStdDev.stdDev, true) || 0, + }; + } + + const radius = + (circleCoordinates.width * + ((pixelSpacing && pixelSpacing.colPixelSpacing) || 1)) / + 2; + const perimeter = 2 * Math.PI * radius; + const area = + Math.PI * + ((circleCoordinates.width * + ((pixelSpacing && pixelSpacing.colPixelSpacing) || 1)) / + 2) * + ((circleCoordinates.height * + ((pixelSpacing && pixelSpacing.rowPixelSpacing) || 1)) / + 2); + const x = Math.round(handles.end.x); + const y = Math.round(handles.end.y); + + const stats = {}; + + if (x >= 0 && y >= 0 && x < image.columns && y < image.rows) { + stats.x = x; + stats.y = y; + } + return { + area: area || 0, + radius: radius || 0, + perimeter: perimeter || 0, + mean: ellipseMeanStdDev.mean.toFixed(digits) || 0, + stdDev: ellipseMeanStdDev.stdDev.toFixed(digits) || 0, + min: ellipseMeanStdDev.min.toFixed(digits) || 0, + max: ellipseMeanStdDev.max.toFixed(digits) || 0, + meanStdDevSUV, + x: stats.x, + y: stats.y + }; +} + + diff --git a/src/views/trials/trials-panel/reading/dicoms/tools/Probe/calculateEllipseStatistics.js b/src/views/trials/trials-panel/reading/dicoms/tools/Probe/calculateEllipseStatistics.js new file mode 100644 index 00000000..867437f5 --- /dev/null +++ b/src/views/trials/trials-panel/reading/dicoms/tools/Probe/calculateEllipseStatistics.js @@ -0,0 +1,67 @@ +import pointInEllipse from './pointInEllipse.js'; + +/** + * Calculates the statistics of an elliptical region of interest. + * + * @private + * @function calculateEllipseStatistics + * + * @param {number[]} sp - Array of the image data's pixel values. + * @param {Object} ellipse - { top, left, height, width } - An object describing the ellipse. + * @returns {Object} { count, mean, variance, stdDev, min, max } + */ +export default function(sp, ellipse) { + let sum = 0; + let sumSquared = 0; + let count = 0; + let index = 0; + let min = null; + let max = null; + + for (let y = ellipse.top; y < ellipse.top + ellipse.height; y++) { + for (let x = ellipse.left; x < ellipse.left + ellipse.width; x++) { + const point = { + x, + y, + }; + + if (pointInEllipse(ellipse, point)) { + if (min === null) { + min = sp[index]; + max = sp[index]; + } + + sum += sp[index]; + sumSquared += sp[index] * sp[index]; + min = Math.min(min, sp[index]); + max = Math.max(max, sp[index]); + count++; + } + + index++; + } + } + + if (count === 0) { + return { + count, + mean: 0.0, + variance: 0.0, + stdDev: 0.0, + min: 0.0, + max: 0.0, + }; + } + + const mean = sum / count; + const variance = sumSquared / count - mean * mean; + + return { + count, + mean, + variance, + stdDev: Math.sqrt(variance), + min, + max, + }; +} diff --git a/src/views/trials/trials-panel/reading/dicoms/tools/Probe/getCircleCoords.js b/src/views/trials/trials-panel/reading/dicoms/tools/Probe/getCircleCoords.js new file mode 100644 index 00000000..ddc90942 --- /dev/null +++ b/src/views/trials/trials-panel/reading/dicoms/tools/Probe/getCircleCoords.js @@ -0,0 +1,21 @@ +import * as cornerstoneTools from 'cornerstone-tools' +const external = cornerstoneTools.external + +/** + * Retrieve the bounds of the circle in image coordinates + * + * @param {*} startHandle + * @param {*} endHandle + * @returns {{ left: number, top: number, width: number, height: number }} + */ +export default function getCircleCoords(startHandle, endHandle) { + const { distance } = external.cornerstoneMath.point + const radius = distance(startHandle, endHandle) + + return { + left: Math.floor(Math.min(startHandle.x - radius, endHandle.x)), + top: Math.floor(Math.min(startHandle.y - radius, endHandle.y)), + width: radius * 2, + height: radius * 2 + } +} diff --git a/src/views/trials/trials-panel/reading/dicoms/tools/Probe/pointInEllipse.js b/src/views/trials/trials-panel/reading/dicoms/tools/Probe/pointInEllipse.js new file mode 100644 index 00000000..e7a09e2e --- /dev/null +++ b/src/views/trials/trials-panel/reading/dicoms/tools/Probe/pointInEllipse.js @@ -0,0 +1,39 @@ +/** + * Returns true if a point is within an ellipse + * @export @public @method + * @name pointInEllipse + * + * @param {Object} ellipse Object defining the ellipse. + * @param {Object} location The location of the point. + * @returns {boolean} True if the point is within the ellipse. + */ +export default function(ellipse, location) { + const xRadius = ellipse.width / 2; + const yRadius = ellipse.height / 2; + + if (xRadius <= 0.0 || yRadius <= 0.0) { + return false; + } + + const center = { + x: ellipse.left + xRadius, + y: ellipse.top + yRadius, + }; + + /* This is a more general form of the circle equation + * + * X^2/a^2 + Y^2/b^2 <= 1 + */ + + const normalized = { + x: location.x - center.x, + y: location.y - center.y, + }; + + const inEllipse = + (normalized.x * normalized.x) / (xRadius * xRadius) + + (normalized.y * normalized.y) / (yRadius * yRadius) <= + 1.0; + + return inEllipse; +} From 7882c9b631efc11a60fbd8f824a3dd85e57d941b Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Thu, 26 Dec 2024 11:02:58 +0800 Subject: [PATCH 255/400] =?UTF-8?q?=E9=93=BE=E6=8E=A5=E8=B7=B3=E8=BD=AC?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=B4=A6=E5=8F=B7=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/email-recompose/index.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/views/email-recompose/index.vue b/src/views/email-recompose/index.vue index ba74eceb..21c1ce7b 100644 --- a/src/views/email-recompose/index.vue +++ b/src/views/email-recompose/index.vue @@ -29,9 +29,9 @@ - + From 9cd540d1ecce4d33ea68ab7f0624c46a3f9e1cf2 Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Thu, 26 Dec 2024 12:29:55 +0800 Subject: [PATCH 256/400] =?UTF-8?q?=E5=88=87=E6=8D=A2=E8=A7=92=E8=89=B2?= =?UTF-8?q?=E8=B7=B3=E8=BD=AC=E9=A1=B5=E9=9D=A2=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/permission.js | 2 ++ src/store/getters.js | 1 + src/store/modules/user.js | 6 ++++++ .../trials-layout/components/trialsNavbar.vue | 19 +++++++++++++++---- 4 files changed, 24 insertions(+), 4 deletions(-) diff --git a/src/permission.js b/src/permission.js index 185ace75..a5bb41b2 100644 --- a/src/permission.js +++ b/src/permission.js @@ -1,4 +1,5 @@ import router from './router' +import { resetRouter } from '@/router' import store from './store' // import { Message } from 'element-ui' import NProgress from 'nprogress' @@ -80,6 +81,7 @@ router.beforeEach(async (to, from, next) => { await store.dispatch('user/getInfo') await store.dispatch('user/getUserInfo') const accessRoutes = await store.dispatch('permission/generateRoutes') + resetRouter() router.addRoutes(accessRoutes) next({ ...to, replace: true }) } catch (error) { diff --git a/src/store/getters.js b/src/store/getters.js index 6ab90e66..eb877042 100644 --- a/src/store/getters.js +++ b/src/store/getters.js @@ -3,6 +3,7 @@ const getters = { device: state => state.app.device, token: state => state.user.token, name: state => state.user.name, + userTypeShortName: state => state.user.userTypeShortName, permissions: state => state.user.permissions, tree: state => state.user.tree, userName: state => state.user.userName, diff --git a/src/store/modules/user.js b/src/store/modules/user.js index 5d725e21..b99d4dcb 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -8,6 +8,7 @@ const getDefaultState = () => { return { token: getToken(), name: '', + userTypeShortName: "", userName: '', userId: '', identityUserId: '', @@ -40,6 +41,9 @@ const mutations = { SET_NAME: (state, name) => { state.name = name }, + SET_USERTYPESHORTNAME: (state, userTypeShortName) => { + state.userTypeShortName = userTypeShortName + }, SET_USERNAME: (state, name) => { state.userName = name }, @@ -176,6 +180,7 @@ const actions = { const userString = decodeURIComponent(escape(window.atob(data.split('.')[1].replace(/-/g, '+').replace(/_/g, '/')))) const user = JSON.parse(userString) zzSessionStorage.setItem('userTypeShortName', user.userTypeShortName) + commit('SET_USERTYPESHORTNAME', user.userTypeShortName) commit('SET_NAME', user.fullName) setName(user.fullName) var permissions = await getUserPermissions() @@ -222,6 +227,7 @@ const actions = { commit('SET_ISTESTUSER', zzSessionStorage.getItem('isTestUser')) const user = JSON.parse(userString) commit('SET_NAME', zzSessionStorage.getItem('Name')) + commit('SET_USERTYPESHORTNAME', user.userTypeShortName) commit('SET_IDENTITYUSERID', user.identityUserId) commit('SET_USERID', user.userRoleId) commit('SET_USERNAME', zzSessionStorage.getItem('userName')) diff --git a/src/views/trials/trials-layout/components/trialsNavbar.vue b/src/views/trials/trials-layout/components/trialsNavbar.vue index e8404a87..44b1e9b1 100644 --- a/src/views/trials/trials-layout/components/trialsNavbar.vue +++ b/src/views/trials/trials-layout/components/trialsNavbar.vue @@ -116,6 +116,7 @@ import { mapGetters, mapMutations } from 'vuex' import TopLang from './topLang' import NoticeMarquee from './noticeMarquee' +import { resetRouter } from '@/router' import toggleRole from '@/components/toggleRole' export default { components: { TopLang, NoticeMarquee, toggleRole }, @@ -123,7 +124,7 @@ export default { return { activeIndex: '2', isReviewer: false, - userTypeShortName: zzSessionStorage.getItem('userTypeShortName'), + // userTypeShortName: zzSessionStorage.getItem('userTypeShortName'), notice: '', VUE_APP_OSS_CONFIG_REGION: process.env.VUE_APP_OSS_CONFIG_REGION, NODE_ENV: process.env.NODE_ENV, @@ -139,6 +140,7 @@ export default { 'device', 'TotalNeedSignSystemDocCount', 'language', + 'userTypeShortName', ]), roles() { return this.$store.state.user.roles @@ -244,6 +246,7 @@ export default { .dispatch('permission/generateRoutes') .then(async (res) => { if (res && res.length > 0) { + resetRouter() await this.$store.dispatch('global/getNoticeList') this.$router.addRoutes(res) this.toggleRoleLoading = false @@ -263,11 +266,19 @@ export default { 'role:rir', ]) ) { - this.$router.replace({ path: '/trials/trials-list' }) + history.replaceState(null, null, '/trials/trials-list') + history.go(0) + // this.$router.replace({ path: '/trials/trials-list' }) } else { - this.$router.replace({ path: '/trials' }) + history.replaceState(null, null, '/trials') + history.go(0) + // this.$router.replace({ path: '/trials/trials-workbench' }) } - window.location.reload() + this.toggleRoleVisible = false + this.toggleRoleLoading = false + this.$nextTick(() => { + window.location.reload() + }) } else { // 此账户暂未配置菜单权限,请联系管理员处理后再登录。 this.toggleRoleLoading = false From 940a860352df4e0c8d4e7f56db9a947a6c78850d Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Thu, 26 Dec 2024 13:29:02 +0800 Subject: [PATCH 257/400] =?UTF-8?q?=E9=80=80=E5=87=BA=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E6=96=B0=E5=A2=9E=E5=8F=82=E6=95=B0IdentityU?= =?UTF-8?q?serId?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/store/modules/user.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/store/modules/user.js b/src/store/modules/user.js index b99d4dcb..dae8780b 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -261,7 +261,8 @@ const actions = { try { removeToken() // must remove token first await loginOut({ - Userd: zzSessionStorage.getItem('userId') + UserRoleId: zzSessionStorage.getItem('userId'), + IdentityUserId: zzSessionStorage.getItem('identityUserId'), }) resetRouter() removeName() From 5dedcbc2efecbda52590153a3f8a8f8831d8cc2b Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Thu, 26 Dec 2024 13:53:52 +0800 Subject: [PATCH 258/400] =?UTF-8?q?=E5=BD=B1=E5=83=8F=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/trials/trials-panel/visit/crc-upload/index.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/views/trials/trials-panel/visit/crc-upload/index.vue b/src/views/trials/trials-panel/visit/crc-upload/index.vue index b04baaec..a0ed9df3 100644 --- a/src/views/trials/trials-panel/visit/crc-upload/index.vue +++ b/src/views/trials/trials-panel/visit/crc-upload/index.vue @@ -742,10 +742,10 @@ - + Date: Thu, 26 Dec 2024 14:07:21 +0800 Subject: [PATCH 259/400] 1 --- .../reading/dicoms/components/MRIPDFF/QuestionForm.vue | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/views/trials/trials-panel/reading/dicoms/components/MRIPDFF/QuestionForm.vue b/src/views/trials/trials-panel/reading/dicoms/components/MRIPDFF/QuestionForm.vue index 92df7c74..884a8368 100644 --- a/src/views/trials/trials-panel/reading/dicoms/components/MRIPDFF/QuestionForm.vue +++ b/src/views/trials/trials-panel/reading/dicoms/components/MRIPDFF/QuestionForm.vue @@ -47,7 +47,7 @@ - 定位 + 返回 i.tableQuestionId === qs.Id) let params = {} - if (i > -1 && this.markList[i].measureData) { + if (i > -1 && this.markList[i].measureData && this.markList[i].measureData.MeasureData) { let measureData = this.markList[i].measureData.MeasureData // 上传截图 DicomEvent.$emit('getScreenshots', { questionId: this.parentQsId, rowIndex: this.questionForm.RowIndex, visitTaskId: this.visitTaskId, lesionName: measureData.OrderMarkName, lesionType: null, isMarked: !!measureData }, async val => { From d645df58c2b41cb6d0e8b4daa5e9b21c52582929 Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Thu, 26 Dec 2024 14:13:20 +0800 Subject: [PATCH 260/400] =?UTF-8?q?=E7=AE=A1=E7=90=86=E7=AB=AF=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E4=BF=AE=E6=94=B9=E8=A7=92=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/admin.js | 9 +++ src/views/system/user/components/UserInfo.vue | 59 +++++++++++++++++-- src/views/system/user/components/roleList.vue | 48 +++++++++------ 3 files changed, 95 insertions(+), 21 deletions(-) diff --git a/src/api/admin.js b/src/api/admin.js index 3f8c1073..71a658c3 100644 --- a/src/api/admin.js +++ b/src/api/admin.js @@ -325,3 +325,12 @@ export function useUserIDGetDoctorID(data) { data }) } + +// 管理端修改用户角色 +export function updateUserRoleInfo(data) { + return request({ + url: `/User/updateUserRoleInfo`, + method: 'put', + data + }) +} diff --git a/src/views/system/user/components/UserInfo.vue b/src/views/system/user/components/UserInfo.vue index 1f8de2ec..db0d0c04 100644 --- a/src/views/system/user/components/UserInfo.vue +++ b/src/views/system/user/components/UserInfo.vue @@ -85,11 +85,32 @@ style="width: 100%" :disabled="user.CanEditUserType === false || type === 1" @change="handleChange" + v-if="type === 0" > - \ No newline at end of file diff --git a/src/views/trials/trials-panel/setting/personnel-manage/components/staffExternalForm.vue b/src/views/trials/trials-panel/setting/personnel-manage/components/staffExternalForm.vue index b068b91c..cb616a7d 100644 --- a/src/views/trials/trials-panel/setting/personnel-manage/components/staffExternalForm.vue +++ b/src/views/trials/trials-panel/setting/personnel-manage/components/staffExternalForm.vue @@ -1,6 +1,6 @@ - + From 89be8d8a1255ec8e76bda6f451955eee0350cd69 Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Fri, 17 Jan 2025 10:00:43 +0800 Subject: [PATCH 380/400] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=9F=B9=E8=AE=AD?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E5=88=97=E8=A1=A8=E6=B7=BB=E5=8A=A0=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../trials-workbench/components/NeedSignedTrialDoc.vue | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/views/trials/trials-workbench/components/NeedSignedTrialDoc.vue b/src/views/trials/trials-workbench/components/NeedSignedTrialDoc.vue index bd102f68..342e71ad 100644 --- a/src/views/trials/trials-workbench/components/NeedSignedTrialDoc.vue +++ b/src/views/trials/trials-workbench/components/NeedSignedTrialDoc.vue @@ -57,6 +57,12 @@ show-overflow-tooltip sortable="custom" /> + Date: Fri, 17 Jan 2025 10:23:22 +0800 Subject: [PATCH 381/400] 1 --- src/views/trials/trials-panel/site/index.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/trials/trials-panel/site/index.vue b/src/views/trials/trials-panel/site/index.vue index 0a4d43ef..f2791057 100644 --- a/src/views/trials/trials-panel/site/index.vue +++ b/src/views/trials/trials-panel/site/index.vue @@ -125,7 +125,7 @@ From 4cef62ccbabc38254c83fa55183e68772f920788 Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Fri, 17 Jan 2025 10:32:06 +0800 Subject: [PATCH 382/400] =?UTF-8?q?=E4=B8=AD=E5=BF=83=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E5=8F=82=E4=B8=8E=E4=BA=BA=E5=91=98=E5=8E=BB=E9=99=A4=E6=8E=92?= =?UTF-8?q?=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/trials/trials-panel/site/index.vue | 1 - 1 file changed, 1 deletion(-) diff --git a/src/views/trials/trials-panel/site/index.vue b/src/views/trials/trials-panel/site/index.vue index f2791057..f5dda6db 100644 --- a/src/views/trials/trials-panel/site/index.vue +++ b/src/views/trials/trials-panel/site/index.vue @@ -98,7 +98,6 @@ min-width="150" :label="$t('trials:site:table:staff')" show-overflow-tooltip - sortable="custom" > @@ -427,7 +434,23 @@ fullscreen custom-class="base-dialog-wrapper" > -
+
+
+

邮件内容模版(CN)

+
+
+
+

邮件内容模版(EN)

+ +
+
@@ -487,6 +510,7 @@ export default { attachmentVisible: false, previewVisible: false, previewHTML: null, + previewHTMLEN: null, } }, computed: { @@ -574,8 +598,9 @@ export default { closeDialog() { this.editVisible = false }, - preview(html) { + preview(html, htmlEN) { this.previewHTML = html + this.previewHTMLEN = htmlEN this.previewVisible = true }, // 导出 From 3a76a7c24d85001403ea3614697de6c9027da544 Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Fri, 17 Jan 2025 13:43:31 +0800 Subject: [PATCH 384/400] 1 --- src/views/dictionary/template/email/components/EmailList.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/dictionary/template/email/components/EmailList.vue b/src/views/dictionary/template/email/components/EmailList.vue index 88c20c5e..d881977d 100644 --- a/src/views/dictionary/template/email/components/EmailList.vue +++ b/src/views/dictionary/template/email/components/EmailList.vue @@ -448,7 +448,7 @@

邮件内容模版(EN)

- +
From 8ad77f1679bb2d3ce1a6726a9c4b1c690156c019 Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Mon, 20 Jan 2025 11:23:09 +0800 Subject: [PATCH 385/400] =?UTF-8?q?=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/email-recompose/index.vue | 12 +- src/views/error.vue | 7 +- .../enrollment/components/Approval.vue | 104 +++++-- .../enrollment/components/Confirmation.vue | 11 +- .../enrollment/components/Selection.vue | 11 +- .../enrollment/components/Submission.vue | 11 +- .../attachments/enrollment/index.vue | 276 +++++++++++------- 7 files changed, 276 insertions(+), 156 deletions(-) diff --git a/src/views/email-recompose/index.vue b/src/views/email-recompose/index.vue index 29f809a9..49e12126 100644 --- a/src/views/email-recompose/index.vue +++ b/src/views/email-recompose/index.vue @@ -180,9 +180,9 @@ export default { this.$i18n.locale = this.$route.query.lang this.setLanguage(this.$route.query.lang) this.$updateDictionary() - if (!this.password.NewUserName) { - this.$alert(this.$t('recompose:message:warning')) - } + // if (!this.password.NewUserName) { + // this.$alert(this.$t('recompose:message:warning')) + // } }, methods: { ...mapMutations({ setLanguage: 'lang/setLanguage' }), @@ -194,8 +194,10 @@ export default { } else { this.$router.push(`/login`) } - this.$i18n.locale = 'zh' - this.setLanguage('zh') + if (!this.$i18n.locale) { + this.$i18n.locale = 'zh' + this.setLanguage('zh') + } this.$updateDictionary() }, save() { diff --git a/src/views/error.vue b/src/views/error.vue index db3aa915..47389a41 100644 --- a/src/views/error.vue +++ b/src/views/error.vue @@ -2,7 +2,8 @@
- 404 + + 404 404 404 @@ -56,8 +57,10 @@ export default { .pic-404 { position: relative; float: left; - width: 400px; + width: 500px; + height: 300px; overflow: hidden; + margin-right: 10px; &__parent { width: 100%; } diff --git a/src/views/trials/trials-panel/attachments/enrollment/components/Approval.vue b/src/views/trials/trials-panel/attachments/enrollment/components/Approval.vue index 5dd4dce1..88000983 100644 --- a/src/views/trials/trials-panel/attachments/enrollment/components/Approval.vue +++ b/src/views/trials/trials-panel/attachments/enrollment/components/Approval.vue @@ -1,14 +1,14 @@ diff --git a/src/views/trials/trials-panel/attachments/enrollment/components/Confirmation.vue b/src/views/trials/trials-panel/attachments/enrollment/components/Confirmation.vue index e914972b..c5e3b65b 100644 --- a/src/views/trials/trials-panel/attachments/enrollment/components/Confirmation.vue +++ b/src/views/trials/trials-panel/attachments/enrollment/components/Confirmation.vue @@ -50,13 +50,14 @@ - + /> - + /> - + />
- - {{$fd('Indication', trialInfo.IndicationEnum)}}{{trialInfo.Indication ? '-' + trialInfo.Indication : '' }} -
- -
- - {{ + $t('trials:trials-list:form:indication:') + }} + {{ $fd('Indication', trialInfo.IndicationEnum) + }}{{ + trialInfo.Indication ? '-' + trialInfo.Indication : '' + }} - {{ trialInfo.DeclarationTypeEnumList.map(v => $fd('DeclarationType', v)).join(', ') }} - -
-
- - - {{ (trialInfo.CriterionList && trialInfo.CriterionList.length>0)? trialInfo.CriterionList.join(', '): '' }} - - -
-
+
+ + + {{ + trialInfo.DeclarationTypeEnumList.map((v) => + $fd('DeclarationType', v) + ).join(', ') + }} + +
+
+ + + {{ + trialInfo.CriterionList && trialInfo.CriterionList.length > 0 + ? trialInfo.CriterionList.join(', ') + : '' + }} + +
+
- - {{$fd('YesOrNoForInt', trialInfo.Expedited)}} + + {{ $fd('YesOrNoForInt', trialInfo.Expedited) }}
- + {{ trialInfo.TotalReviewers }}
- - {{ trialInfo.AttendedReviewerTypeEnumList.map(v => $fd('AttendedReviewerType', v)).join(', ') }} -
-
+ + {{ + trialInfo.AttendedReviewerTypeEnumList.map((v) => + $fd('AttendedReviewerType', v) + ).join(', ') + }}
+
@@ -60,7 +93,12 @@
- +
@@ -127,18 +169,30 @@ export default { trialInfo: null, TrialId: '', activeStatus: null, - TrialMaxState: 0 + TrialMaxState: 0, } }, mounted() { this.TrialId = this.$route.query.trialId this.initPage() }, + computed: { + isEN() { + return this.$i18n.locale !== 'zh' + }, + }, methods: { initPage() { - getTrialInfoAndMaxTrialState(this.TrialId).then(res => { + getTrialInfoAndMaxTrialState(this.TrialId).then((res) => { this.trialInfo = res.Result.TrialView - var activeStatus = res.Result.TrialMaxState < 1 ? 0 : res.Result.TrialMaxState < 5 ? 1 : res.Result.TrialMaxState < 8 ? 2 : 3 + var activeStatus = + res.Result.TrialMaxState < 1 + ? 0 + : res.Result.TrialMaxState < 5 + ? 1 + : res.Result.TrialMaxState < 8 + ? 2 + : 3 this.activeStatus = activeStatus this.TrialMaxState = activeStatus }) @@ -147,95 +201,93 @@ export default { this.activeStatus = step }, nextStep(stepName) { - this.activeStatus = this.activeStatus === 3 ? 3 : this.activeStatus + 1; - if(stepName==='confirmation'){ - this.activeStatus = 3; + this.activeStatus = this.activeStatus === 3 ? 3 : this.activeStatus + 1 + if (stepName === 'confirmation') { + this.activeStatus = 3 } this.TrialMaxState = this.activeStatus this.$nextTick( - function() { + function () { this.$refs[stepName].getList() }.bind(this) ) - } - - } + }, + }, } From 70735f2c479817666acacca8c00d0677a4a48831 Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Mon, 20 Jan 2025 13:19:51 +0800 Subject: [PATCH 386/400] =?UTF-8?q?=E9=87=8D=E7=BD=AE=E5=AF=86=E7=A0=81?= =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=90=8E=E5=9B=BD=E9=99=85=E5=8C=96=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/recompose/index.vue | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/views/recompose/index.vue b/src/views/recompose/index.vue index 99544b63..7f43ecbb 100644 --- a/src/views/recompose/index.vue +++ b/src/views/recompose/index.vue @@ -144,8 +144,10 @@ export default { } else { this.$router.push(`/login`) } - this.$i18n.locale = 'zh' - this.setLanguage('zh') + if (!this.$i18n.locale) { + this.$i18n.locale = 'zh' + this.setLanguage('zh') + } this.$updateDictionary() }, save() { From 13191c914e4d18aa9b68a144450719aaf11eecfb Mon Sep 17 00:00:00 2001 From: caiyiling <1321909229@qq.com> Date: Mon, 20 Jan 2025 13:49:16 +0800 Subject: [PATCH 387/400] =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E9=98=85=E7=89=87?= =?UTF-8?q?=E6=A0=87=E5=87=86=E9=85=8D=E7=BD=AE=E9=A1=B5=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/dictionary/template/components/AddCriterion.vue | 2 +- src/views/dictionary/template/components/CriterionsTmp.vue | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/views/dictionary/template/components/AddCriterion.vue b/src/views/dictionary/template/components/AddCriterion.vue index 5d7f4d57..249cd998 100644 --- a/src/views/dictionary/template/components/AddCriterion.vue +++ b/src/views/dictionary/template/components/AddCriterion.vue @@ -50,7 +50,7 @@ - +
diff --git a/src/views/dictionary/template/components/CriterionsTmp.vue b/src/views/dictionary/template/components/CriterionsTmp.vue index 629d700b..e54ace34 100644 --- a/src/views/dictionary/template/components/CriterionsTmp.vue +++ b/src/views/dictionary/template/components/CriterionsTmp.vue @@ -141,8 +141,8 @@ sortable="custom" /> Date: Mon, 20 Jan 2025 14:05:36 +0800 Subject: [PATCH 388/400] =?UTF-8?q?=E7=99=BB=E5=BD=95=E9=A1=B5=E5=9B=BD?= =?UTF-8?q?=E9=99=85=E5=8C=96=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/login/index.vue | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/views/login/index.vue b/src/views/login/index.vue index 81003a5c..cbd8136e 100644 --- a/src/views/login/index.vue +++ b/src/views/login/index.vue @@ -343,9 +343,9 @@ export default { this.setLanguage('en') this.$updateDictionary() } else { - // this.$i18n.locale = 'zh' - // this.setLanguage('zh') - // this.$updateDictionary() + this.$i18n.locale = 'zh' + this.setLanguage('zh') + this.$updateDictionary() } } this.$refs.browserTip.open() From 3441793bcb1cf683d8a4d041d6f7b66f86702802 Mon Sep 17 00:00:00 2001 From: caiyiling <1321909229@qq.com> Date: Mon, 20 Jan 2025 14:29:17 +0800 Subject: [PATCH 389/400] =?UTF-8?q?=E8=BF=94=E5=9B=9E=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E6=A0=B7=E5=BC=8F=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/TrialsTab/index.vue | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/components/TrialsTab/index.vue b/src/components/TrialsTab/index.vue index f49aafe6..981871c4 100644 --- a/src/components/TrialsTab/index.vue +++ b/src/components/TrialsTab/index.vue @@ -22,11 +22,14 @@ -
+ - {{ $t('trials:trials:title:back') }} -
+
+ From 73e0a13e91909313b73083817e6d7f1af2ff9cd8 Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Mon, 20 Jan 2025 15:47:31 +0800 Subject: [PATCH 390/400] =?UTF-8?q?=E7=AE=80=E5=8E=86=E8=8B=B1=E6=96=87?= =?UTF-8?q?=E5=A7=93=E5=90=8D=E5=B1=95=E7=A4=BA=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../curriculumVitae/components/info/info.vue | 12 +++--------- src/views/reviewers/curriculumVitae/preview.vue | 5 +++-- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/src/views/reviewers/curriculumVitae/components/info/info.vue b/src/views/reviewers/curriculumVitae/components/info/info.vue index 94f94864..68a6ef80 100644 --- a/src/views/reviewers/curriculumVitae/components/info/info.vue +++ b/src/views/reviewers/curriculumVitae/components/info/info.vue @@ -6,7 +6,7 @@