非dicom质控检查列表添加排序
continuous-integration/drone/push Build is passing Details

rj
caiyiling 2026-07-01 11:03:20 +08:00
parent aba5dec904
commit 0bbf537ddf
2 changed files with 37 additions and 8 deletions

View File

@ -574,7 +574,6 @@ export default {
metaData.addProvider((type, imageId) => hardcodedMetaDataProvider(type, imageId, imageIds), 10000)
const renderingEngine = getRenderingEngine(renderingEngineId)
const viewport = renderingEngine.getViewport(`canvas-${canvasIndex}`)
console.log(viewport, 'viewport')
await viewport.setStack(imageIds)
this.setToolsPassive()
viewport.setImageIdIndex(sliceIndex)

View File

@ -1,7 +1,13 @@
<template>
<div v-loading="loading" class="none-dicom-study-wrapper">
<div class="study-info">
{{ $t('trials:none-dicom-show:fileList') }}
<div style="cursor: pointer;" @click.stop="sortFile">
<i :class="['el-icon-caret-top', asc === false ? '' : 'icon_check']"
style="display: block;margin-bottom: -5px;"></i>
<i :class="['el-icon-caret-bottom', asc === true ? '' : 'icon_check']"
style="display: block; margin-top: -5px;"></i>
</div>
<div>{{ $t('trials:none-dicom-show:fileList') }} </div>
</div>
<div class="ps" ref="studyBox_ps">
<el-collapse v-model="activeNames">
@ -64,6 +70,7 @@
</template>
<script>
import { getNoneDicomStudyList, setNodicomStudyState } from '@/api/trials'
import FileNameSorter from "@/utils/customSort"
import pdf from '@/assets/pdf.png'
import mp4 from '@/assets/mp4.png'
export default {
@ -84,6 +91,8 @@ export default {
return {
loading: false,
activeNames: [],
activeStudyId: '',
activeFileId: '',
activeStudyIndex: -1,
activeFileIndex: -1,
studyList: [],
@ -95,7 +104,8 @@ export default {
otherInfo: null,
criterionType: null,
isQcCheck: false,
isAudit: false
isAudit: false,
asc: false
}
},
async mounted() {
@ -183,7 +193,18 @@ export default {
},
sortFile() {
this.asc = !this.asc
this.studyList.forEach(study => {
if (study.NoneDicomStudyFileList.length > 0) {
study.NoneDicomStudyFileList = FileNameSorter.sortFileNames(study.NoneDicomStudyFileList, {
direction: this.asc ? 'asc' : 'desc',
key: 'FileName'
})
}
})
this.activeStudyIndex = this.studyList.findIndex(item => item.Id === this.activeStudyId)
if (this.activeStudyIndex === -1) return
this.activeFileIndex = this.studyList[this.activeStudyIndex].NoneDicomStudyFileList.findIndex(item => item.Id === this.activeFileId)
},
changeReadingStatus(callback, row, file) {
let statusStr = ''
@ -286,7 +307,9 @@ export default {
if (this.isComparison) return false
this.activeStudyIndex = studyIndex
this.activeFileIndex = fileIndex
this.activeStudyId = study.Id
const fileList = study.NoneDicomStudyFileList
this.activeFileId = fileList[fileIndex].Id
this.$emit('selectFile', { fileInfo: fileList[fileIndex], fileList, visitTaskInfo: this.visitTaskInfo, studyId: study.Id, isReset })
this.scrollActiveFileIntoView()
},
@ -297,10 +320,12 @@ export default {
if (studyIndex === -1) return
this.activeStudy(`${obj.studyId}`)
this.activeStudyIndex = studyIndex
this.activeStudyId = obj.studyId
const fileList = this.studyList[studyIndex].NoneDicomStudyFileList || []
const fileIndex = fileList.findIndex(f => f.Path === obj.path)
if (fileIndex === -1) return
this.activeFileIndex = fileIndex
this.activeFileId = fileList[fileIndex].Id
this.selectFile(study, studyIndex, fileIndex)
this.scrollActiveFileIntoView()
},
@ -311,11 +336,13 @@ export default {
if (studyIndex === -1) return
this.activeStudy(`${obj.studyId}`)
this.activeStudyIndex = studyIndex
this.activeStudyId = obj.studyId
const fileList = this.studyList[studyIndex].NoneDicomStudyFileList || []
const fileIndex = fileList.findIndex(f => f.Path === obj.path)
const file = fileList.find(f => f.Path === obj.path)
if (fileIndex === -1) return
this.activeFileIndex = fileIndex
this.activeFileId = fileList[fileIndex].Id
file.Path = obj.file.Path
file.FullFilePath = obj.file.Path
file.IsBeMark = obj.IsBeMark
@ -339,16 +366,19 @@ export default {
flex-direction: column;
.study-info {
display: flex;
justify-content: center;
align-items: center;
font-size: 16px;
font-weight: bold;
color: #ddd;
// padding: 5px 0px;
margin: 0;
text-align: center;
background-color: #4c4c4c;
line-height: 40px;
user-select: none;
}
.icon_check {
color: #409EFF;
}
.dicom-desc {
font-weight: bold;
font-size: 13px;