系统标准添加上传下载
continuous-integration/drone/push Build is passing Details

uat_us
DESKTOP-6C3NK6N\WXS 2024-09-06 15:54:17 +08:00
parent f58fa6011b
commit 6a3068f942
2 changed files with 86 additions and 6 deletions

View File

@ -352,7 +352,44 @@
<div class="text">{{ $t('trials:reading:button:reset') }}</div> <div class="text">{{ $t('trials:reading:button:reset') }}</div>
</div> </div>
</el-tooltip> </el-tooltip>
<el-tooltip
v-if="trialCriterion.ImageUploadEnum > 0"
v-hasPermi="['role:ir']"
class="item"
effect="dark"
:content="$t('trials:reading:button:upload')"
placement="bottom"
>
<div class="tool-wrapper">
<div class="icon" @click.prevent="openUploadImage('upload')">
<i class="el-icon-upload2 svg-icon" />
</div>
<div class="text">{{ $t('trials:reading:button:upload') }}</div>
</div>
</el-tooltip>
<el-tooltip
v-if="trialCriterion.ImageDownloadEnum > 0"
v-hasPermi="[
'role:ir',
'role:mim',
'role:mc',
'role:pm',
'role:apm',
'role:ea',
'role:qa',
]"
class="item"
effect="dark"
:content="$t('trials:reading:button:download')"
placement="bottom"
>
<div class="tool-wrapper">
<div class="icon" @click.prevent="openUploadImage('download')">
<i class="el-icon-download svg-icon" />
</div>
<div class="text">{{ $t('trials:reading:button:download') }}</div>
</div>
</el-tooltip>
<div style="margin-left:auto;"> <div style="margin-left:auto;">
<div style="padding:5px"> <div style="padding:5px">
<!-- 手册 --> <!-- 手册 -->
@ -676,6 +713,20 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
</el-dialog> </el-dialog>
<upload-dicom-and-nonedicom
v-if="uploadImageVisible"
:SubjectId="uploadSubjectId"
:SubjectCode="uploadSubjectCode"
:Criterion="uploadTrialCriterion"
:visible.sync="uploadImageVisible"
/>
<download-dicom-and-nonedicom
v-if="downloadImageVisible"
:SubjectId="uploadSubjectId"
:SubjectCode="uploadSubjectCode"
:Criterion="uploadTrialCriterion"
:visible.sync="downloadImageVisible"
/>
</div> </div>
</template> </template>
<script> <script>
@ -707,6 +758,9 @@ import WL from './WL'
import Others from './Others' import Others from './Others'
import DicomEvent from './DicomEvent' import DicomEvent from './DicomEvent'
import html2canvas from 'html2canvas' import html2canvas from 'html2canvas'
import uploadDicomAndNonedicom from '@/components/uploadDicomAndNonedicom'
import downloadDicomAndNonedicom from '@/components/downloadDicomAndNonedicom'
import { getCriterionReadingInfo } from '@/api/trials'
export default { export default {
name: 'DicomViewer', name: 'DicomViewer',
components: { components: {
@ -723,7 +777,9 @@ export default {
IRecistQuestionList, IRecistQuestionList,
LuganoQuestionList, LuganoQuestionList,
IVUSList, IVUSList,
OCTList OCTList,
'download-dicom-and-nonedicom': downloadDicomAndNonedicom,
'upload-dicom-and-nonedicom': uploadDicomAndNonedicom,
}, },
props: { props: {
isShow: { isShow: {
@ -865,7 +921,15 @@ export default {
activeCanvasWC: null, activeCanvasWC: null,
activeTaskInfo: {}, activeTaskInfo: {},
clipPlaying: false, clipPlaying: false,
fps: 15 fps: 15,
trialCriterion: {},
//
downloadImageVisible: false,
uploadImageVisible: false,
uploadSubjectId: null,
uploadSubjectCode: null,
uploadTrialCriterion: {},
uploadStatus: 'upload',
} }
}, },
@ -938,6 +1002,7 @@ export default {
mounted() { mounted() {
this.getHotKeys() this.getHotKeys()
this.getWwcTpl() this.getWwcTpl()
this.getTrialCriterion()
// cornerstone.imageCache.setMaximumSizeBytes(0) // cornerstone.imageCache.setMaximumSizeBytes(0)
// const maximumSizeInBytes = 1024 * 1024 * 1024 // 1 GB // const maximumSizeInBytes = 1024 * 1024 * 1024 // 1 GB
@ -1092,6 +1157,23 @@ export default {
}) })
}, },
methods: { methods: {
getTrialCriterion() {
getCriterionReadingInfo({
TrialId: this.trialId || this.$route.query.trialId,
TrialReadingCriterionId: this.trialReadingCriterionId || this.$route.query.TrialReadingCriterionId,
})
.then((res) => {
this.trialCriterion = res.Result
})
.catch(() => {})
},
openUploadImage(status) {
this.uploadSubjectCode = this.$route.query.subjectCode
this.uploadSubjectId = this.$route.query.subjectId
this.uploadTrialCriterion = this.trialCriterion
this.uploadStatus = status
this[`${status}ImageVisible`] = true
},
async getWwcTpl() { async getWwcTpl() {
// const loading = this.$loading({ fullscreen: true }) // const loading = this.$loading({ fullscreen: true })
try { try {

View File

@ -473,7 +473,7 @@
</div> </div>
</el-tooltip> </el-tooltip>
<el-tooltip <el-tooltip
v-if="trialCriterion.ImageUploadEnum > 0 && !trialCriterion.IsSign" v-if="trialCriterion.ImageUploadEnum > 0"
v-hasPermi="['role:ir']" v-hasPermi="['role:ir']"
class="item" class="item"
effect="dark" effect="dark"
@ -694,7 +694,6 @@ import DicomEvent from './../components/DicomEvent'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import store from '@/store' import store from '@/store'
import { getDoctorShortcutKey, getUserWLTemplateList } from '@/api/user' import { getDoctorShortcutKey, getUserWLTemplateList } from '@/api/user'
import uploadImage from '@/components/uploadImage'
import uploadDicomAndNonedicom from '@/components/uploadDicomAndNonedicom' import uploadDicomAndNonedicom from '@/components/uploadDicomAndNonedicom'
import downloadDicomAndNonedicom from '@/components/downloadDicomAndNonedicom' import downloadDicomAndNonedicom from '@/components/downloadDicomAndNonedicom'
import { getCriterionReadingInfo } from '@/api/trials' import { getCriterionReadingInfo } from '@/api/trials'
@ -708,7 +707,6 @@ export default {
Others, Others,
Manuals, Manuals,
MeasurementList, MeasurementList,
'upload-image': uploadImage,
'download-dicom-and-nonedicom': downloadDicomAndNonedicom, 'download-dicom-and-nonedicom': downloadDicomAndNonedicom,
'upload-dicom-and-nonedicom': uploadDicomAndNonedicom, 'upload-dicom-and-nonedicom': uploadDicomAndNonedicom,
}, },