检查部位未显示问题修改
continuous-integration/drone/push Build encountered an error Details

uat v1.12.1
wangxiaoshuang 2025-09-24 09:59:20 +08:00
parent fb55a1d536
commit da4cc0a8ef
5 changed files with 83 additions and 244 deletions

View File

@ -154,8 +154,8 @@ export default {
}
},
async mounted() {
this.getList()
this.bodyPart.Bodypart = await this.$getBodyPart(this.$route.query.trialId)
this.getList()
this.title = `Download Images${this.SubjectCode}${this.Criterion.TrialReadingCriterionName}`
},
beforeDestroy() {

View File

@ -411,12 +411,10 @@ export default {
TrialModality: [],
}
},
created() {
this.getList()
},
async mounted() {
this.trialId = this.$route.query.trialId
this.bodyPart.Bodypart = await this.$getBodyPart(this.$route.query.trialId)
this.getList()
this.uploadQueues = []
this.OSSclient.close()
},

View File

@ -2,254 +2,125 @@
<div class="study-info">
<div class="functions" style="text-align: right">
<!-- 删除 -->
<el-button
v-if="
data.SubmitState * 1 < 2 ||
(data.SubmitState === 2 && data.IsQCConfirmedReupload)
"
v-hasPermi="['trials:trials-panel:visit:crc-upload:delete']"
:disabled="deleteArr.length === 0"
type="primary"
size="small"
icon="el-icon-delete"
@click="handleBatchDelete"
>
<el-button v-if="
data.SubmitState * 1 < 2 ||
(data.SubmitState === 2 && data.IsQCConfirmedReupload)
" v-hasPermi="['trials:trials-panel:visit:crc-upload:delete']" :disabled="deleteArr.length === 0"
type="primary" size="small" icon="el-icon-delete" @click="handleBatchDelete">
{{ $t('trials:uploadedDicoms:action:delete') }}
</el-button>
<!-- 预览 -->
<el-button
type="primary"
size="small"
:disabled="studyList.length === 0"
icon="el-icon-view"
@click="handlePreviewAllFiles"
>
<el-button type="primary" size="small" :disabled="studyList.length === 0" icon="el-icon-view"
@click="handlePreviewAllFiles">
{{ $t('trials:uploadedDicoms:action:preview') }}
</el-button>
</div>
<el-table
v-loading="studyLoading"
:data="studyList"
style="width: 100%"
height="300"
:row-class-name="tableRowClassName"
@selection-change="handleSelectionChange"
:default-sort="{ prop: 'UploadedTime', order: 'ascending' }"
>
<el-table-column
v-if="!(data.SubmitState * 1 === 2) || data.IsQCConfirmedReupload"
type="selection"
width="55"
/>
<el-table v-loading="studyLoading" :data="studyList" style="width: 100%" height="300"
:row-class-name="tableRowClassName" @selection-change="handleSelectionChange"
:default-sort="{ prop: 'UploadedTime', order: 'ascending' }">
<el-table-column v-if="!(data.SubmitState * 1 === 2) || data.IsQCConfirmedReupload" type="selection" width="55" />
<!-- 检查编号 -->
<el-table-column
prop="StudyCode"
:label="$t('trials:uploadedDicoms:table:studyId')"
min-width="80"
show-overflow-tooltip
sortable
/>
<el-table-column prop="StudyCode" :label="$t('trials:uploadedDicoms:table:studyId')" min-width="80"
show-overflow-tooltip sortable />
<!-- 检查名称 -->
<el-table-column
v-if="relationInfo.IsShowStudyName"
prop="StudyName"
:label="$t('trials:audit:table:StudyName')"
sortable
/>
<el-table-column v-if="relationInfo.IsShowStudyName" prop="StudyName" :label="$t('trials:audit:table:StudyName')"
sortable />
<!-- 检查类型 -->
<el-table-column
prop="ModalityForEdit"
:label="$t('trials:audit:table:modality')"
sortable
/>
<el-table-column prop="ModalityForEdit" :label="$t('trials:audit:table:modality')" sortable />
<!-- 检查类型 -->
<el-table-column
prop="Modalities"
:label="$t('trials:audit:table:modality1')"
sortable
/>
<el-table-column prop="Modalities" :label="$t('trials:audit:table:modality1')" sortable />
<!-- 检查部位 -->
<el-table-column
prop="BodyPartForEdit"
:label="$t('trials:uploadedDicoms:table:bodyPart')"
sortable
min-width="100"
show-overflow-tooltip
>
<el-table-column prop="BodyPartForEdit" :label="$t('trials:uploadedDicoms:table:bodyPart')" sortable
min-width="100" show-overflow-tooltip>
<template slot-scope="scope">
{{ getBodyPart(scope.row.BodyPartForEdit, scope.row.BodyPartForEditOther) }}
</template>
</el-table-column>
<!-- 序列数量 -->
<el-table-column
prop="SeriesCount"
:label="$t('trials:uploadedDicoms:table:seriesCount')"
sortable
min-width="100"
show-overflow-tooltip
/>
<el-table-column prop="SeriesCount" :label="$t('trials:uploadedDicoms:table:seriesCount')" sortable
min-width="100" show-overflow-tooltip />
<!-- 图像数量 -->
<el-table-column
prop="InstanceCount"
:label="$t('trials:uploadedDicoms:table:instanceCount')"
sortable
min-width="100"
show-overflow-tooltip
/>
<el-table-column prop="InstanceCount" :label="$t('trials:uploadedDicoms:table:instanceCount')" sortable
min-width="100" show-overflow-tooltip />
<!-- 检查日期 -->
<el-table-column
prop="StudyTime"
:label="$t('trials:uploadedDicoms:table:studyDate')"
sortable
min-width="120"
show-overflow-tooltip
>
<el-table-column prop="StudyTime" :label="$t('trials:uploadedDicoms:table:studyDate')" sortable min-width="120"
show-overflow-tooltip>
<template slot-scope="scope">
{{ moment(scope.row.StudyTime).format('YYYY-MM-DD') }}
</template>
</el-table-column>
<!-- 更新时间 -->
<el-table-column
prop="UpdateTime"
:label="$t('trials:uploadedDicoms:table:UpdateTime')"
min-width="120"
show-overflow-tooltip
sortable
/>
<el-table-column prop="UpdateTime" :label="$t('trials:uploadedDicoms:table:UpdateTime')" min-width="120"
show-overflow-tooltip sortable />
<!-- 上传时间 -->
<el-table-column
prop="UploadedTime"
:label="$t('trials:uploadedDicoms:table:uploadedTime')"
sortable
min-width="120"
show-overflow-tooltip
/>
<el-table-column
:label="$t('common:action:action')"
min-width="100"
>
<el-table-column prop="UploadedTime" :label="$t('trials:uploadedDicoms:table:uploadedTime')" sortable
min-width="120" show-overflow-tooltip />
<el-table-column :label="$t('common:action:action')" min-width="100">
<template slot-scope="scope">
<!-- 预览 -->
<el-button
icon="el-icon-view"
:disabled="scope.row.SeriesCount === 0 || scope.row.IsDeleted"
:title="$t('trials:uploadedDicoms:action:preview')"
circle
@click="handleViewStudy(scope.row)"
/>
<el-button icon="el-icon-view" :disabled="scope.row.SeriesCount === 0 || scope.row.IsDeleted"
:title="$t('trials:uploadedDicoms:action:preview')" circle @click="handleViewStudy(scope.row)" />
<!-- 预览PET-CT数据 -->
<el-button
icon="el-icon-folder"
:title="$t('trials:audit:tab:clinicalData')"
v-if="
['PT、CT', 'CT、PT', 'PET-CT'].includes(scope.row.Modalities) &&
relationInfo.IsHaveStudyClinicalData
"
circle
:disabled="scope.row.IsDeleted"
@click="handlePreviewClinicalData(scope.row)"
/>
<el-button icon="el-icon-folder" :title="$t('trials:audit:tab:clinicalData')" v-if="
['PT、CT', 'CT、PT', 'PET-CT'].includes(scope.row.Modalities) &&
relationInfo.IsHaveStudyClinicalData
" circle :disabled="scope.row.IsDeleted" @click="handlePreviewClinicalData(scope.row)" />
<!-- 编辑 -->
<el-button
icon="el-icon-edit-outline"
v-if="
data.SubmitState * 1 < 2 ||
(data.SubmitState === 2 && data.IsQCConfirmedReupload)
"
v-hasPermi="['trials:trials-panel:visit:crc-upload:edit']"
title="编辑"
circle
:disabled="scope.row.IsDeleted"
@click="handleEditStudy(scope.row)"
/>
<el-button icon="el-icon-edit-outline" v-if="
data.SubmitState * 1 < 2 ||
(data.SubmitState === 2 && data.IsQCConfirmedReupload)
" v-hasPermi="['trials:trials-panel:visit:crc-upload:edit']" title="编辑" circle
:disabled="scope.row.IsDeleted" @click="handleEditStudy(scope.row)" />
<!-- 删除 -->
<el-button
v-if="
data.SubmitState * 1 < 2 ||
(data.SubmitState === 2 && data.IsQCConfirmedReupload)
"
v-hasPermi="['trials:trials-panel:visit:crc-upload:delete']"
icon="el-icon-delete"
:title="$t('trials:uploadedDicoms:action:delete')"
circle
@click="handleDeleteStudy(scope.row)"
/>
<el-button v-if="
data.SubmitState * 1 < 2 ||
(data.SubmitState === 2 && data.IsQCConfirmedReupload)
" v-hasPermi="['trials:trials-panel:visit:crc-upload:delete']" icon="el-icon-delete"
:title="$t('trials:uploadedDicoms:action:delete')" circle @click="handleDeleteStudy(scope.row)" />
</template>
</el-table-column>
</el-table>
<el-dialog
v-if="editStudyInfoVisible"
:title="$t('trials:audit:action:edit')"
:visible.sync="editStudyInfoVisible"
:close-on-click-modal="false"
append-to-body
custom-class="base-dialog-wrapper"
width="600px"
>
<div
style="
<el-dialog v-if="editStudyInfoVisible" :title="$t('trials:audit:action:edit')" :visible.sync="editStudyInfoVisible"
:close-on-click-modal="false" append-to-body custom-class="base-dialog-wrapper" width="600px">
<div style="
padding: 10px;
border: 1px solid #e0e0e0;
max-height: 650px;
overflow-y: auto;
"
>
">
<el-form ref="studyForm" :model="studyForm" label-width="100px">
<!-- 检查编号 -->
<el-form-item :label="$t('trials:audit:table:studyId')">
<el-input v-model="studyForm.StudyCode" disabled />
</el-form-item>
<!-- 检查类型 -->
<el-form-item
v-if="studyForm.IsDicomData"
:label="$t('trials:audit:table:modality')"
>
<el-form-item v-if="studyForm.IsDicomData" :label="$t('trials:audit:table:modality')">
<el-input v-model="studyForm.Modalities" disabled />
</el-form-item>
<!-- 检查类型 -->
<el-form-item
v-else
:label="$t('trials:audit:table:modality')"
prop="Modalities"
:rules="[
{
required: true,
message: $t('common:ruleMessage:specify'),
trigger: 'blur',
},
]"
>
<el-form-item v-else :label="$t('trials:audit:table:modality')" prop="Modalities" :rules="[
{
required: true,
message: $t('common:ruleMessage:specify'),
trigger: 'blur',
},
]">
<el-radio-group v-model="studyForm.Modalities">
<el-radio
v-for="m in trialModalitys"
v-show="m !== ''"
:key="m"
:label="m"
style="margin-bottom: 15px"
/>
<el-radio v-for="m in trialModalitys" v-show="m !== ''" :key="m" :label="m" style="margin-bottom: 15px" />
</el-radio-group>
</el-form-item>
<!-- 检查部位 -->
<el-form-item
:label="$t('trials:audit:table:bodyPart')"
prop="BodyPartForEdit"
:rules="[
{
required: true,
message: $t('common:ruleMessage:specify'),
trigger: 'blur',
},
]"
>
<el-form-item :label="$t('trials:audit:table:bodyPart')" prop="BodyPartForEdit" :rules="[
{
required: true,
message: $t('common:ruleMessage:specify'),
trigger: 'blur',
},
]">
<el-checkbox-group v-model="studyForm.BodyPartForEdit">
<el-checkbox
v-for="bodyPart in trialBodyPartTypes"
:key="bodyPart"
:label="bodyPart"
>{{
$fd('Bodypart', bodyPart, 'Code', BodyPart, 'Name')
}}</el-checkbox
>
<el-checkbox v-for="bodyPart in trialBodyPartTypes" :key="bodyPart" :label="bodyPart">{{
$fd('Bodypart', bodyPart, 'Code', BodyPart, 'Name')
}}</el-checkbox>
</el-checkbox-group>
</el-form-item>
<!-- 序列数量 -->
@ -257,57 +128,28 @@
<el-input v-model="studyForm.SeriesCount" disabled />
</el-form-item>
<!-- 图像数量 -->
<el-form-item
v-if="studyForm.InstanceCount"
:label="$t('trials:audit:table:instanceCount')"
>
<el-form-item v-if="studyForm.InstanceCount" :label="$t('trials:audit:table:instanceCount')">
<el-input v-model="studyForm.InstanceCount" disabled />
</el-form-item>
<!-- 检查日期 -->
<el-form-item :label="$t('trials:audit:table:studyDate')">
<el-date-picker
v-model="studyForm.StudyTime"
disabled
type="date"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
style="width: 100%"
/>
<el-date-picker v-model="studyForm.StudyTime" disabled type="date" value-format="yyyy-MM-dd"
format="yyyy-MM-dd" style="width: 100%" />
</el-form-item>
</el-form>
</div>
<div slot="footer" class="dialog-footer">
<el-button
:disabled="btnLoading"
size="small"
type="primary"
@click="editStudyInfoVisible = false"
>
<el-button :disabled="btnLoading" size="small" type="primary" @click="editStudyInfoVisible = false">
{{ $t('common:button:cancel') }}
</el-button>
<el-button
:loading="btnLoading"
size="small"
type="primary"
@click="handleUpdateStudyInfo"
>
<el-button :loading="btnLoading" size="small" type="primary" @click="handleUpdateStudyInfo">
{{ $t('common:button:save') }}
</el-button>
</div>
</el-dialog>
<!--pet-ct临床数据上传-->
<el-dialog
v-if="petVisible"
:show-close="true"
:visible.sync="petVisible"
append-to-body
>
<uploadPetClinicalData
:subject-visit-id="data.Id"
:data="data"
:studyData="rowData"
:allow-add-or-edit="false"
/>
<el-dialog v-if="petVisible" :show-close="true" :visible.sync="petVisible" append-to-body>
<uploadPetClinicalData :subject-visit-id="data.Id" :data="data" :studyData="rowData" :allow-add-or-edit="false" />
</el-dialog>
</div>
</template>
@ -360,8 +202,8 @@ export default {
}
},
async mounted() {
this.getStudyInfo()
this.BodyPart.Bodypart = await this.$getBodyPart(this.$route.query.trialId)
this.getStudyInfo()
},
methods: {
//
@ -449,7 +291,7 @@ export default {
this.studyLoading = true
})
})
.catch(() => {})
.catch(() => { })
},
//
handlePreviewAllFiles() {
@ -491,7 +333,7 @@ export default {
this.studyLoading = true
})
})
.catch(() => {})
.catch(() => { })
},
getBodyPart(bodyPart, other) {
if (!bodyPart && !other) return ''

View File

@ -413,7 +413,6 @@ export default {
}
},
async mounted() {
console.log(this.data)
this.BodyPart.Bodypart = await this.$getBodyPart(this.$route.query.trialId)
this.getNoneDicomList()
this.trialBodyPartTypes = this.bodyParts ? this.bodyParts.split('|') : []

View File

@ -114,9 +114,9 @@ export default {
BodyPart: {},
}
},
async mounted() {
this.getStudyInfo()
async created() {
this.BodyPart.Bodypart = await this.$getBodyPart(this.$route.query.trialId)
this.getStudyInfo()
},
methods: {
//