修改配置应用到影像上传以及影像质控
continuous-integration/drone/push Build encountered an error Details

uat
wangxiaoshuang 2025-02-27 16:32:58 +08:00
parent 858a650986
commit 5bffb48b99
4 changed files with 202 additions and 7 deletions

View File

@ -11,6 +11,9 @@
<span>{{ study.CodeView }}</span>
<span style="margin: 0 5px">{{ study.Modality }}</span>
<span>{{ getBodyPart(study.BodyPart) }}</span>
<span v-if="OtherInfo.IsShowStudyName" style="margin-left: 5px">{{
study.StudyName
}}</span>
</div>
<!-- 文件层级 -->
<div
@ -45,7 +48,7 @@
</el-card>
<!-- 预览图像 -->
<el-card class="box-card right">
<div style="width: 100%; height: 100%">
<div style="width: 100%; height: 100%" v-if="!showPDF">
<Preview
v-if="previewImage.imgList.length > 0"
ref="previewImage"
@ -55,6 +58,9 @@
@selectedImg="selectedImg"
/>
</div>
<div style="width: 100%; height: 100%" v-else>
<PreviewFile :file-path="pdfFile.path" :file-type="pdfFile.type" />
</div>
</el-card>
<!-- <el-card class="box-card" style="width:300px;height:100%;padding: 10px;margin-left:10px;">
@ -68,11 +74,13 @@ import { getNoneDicomStudyList } from '@/api/trials'
import store from '@/store'
import { changeURLStatic } from '@/utils/history.js'
import Preview from './components/preview'
import PreviewFile from '@/components/PreviewFile'
// import CheckForm from './components/form'
export default {
name: 'Notice',
components: {
Preview,
PreviewFile,
// CheckForm
},
data() {
@ -97,6 +105,12 @@ export default {
sudyId: '',
loading: false,
bp: [],
OtherInfo: {},
showPDF: false,
pdfFile: {
path: null,
type: null,
},
}
},
async created() {
@ -148,6 +162,7 @@ export default {
)
.then((res) => {
this.studyList = res.Result
this.OtherInfo = res.OtherInfo
this.loading = false
const studyIndex = this.studyList.findIndex((item) => {
return item.NoneDicomStudyFileList.length > 0
@ -162,10 +177,19 @@ export default {
})
},
selected(file, studyIndex, fileIndex, isChangeSub = false) {
if (!!~file.FileType.indexOf('pdf')) {
this.pdfFile.path = file.Path || file.FullFilePath
this.pdfFile.type = 'pdf'
this.showPDF = true
return true
} else {
this.showPDF = false
}
this.currentFileId = file.Id
this.currentStudyIndex = studyIndex
this.previewImage.imgList =
this.studyList[studyIndex].NoneDicomStudyFileList
this.previewImage.imgList = this.studyList[
studyIndex
].NoneDicomStudyFileList.filter((item) => !~item.FileType.indexOf('pdf'))
this.currentStudyFileIndex = fileIndex
this.previewImage.index = fileIndex
this.previewImage.studyCode = this.studyList[studyIndex].CodeView

View File

@ -87,6 +87,12 @@
{{ scope.row.StudyCode }}
</template>
</el-table-column>
<!-- 检查名称 -->
<el-table-column
v-if="relationInfo.IsShowStudyName"
prop="StudyName"
:label="$t('trials:audit:table:StudyName')"
/>
<!-- 检查类型 -->
<el-table-column
prop="ModalityForEdit"
@ -694,6 +700,30 @@
<el-form-item :label="$t('trials:audit:table:studyId')">
<el-input v-model="studyForm.StudyCode" disabled />
</el-form-item>
<!-- 检查名称 -->
<el-form-item
v-if="relationInfo.IsShowStudyName"
:label="$t('trials:audit:table:StudyName')"
prop="StudyName"
:rules="[
{
required: true,
message: $t('common:ruleMessage:specify'),
trigger: 'blur',
},
]"
>
<el-radio-group v-model="studyForm.StudyName">
<template v-for="m in relationInfo.StudyNameList">
<el-radio
v-if="m.IsChoose"
:key="m.Name"
:label="isEN ? m.EnName : m.Name"
style="margin-bottom: 15px"
/>
</template>
</el-radio-group>
</el-form-item>
<!-- 检查类型 -->
<el-form-item
v-if="studyForm.IsDicomData"
@ -899,6 +929,11 @@ export default {
isClose: false,
}
},
computed: {
isEN() {
return this.$i18n.locale !== 'zh'
},
},
watch: {
btnLoading() {
store.dispatch('trials/setUnLock', this.btnLoading)
@ -959,6 +994,7 @@ export default {
type: 1,
modality: this.studyForm.Modality,
bodyPart: this.studyForm.BodyPart,
StudyName: this.studyForm.StudyName,
}
updateModality(this.trialId, params)
.then((res) => {

View File

@ -29,6 +29,12 @@
prop="CodeView"
:label="$t('trials:uploadNonDicoms:table:studyId')"
/>
<!-- 检查名称 -->
<el-table-column
v-if="relationInfo.IsShowStudyName"
prop="StudyName"
:label="$t('trials:uploadNonDicoms:table:StudyName')"
/>
<!-- 检查类型 -->
<el-table-column
prop="Modality"
@ -235,6 +241,30 @@
>
<el-input v-model="form.CodeView" disabled />
</el-form-item>
<!-- 检查名称 -->
<el-form-item
v-if="relationInfo.IsShowStudyName"
:label="$t('trials:uploadNonDicoms:table:StudyName')"
prop="StudyName"
:rules="[
{
required: true,
message: $t('common:ruleMessage:specify'),
trigger: 'blur',
},
]"
>
<el-radio-group v-model="form.StudyName">
<template v-for="m in relationInfo.StudyNameList">
<el-radio
v-if="m.IsChoose"
:key="m.Name"
:label="isEN ? m.EnName : m.Name"
style="line-height: 40px"
/>
</template>
</el-radio-group>
</el-form-item>
<!-- 检查类型 -->
<el-form-item
:label="$t('trials:uploadNonDicoms:table:modality')"
@ -343,7 +373,10 @@
<!-- 多文件上传 -->
<form id="inputForm" ref="uploadForm">
<el-divider content-position="left">{{
$t('trials:uploadNonDicoms:label:fileType')
$t('trials:uploadNonDicoms:label:fileType').replace(
'xxx',
relationInfo.ImageFormatList.join('/')
)
}}</el-divider>
<div class="form-group">
<div class="upload" style="margin-right: 10px">
@ -602,6 +635,7 @@ export default {
BodyParts: [],
Modality: '',
ImageDate: '',
StudyName: '',
},
pickerOption: {
disabledDate: (time) => {
@ -627,6 +661,7 @@ export default {
moment,
BodyPart: {},
studyMonitorId: null,
relationInfo: {},
}
},
async mounted() {
@ -666,12 +701,22 @@ export default {
store.dispatch('trials/setUnLock', false)
this.OSSclient.close()
},
computed: {
isEN() {
return this.$i18n.locale !== 'zh'
},
},
methods: {
// Dicom
getNoneDicomList() {
this.loading = true
getNoneDicomStudyList(this.subjectVisitId)
.then((res) => {
this.relationInfo = res.OtherInfo
this.faccept = []
this.relationInfo.ImageFormatList.forEach((item) => {
this.faccept.push(`.${item}`)
})
this.nonDicomStudyList = res.Result.map((v) => {
if (v.VideoObjectName) {
v.FileCount += 1
@ -691,6 +736,7 @@ export default {
this.form.CodeView = ''
this.form.BodyPart = ''
this.form.Modality = ''
this.form.StudyName = ''
this.form.ImageDate = ''
this.form.BodyParts = []
this.dialogVisible = true
@ -698,11 +744,14 @@ export default {
//
handleEdit(row) {
this.title = this.$t('trials:uploadNonDicoms:dialogTitle:edit')
const { CodeView, Id, BodyPart, Modality, ImageDate } = { ...row }
const { CodeView, Id, BodyPart, Modality, ImageDate, StudyName } = {
...row,
}
this.form.CodeView = CodeView
this.form.Id = Id
this.form.BodyPart = BodyPart
this.form.Modality = Modality
this.form.StudyName = StudyName
this.form.ImageDate = ImageDate
this.form.BodyParts = this.form.BodyPart.split(', ')
this.dialogVisible = true
@ -909,6 +958,13 @@ export default {
})
},
handlePreviewImg(row) {
if (!!~row.FileType.indexOf('pdf')) {
return this.$preview({
path: row.Path || row.fullPath,
type: 'pdf',
title: row.FileName,
})
}
// this.imgUrl = row.FullFilePath
// this.previewImgVisible = true
// this.imageLoading = true

View File

@ -105,6 +105,12 @@
prop="StudyCode"
:label="$t('trials:audit:table:studyId')"
/>
<!-- 检查名称 -->
<el-table-column
prop="StudyName"
v-if="relationInfo.IsShowStudyName"
:label="$t('trials:audit:table:StudyName')"
/>
<!-- 检查类型 -->
<el-table-column
prop="ModalityForEdit"
@ -133,7 +139,9 @@
style="color: #f44336; font-size: 16px"
/>
</el-tooltip>
<span v-else>{{ getBodyPart(scope.row.BodyPartForEdit) }}</span>
<span v-else>{{
getBodyPart(scope.row.BodyPartForEdit)
}}</span>
</template>
</el-table-column>
<!-- 序列数量 -->
@ -387,6 +395,12 @@
prop="CodeView"
:label="$t('trials:audit:table:nonDicomsStudyId')"
/>
<!-- 检查名称 -->
<el-table-column
prop="StudyName"
v-if="relationInfo.IsShowStudyName"
:label="$t('trials:audit:table:StudyName')"
/>
<!-- 检查类型 -->
<el-table-column
prop="Modality"
@ -886,6 +900,30 @@
<el-form-item :label="$t('trials:audit:table:studyId')">
<el-input v-model="studyForm.StudyCode" disabled />
</el-form-item>
<!-- 检查名称 -->
<el-form-item
v-if="relationInfo.IsShowStudyName"
:label="$t('trials:audit:table:StudyName')"
prop="StudyName"
:rules="[
{
required: true,
message: $t('common:ruleMessage:specify'),
trigger: 'blur',
},
]"
>
<el-radio-group v-model="studyForm.StudyName">
<template v-for="m in relationInfo.StudyNameList">
<el-radio
v-if="m.IsChoose"
:key="m.Name"
:label="isEN ? m.EnName : m.Name"
style="line-height: 40px"
/>
</template>
</el-radio-group>
</el-form-item>
<!-- 检查类型 -->
<el-form-item
v-if="studyForm.IsDicomData"
@ -1034,6 +1072,30 @@
<el-form-item :label="$t('trials:audit:table:nonDicomsStudyId')">
<el-input v-model="noneDicomForm.CodeView" disabled />
</el-form-item>
<!-- 检查名称 -->
<el-form-item
v-if="relationInfo.IsShowStudyName"
:label="$t('trials:audit:table:StudyName')"
prop="StudyName"
:rules="[
{
required: true,
message: $t('common:ruleMessage:specify'),
trigger: 'blur',
},
]"
>
<el-radio-group v-model="noneDicomForm.StudyName">
<template v-for="m in relationInfo.StudyNameList">
<el-radio
v-if="m.IsChoose"
:key="m.Name"
:label="isEN ? m.EnName : m.Name"
style="line-height: 40px"
/>
</template>
</el-radio-group>
</el-form-item>
<!-- 检查类型 -->
<el-form-item
:label="$t('trials:audit:table:nonDicomsModality')"
@ -1343,6 +1405,11 @@ export default {
default: 1,
},
},
computed: {
isEN() {
return this.$i18n.locale !== 'zh'
},
},
data() {
return {
activeName: this.data.DicomStudyCount > 0 ? 'dicom' : 'none-dicom',
@ -1392,6 +1459,7 @@ export default {
BodyParts: [],
Modality: '',
ImageDate: '',
StudyName: '',
},
subjectClinicalData: {},
moment,
@ -2297,6 +2365,7 @@ export default {
type: 1,
modality: this.studyForm.Modality,
bodyPart: this.studyForm.BodyPart,
StudyName: this.studyForm.StudyName,
}
updateModality(this.data.TrialId, params)
.then((res) => {
@ -2328,7 +2397,10 @@ export default {
// Dicom
handleEditNoneDicomInfo(row) {
const { CodeView, Id, BodyPart, Modality, ImageDate } = { ...row }
const { CodeView, Id, BodyPart, Modality, ImageDate, StudyName } = {
...row,
}
this.noneDicomForm.StudyName = StudyName
this.noneDicomForm.CodeView = CodeView
this.noneDicomForm.Id = Id
this.noneDicomForm.BodyPart = BodyPart
@ -2375,6 +2447,13 @@ export default {
},
//
previewFile(row) {
if (!!~row.FileType.indexOf('pdf')) {
return this.$preview({
path: row.Path || row.fullPath,
type: 'pdf',
title: row.FileName,
})
}
// window.open(row.FullFilePath, '_blank')
// this.imgObj.url = row.FullFilePath
// this.imgObj.loading = true