后处理影像可以编辑检查类型
continuous-integration/drone/push Build is passing Details

uat_us
DESKTOP-6C3NK6N\WXS 2024-09-29 09:17:07 +08:00
parent 463ecee3d8
commit 64d268b6e8
3 changed files with 255 additions and 115 deletions

View File

@ -96,3 +96,11 @@ export function getTrialDownloadList(data) {
data data
}) })
} }
// 修改后处理检查类型
export function updateTaskStudyModality(params) {
return request({
url: '/DownloadAndUpload/updateTaskStudyModality',
method: 'put',
params
})
}

View File

@ -45,11 +45,18 @@
prop="UploadStudyList" prop="UploadStudyList"
:label="$t('upload:dicom:table:uploadStudyListNum')" :label="$t('upload:dicom:table:uploadStudyListNum')"
> >
<template slot-scope="scope">{{ <template slot-scope="scope">
scope.row.UploadStudyList && Array.isArray(scope.row.UploadStudyList) <el-button
? scope.row.UploadStudyList.length v-if="
: 0 scope.row.UploadStudyList && scope.row.UploadStudyList.length >= 1
}}</template> "
type="text"
@click="handleOpenDialog(scope.row, 'UploadStudyList', true)"
>
<span>{{ scope.row.UploadStudyList.length }}</span>
</el-button>
<span v-else>0</span>
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
:label="$t('common:action:action')" :label="$t('common:action:action')"
@ -436,6 +443,9 @@
:IsDicom="true" :IsDicom="true"
:bodyPart="bodyPart" :bodyPart="bodyPart"
:modelList="modelList" :modelList="modelList"
:isUpload="openIsUpload"
:TrialModality="TrialModality"
@getList="getList"
/> />
</div> </div>
</template> </template>
@ -544,6 +554,8 @@ export default {
errStudyUidList: [], errStudyUidList: [],
open: null, open: null,
bodyPart: [], bodyPart: [],
openIsUpload: false,
TrialModality: [],
} }
}, },
created() { created() {
@ -580,6 +592,7 @@ export default {
let res = await getSubjectImageUploadList(params) let res = await getSubjectImageUploadList(params)
this.loading = false this.loading = false
if (res.IsSuccess) { if (res.IsSuccess) {
this.TrialModality = res.OtherInfo.TrialModality.split('|')
this.StudyInstanceUidList = [] this.StudyInstanceUidList = []
this.SopInstanceUidList = [] this.SopInstanceUidList = []
this.UploadStudyList = [] this.UploadStudyList = []
@ -654,7 +667,8 @@ export default {
} }
}, },
// //
handleOpenDialog(item, list) { handleOpenDialog(item, list, isUpload = false) {
this.openIsUpload = isUpload
this.model_cfg.title = `${item.SubjectCode || ''} > ${item.TaskBlindName}` this.model_cfg.title = `${item.SubjectCode || ''} > ${item.TaskBlindName}`
this.modelList = item[list] this.modelList = item[list]
this.model_cfg.visible = true this.model_cfg.visible = true

View File

@ -1,120 +1,175 @@
<template> <template>
<base-model :config="model_cfg"> <div v-if="model_cfg.visible">
<div slot="dialog-body"> <base-model :config="model_cfg">
<el-table :data="modelList" style="width: 100%" height="300"> <div slot="dialog-body">
<!--检查编号--> <el-table :data="modelList" style="width: 100%" height="300">
<el-table-column <!--检查编号-->
prop="StudyCode" <el-table-column
:label="$t('trials:uploadImage:table:StudyCode')" prop="StudyCode"
/> :label="$t('trials:uploadImage:table:StudyCode')"
<!--检查类型--> />
<el-table-column <!--检查类型-->
prop="ModalityForEdit" <el-table-column
:label="$t('trials:uploadImage:table:ModalityForEdit')" prop="ModalityForEdit"
v-if="IsDicom" :label="$t('trials:uploadImage:table:ModalityForEdit')"
/> v-if="IsDicom"
<!--检查模态--> />
<el-table-column <!--检查模态-->
prop="Modalities" <el-table-column
:label="$t('trials:uploadImage:table:Modalities')" prop="Modalities"
v-if="IsDicom" :label="$t('trials:uploadImage:table:Modalities')"
/> v-if="IsDicom"
<!--检查部位--> />
<el-table-column <!--检查部位-->
prop="BodyPartForEdit" <el-table-column
:label="$t('trials:uploadImage:table:BodyPartForEdit')" prop="BodyPartForEdit"
v-if="IsDicom" :label="$t('trials:uploadImage:table:BodyPartForEdit')"
v-if="IsDicom"
>
<template slot-scope="scope">
<span>{{
$fd(
'Bodypart',
scope.row.BodyPartForEdit,
'Code',
{ Bodypart: bodyPart },
'Name'
)
}}</span>
</template>
</el-table-column>
<!--序列数量-->
<el-table-column
prop="SeriesCount"
:label="$t('trials:uploadImage:table:SeriesCount')"
v-if="IsDicom"
/>
<!--图像数量-->
<el-table-column
prop="InstanceCount"
:label="$t('trials:uploadImage:table:InstanceCount')"
v-if="IsDicom"
/>
<!--检查时间-->
<el-table-column
prop="StudyTime"
:label="$t('trials:uploadImage:table:StudyTime')"
v-if="IsDicom"
min-width="130"
/>
<!--检查模态-->
<el-table-column
prop="Modality"
:label="$t('trials:uploadImage:table:Modalities')"
v-if="!IsDicom"
/>
<!--检查部位-->
<el-table-column
prop="BodyPart"
:label="$t('trials:uploadImage:table:BodyPartForEdit')"
v-if="!IsDicom"
>
<template slot-scope="scope">
<span>{{
$fd(
'Bodypart',
scope.row.BodyPart,
'Code',
{ Bodypart: bodyPart },
'Name'
)
}}</span>
</template>
</el-table-column>
<!--文件数量-->
<el-table-column
prop="FileCount"
:label="$t('trials:uploadImage:table:FileCount')"
v-if="!IsDicom"
/>
<!--检查时间-->
<el-table-column
prop="ImageDate"
:label="$t('trials:uploadImage:table:StudyTime')"
v-if="!IsDicom"
min-width="130"
/>
<el-table-column
:label="$t('common:action:action')"
fixed="right"
width="80"
>
<template slot-scope="scope">
<!--预览--->
<el-button
circle
icon="el-icon-view"
:title="$t('trials:uploadImage:button:preview')"
v-if="!isUpload"
@click.stop="preview(scope.row)"
/>
<!--编辑--->
<el-button
circle
icon="el-icon-edit-outline"
:title="$t('trials:uploadImage:button:edit')"
v-else
@click.stop="openEdit(scope.row)"
/>
</template>
</el-table-column>
</el-table>
</div>
</base-model>
<!--新增检查部位-->
<base-model v-if="editModality_model.visible" :config="editModality_model">
<template slot="dialog-body">
<el-form
ref="editModalityform"
:inline="true"
:model="form"
class="demo-form-inline"
:rules="rules"
> >
<template slot-scope="scope"> <el-form-item
<span>{{ :label="$t('trials:uploadImage:form:ModalityForEdit')"
$fd( prop="Modality"
'Bodypart', label-width="150px"
scope.row.BodyPartForEdit, >
'Code', <el-select v-model="form.Modality" placeholder="">
{ Bodypart: bodyPart }, <el-option
'Name' v-for="item in TrialModality"
) :key="item"
}}</span> :label="item"
</template> :value="item"
</el-table-column> >
<!--序列数量--> </el-option>
<el-table-column </el-select>
prop="SeriesCount" </el-form-item>
:label="$t('trials:uploadImage:table:SeriesCount')" </el-form>
v-if="IsDicom" </template>
/> <template slot="dialog-footer">
<!--图像数量--> <el-button
<el-table-column type="primary"
prop="InstanceCount" @click="updateTaskStudyModality"
:label="$t('trials:uploadImage:table:InstanceCount')" :loading="loading"
v-if="IsDicom"
/>
<!--检查时间-->
<el-table-column
prop="StudyTime"
:label="$t('trials:uploadImage:table:StudyTime')"
v-if="IsDicom"
min-width="130"
/>
<!--检查模态-->
<el-table-column
prop="Modality"
:label="$t('trials:uploadImage:table:Modalities')"
v-if="!IsDicom"
/>
<!--检查部位-->
<el-table-column
prop="BodyPart"
:label="$t('trials:uploadImage:table:BodyPartForEdit')"
v-if="!IsDicom"
> >
<template slot-scope="scope"> {{ $t('common:button:confirm') }}
<span>{{ </el-button>
$fd( <el-button
'Bodypart', @click="editModality_model.visible = false"
scope.row.BodyPart, :loading="loading"
'Code',
{ Bodypart: bodyPart },
'Name'
)
}}</span>
</template>
</el-table-column>
<!--文件数量-->
<el-table-column
prop="FileCount"
:label="$t('trials:uploadImage:table:FileCount')"
v-if="!IsDicom"
/>
<!--检查时间-->
<el-table-column
prop="ImageDate"
:label="$t('trials:uploadImage:table:StudyTime')"
v-if="!IsDicom"
min-width="130"
/>
<el-table-column
:label="$t('common:action:action')"
fixed="right"
width="80"
> >
<template slot-scope="scope"> {{ $t('common:button:cancel') }}
<!--预览---> </el-button>
<el-button </template>
circle </base-model>
icon="el-icon-view" </div>
:title="$t('trials:uploadImage:button:preview')"
@click.stop="preview(scope.row)"
/>
</template>
</el-table-column>
</el-table>
</div>
</base-model>
</template> </template>
<script> <script>
import baseModel from '@/components/BaseModel' import baseModel from '@/components/BaseModel'
import { getToken } from '@/utils/auth' import { getToken } from '@/utils/auth'
import { updateTaskStudyModality } from '@/api/load.js'
export default { export default {
name: 'studyView', name: 'studyView',
props: { props: {
@ -136,6 +191,12 @@ export default {
return [] return []
}, },
}, },
TrialModality: {
type: Array,
default: () => {
return []
},
},
visitTaskId: { visitTaskId: {
type: String, type: String,
}, },
@ -144,10 +205,39 @@ export default {
type: Boolean, type: Boolean,
default: true, default: true,
}, },
isUpload: {
required: true,
type: Boolean,
default: false,
},
}, },
components: { components: {
'base-model': baseModel, 'base-model': baseModel,
}, },
data() {
return {
form: {
Modality: null,
TaskStudyId: null,
},
editModality_model: {
visible: false,
title: this.$t('trials:uploadImage:button:edit'),
width: '500px',
appendToBody: true,
},
rules: {
Modality: [
{
required: true,
message: this.$t('trials:uploadImage:format:notModality'),
trigger: ['blur', 'change'],
},
],
},
loading: false,
}
},
methods: { methods: {
// //
preview(row) { preview(row) {
@ -166,6 +256,34 @@ export default {
} }
window.open(routeData.href, '_blank') window.open(routeData.href, '_blank')
}, },
//
openEdit(row) {
this.form.TaskStudyId = row.Id
this.form.Modality = row.ModalityForEdit
this.editModality_model.visible = true
},
//
async updateTaskStudyModality() {
try {
let validate = await this.$refs.editModalityform.validate()
if (!validate) return false
this.loading = true
let res = await updateTaskStudyModality(this.form)
this.loading = false
if (res.IsSuccess) {
this.modelList.some((item) => {
if (this.form.TaskStudyId === item.Id) {
item.ModalityForEdit = this.form.Modality
}
return this.form.TaskStudyId === item.Id
})
this.editModality_model.visible = false
this.$emit('getList')
}
} catch (err) {
console.log(err)
}
},
}, },
} }
</script> </script>