非dicom阅片单元配置
continuous-integration/drone/push Build is running Details

main
wangxiaoshuang 2025-10-15 17:10:18 +08:00
parent 7f20bfecdc
commit cbcc11fe97
2 changed files with 66 additions and 126 deletions

View File

@ -657,7 +657,7 @@ export default {
this.$emit('setGlobalReading', res.Result.IsGlobalReading)
this.$emit('setOncologyReading', res.Result.IsOncologyReading)
this.$emit('setDigitPlaces', res.Result.DigitPlaces)
this.$emit('setReadingTools', res.Result.ReadingToolList)
this.$emit('setReadingTools', { readingTools: res.Result.ReadingToolList, isNoneDicom: this.form.ReadingTool === 1 })
if (res.Result.ReadingType === 1) {
this.$emit('setArbitrationReading', false)

View File

@ -3,99 +3,51 @@
<div v-if="isShow" class="content">
<el-tabs v-model="TrialReadingCriterionId" type="border-card">
<template v-for="item of trialCriterionList">
<el-tab-pane
:key="item.TrialReadingCriterionId"
:label="item.TrialReadingCriterionName"
:name="item.TrialReadingCriterionId"
>
<div style="text-align: right; padding: 5px 0px" v-if="!hasPermi(['role:admin','role:qa','role:ea'])">
<el-tab-pane :key="item.TrialReadingCriterionId" :label="item.TrialReadingCriterionName"
:name="item.TrialReadingCriterionId">
<div style="text-align: right; padding: 5px 0px" v-if="!hasPermi(['role:admin', 'role:qa', 'role:ea'])">
<!-- 同步当前标准 -->
<el-button
type="primary"
icon="el-icon-refresh-left"
:loading="loading"
size="mini"
@click="syncSign"
>
<el-button type="primary" icon="el-icon-refresh-left" :loading="loading" size="mini" @click="syncSign">
{{ $t("trials:readingUnit:button:sync") }}
</el-button>
</div>
<el-collapse
v-model="activeCollapse"
class="setting-config"
v-if="
<el-collapse v-model="activeCollapse" class="setting-config" v-if="
item.isPaneShow &&
item.TrialReadingCriterionId === TrialReadingCriterionId
"
>
">
<!-- 阅片规则 -->
<el-collapse-item
:title="$t('trials:readingUnit:readingRules')"
name="1"
>
<ReadingRules
:ref="`readingRules${item.TrialReadingCriterionId}`"
:trial-reading-criterion-id="TrialReadingCriterionId"
:CriterionType="item.CriterionType"
@setConfirm="setConfirm"
@reloadArbitrationRules="reloadArbitrationRules"
@setArbitrationReading="setArbitrationReading"
@setAdditionalAssessment="setAdditionalAssessment"
@setIsClinicalReading="setIsClinicalReading"
@setGlobalReading="setGlobalReading"
@setOncologyReading="setOncologyReading"
@setDigitPlaces="setDigitPlaces"
@setReadingTools="setReadingTools"
/>
<el-collapse-item :title="$t('trials:readingUnit:readingRules')" name="1">
<ReadingRules :ref="`readingRules${item.TrialReadingCriterionId}`"
:trial-reading-criterion-id="TrialReadingCriterionId" :CriterionType="item.CriterionType"
@setConfirm="setConfirm" @reloadArbitrationRules="reloadArbitrationRules"
@setArbitrationReading="setArbitrationReading" @setAdditionalAssessment="setAdditionalAssessment"
@setIsClinicalReading="setIsClinicalReading" @setGlobalReading="setGlobalReading"
@setOncologyReading="setOncologyReading" @setDigitPlaces="setDigitPlaces"
@setReadingTools="setReadingTools" />
</el-collapse-item>
<!-- 阅片标准 -->
<el-collapse-item
:title="$t('trials:readingUnit:readingCriterion')"
name="2"
>
<ReadingCriterions
:ref="`readingCriterions${item.TrialReadingCriterionId}`"
:trial-reading-criterion-id="TrialReadingCriterionId"
:digit-places="digitPlaces"
:readingTools="readingTools"
:is-additional-assessment="isAdditionalAssessment"
@reloadArbitrationRules="reloadArbitrationRules"
/>
<el-collapse-item :title="$t('trials:readingUnit:readingCriterion')" name="2">
<ReadingCriterions :ref="`readingCriterions${item.TrialReadingCriterionId}`"
:trial-reading-criterion-id="TrialReadingCriterionId" :digit-places="digitPlaces"
:readingTools="readingTools" :is-additional-assessment="isAdditionalAssessment"
@reloadArbitrationRules="reloadArbitrationRules" />
</el-collapse-item>
<!-- 全局阅片 -->
<el-collapse-item
v-if="isGlobalReading && CriterionType !== 10"
:title="$t('trials:readingUnit:GlobalReading')"
name="5"
>
<GlobalReading
:ref="`globalReading${item.TrialReadingCriterionId}`"
:trial-reading-criterion-id="TrialReadingCriterionId"
/>
<el-collapse-item v-if="isGlobalReading && CriterionType !== 10"
:title="$t('trials:readingUnit:GlobalReading')" name="5">
<GlobalReading :ref="`globalReading${item.TrialReadingCriterionId}`"
:trial-reading-criterion-id="TrialReadingCriterionId" />
</el-collapse-item>
<!-- 仲裁规则 -->
<el-collapse-item
v-if="isArbitrationReading"
:title="$t('trials:readingUnit:adRules')"
name="3"
>
<ArbitrationRules
:ref="`arbitrationRules${item.TrialReadingCriterionId}`"
:trial-reading-criterion-id="TrialReadingCriterionId"
/>
<el-collapse-item v-if="isArbitrationReading" :title="$t('trials:readingUnit:adRules')" name="3">
<ArbitrationRules :ref="`arbitrationRules${item.TrialReadingCriterionId}`"
:trial-reading-criterion-id="TrialReadingCriterionId" />
</el-collapse-item>
<!-- 肿瘤学阅片配置 -->
<!-- v-if="isClinicalReading" -->
<el-collapse-item
v-if="isOncologyReading"
:title="$t('trials:readingUnit:oncologyReading')"
name="4"
>
<OncologyForm
:ref="`oncologyForm${item.TrialReadingCriterionId}`"
:trial-reading-criterion-id="TrialReadingCriterionId"
/>
<el-collapse-item v-if="isOncologyReading" :title="$t('trials:readingUnit:oncologyReading')" name="4">
<OncologyForm :ref="`oncologyForm${item.TrialReadingCriterionId}`"
:trial-reading-criterion-id="TrialReadingCriterionId" />
</el-collapse-item>
</el-collapse>
</el-tab-pane>
@ -103,13 +55,10 @@
</el-tabs>
</div>
<div
v-if="
<div v-if="
!isConfirm &&
hasPermi(['trials:trials-panel:setting:reading-unit:edit'])
"
class="bottom"
>
" class="bottom">
<!-- 确认 -->
<el-button type="danger" @click="handleConfirm">
{{ $t("trials:readingUnit:button:confirm") }}
@ -117,44 +66,26 @@
</div>
<!--签名框 -->
<el-dialog
v-if="signVisible"
:visible.sync="signVisible"
:close-on-click-modal="false"
width="600px"
custom-class="base-dialog-wrapper"
>
<el-dialog v-if="signVisible" :visible.sync="signVisible" :close-on-click-modal="false" width="600px"
custom-class="base-dialog-wrapper">
<div slot="title">
<span style="font-size: 18px">{{ $t("common:dialogTitle:sign") }}</span>
<span style="font-size: 12px; margin-left: 5px">{{
`(${$t("common:label:sign")}${currentUser})`
}}</span>
</div>
<SignForm
ref="signForm"
:sign-code-enum="signCode"
@closeDialog="closeSignDialog"
/>
<SignForm ref="signForm" :sign-code-enum="signCode" @closeDialog="closeSignDialog" />
</el-dialog>
<!--签名框 -->
<el-dialog
v-if="signVisible2"
:visible.sync="signVisible2"
:close-on-click-modal="false"
width="600px"
custom-class="base-dialog-wrapper"
>
<el-dialog v-if="signVisible2" :visible.sync="signVisible2" :close-on-click-modal="false" width="600px"
custom-class="base-dialog-wrapper">
<div slot="title">
<span style="font-size: 18px">{{ $t("common:dialogTitle:sign") }}</span>
<span style="font-size: 12px; margin-left: 5px">{{
`(${$t("common:label:sign")}${currentUser})`
}}</span>
</div>
<SignForm
ref="signForm2"
:sign-code-enum="signCode2"
@closeDialog="closeSignDialog2"
/>
<SignForm ref="signForm2" :sign-code-enum="signCode2" @closeDialog="closeSignDialog2" />
</el-dialog>
</div>
</template>
@ -176,7 +107,7 @@ import GlobalReading from "./components/GlobalReading";
import OncologyForm from "./components/OncologyForm";
import SignForm from "@/views/trials/components/newSignForm";
import const_ from "@/const/sign-code";
import { getCustomizeStandardsTools } from '@/views/trials/trials-panel/reading/dicoms3D/components/toolConfig'
import { getCustomizeStandardsTools, getCustomizeStandardsNoneDicomTools } from '@/views/trials/trials-panel/reading/dicoms3D/components/toolConfig'
export default {
name: "ReadingUnit",
components: {
@ -290,7 +221,7 @@ export default {
this.trialCriterionList[0].TrialReadingCriterionId;
this.isShow = true;
})
.catch(() => {});
.catch(() => { });
},
setConfirm(isConfirm) {
this.isConfirm = isConfirm;
@ -298,8 +229,14 @@ export default {
setDigitPlaces(digitPlaces) {
this.digitPlaces = digitPlaces;
},
setReadingTools(readingTools) {
setReadingTools(data) {
let { readingTools, isNoneDicom } = data
if (isNoneDicom) {
this.readingTools = getCustomizeStandardsNoneDicomTools(readingTools)
} else {
this.readingTools = getCustomizeStandardsTools(readingTools)
}
},
setIsClinicalReading(isClinicalReading) {
this.isClinicalReading = isClinicalReading;
@ -324,10 +261,8 @@ export default {
})
.then((res) => {
this.$router.push({
path: `/trials/trials-panel/setting/reading-unit?trialId=${
this.$route.query.trialId
}&trialCode=${this.$route.query.trialCode}&researchProgramNo=${
this.$route.query.researchProgramNo
path: `/trials/trials-panel/setting/reading-unit?trialId=${this.$route.query.trialId
}&trialCode=${this.$route.query.trialCode}&researchProgramNo=${this.$route.query.researchProgramNo
}&t=${new Date().getTime()}`,
});
this.loading = false;
@ -352,7 +287,7 @@ export default {
.then(() => {
this.updateCriterions();
})
.catch((action) => {});
.catch((action) => { });
} else {
try {
var isCheckList = [];
@ -468,27 +403,27 @@ export default {
this.$refs[
"readingRules" + this.TrialReadingCriterionId
][0].initPage();
} catch (e) {}
} catch (e) { }
try {
this.$refs[
"readingCriterions" + this.TrialReadingCriterionId
][0].initPage();
} catch (e) {}
} catch (e) { }
try {
this.$refs[
"arbitrationRules" + this.TrialReadingCriterionId
][0].getList();
} catch (e) {}
} catch (e) { }
try {
this.$refs[
"globalReading" + this.TrialReadingCriterionId
][0].initForm();
} catch (e) {}
} catch (e) { }
try {
this.$refs[
"oncologyForm" + this.TrialReadingCriterionId
][0].initForm();
} catch (e) {}
} catch (e) { }
this.$refs["signForm"].btnLoading = false;
this.signVisible = false;
} catch (e) {
@ -523,20 +458,25 @@ export default {
background-color: #fff;
display: flex;
flex-direction: column;
.content {
flex: 1;
overflow-y: auto;
}
::v-deep .el-collapse-item__header {
background: #e5ecef;
padding-left: 10px;
}
::v-deep .el-tabs--border-card>.el-tabs__content {
padding: 0px 15px;
}
::v-deep .el-collapse-item__content {
padding: 10px;
}
.bottom {
height: 50px;
display: flex;