PACS按患者进行转发
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
d04b1b5e6f
commit
0fdf3ee8cd
|
|
@ -21,62 +21,6 @@
|
|||
<el-form-item class="my_multiple" :label="$t('trials:inspection:pullImage:search:patientName')">
|
||||
<el-input v-model="searchData.PatientName" clearable style="width: 100px" :maxlength="400"></el-input>
|
||||
</el-form-item>
|
||||
<!-- patientSex -->
|
||||
<!-- <el-form-item
|
||||
class="my_multiple"
|
||||
:label="$t('trials:inspection:pullImage:search:patientSex')"
|
||||
>
|
||||
<el-select
|
||||
v-model="searchData.PatientSex"
|
||||
clearable
|
||||
style="width: 140px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item of $d.Sex"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item> -->
|
||||
<!-- patientBirthDate -->
|
||||
<!-- <el-form-item
|
||||
:label="$t('trials:inspection:pullImage:search:patientBirthDate')"
|
||||
>
|
||||
<el-date-picker
|
||||
v-model="PatientBirthDate"
|
||||
type="daterange"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
value-format="yyyyMMDD"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item> -->
|
||||
<!-- studyID -->
|
||||
<!-- <el-form-item
|
||||
class="my_multiple"
|
||||
:label="$t('trials:inspection:pullImage:search:studyID')"
|
||||
>
|
||||
<el-input
|
||||
v-model="searchData.StudyID"
|
||||
clearable
|
||||
:maxlength="400"
|
||||
></el-input>
|
||||
</el-form-item> -->
|
||||
<!-- AccessionNumber -->
|
||||
<!-- <el-form-item
|
||||
class="my_multiple"
|
||||
:label="$t('trials:inspection:pullImage:search:AccessionNumber')"
|
||||
>
|
||||
<el-input
|
||||
v-model="searchData.AccessionNumber"
|
||||
clearable
|
||||
style="width: 100px"
|
||||
:maxlength="400"
|
||||
></el-input>
|
||||
</el-form-item> -->
|
||||
<!-- modalitiesInStudy -->
|
||||
<el-form-item :label="$t('trials:inspection:pullImage:search:modalitiesInStudy')">
|
||||
<el-select v-model="searchData.ModalitiesInStudyList" placeholder="" clearable multiple collapse-tags
|
||||
|
|
@ -92,54 +36,6 @@
|
|||
:picker-options="pickerOptions">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<!-- studyTime -->
|
||||
<!-- <el-form-item
|
||||
:label="$t('trials:inspection:pullImage:search:studyTime')"
|
||||
>
|
||||
<el-time-picker
|
||||
is-range
|
||||
arrow-control
|
||||
v-model="StudyTime"
|
||||
range-separator="至"
|
||||
start-placeholder="开始时间"
|
||||
end-placeholder="结束时间"
|
||||
placeholder="选择时间范围"
|
||||
>
|
||||
</el-time-picker>
|
||||
</el-form-item> -->
|
||||
<!-- bodyPartExamined -->
|
||||
<!-- <el-form-item
|
||||
class="my_multiple"
|
||||
:label="$t('trials:inspection:pullImage:search:bodyPartExamined')"
|
||||
>
|
||||
<el-input
|
||||
v-model="searchData.BodyPartExamined"
|
||||
clearable
|
||||
:maxlength="400"
|
||||
></el-input>
|
||||
</el-form-item> -->
|
||||
<!-- studyDescription -->
|
||||
<!-- <el-form-item
|
||||
class="my_multiple"
|
||||
:label="$t('trials:inspection:pullImage:search:studyDescription')"
|
||||
>
|
||||
<el-input
|
||||
v-model="searchData.StudyDescription"
|
||||
clearable
|
||||
:maxlength="400"
|
||||
></el-input>
|
||||
</el-form-item> -->
|
||||
<!-- studyInstanceUID -->
|
||||
<!-- <el-form-item
|
||||
class="my_multiple"
|
||||
:label="$t('trials:inspection:pullImage:search:studyInstanceUID')"
|
||||
>
|
||||
<el-input
|
||||
v-model="searchData.StudyInstanceUID"
|
||||
clearable
|
||||
:maxlength="400"
|
||||
></el-input>
|
||||
</el-form-item> -->
|
||||
<el-form-item>
|
||||
<!-- 查询 -->
|
||||
<el-button type="primary" icon="el-icon-search" @click="handleSearch">
|
||||
|
|
@ -154,6 +50,11 @@
|
|||
@click="openGroup(null, 2)">
|
||||
{{ $t('trials:inspection:button:pull') }}
|
||||
</el-button>
|
||||
<!-- 转发 -->
|
||||
<el-button type="primary" v-if="IsSupportThirdService"
|
||||
:disabled="!multipleSelection || multipleSelection.length <= 0" @click="openTranspond(multipleSelection)">
|
||||
{{ $t('trials:inspection:button:transpond') }}
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
|
|
@ -235,12 +136,15 @@
|
|||
</template>
|
||||
</el-table-column>
|
||||
<!--操作-->
|
||||
<el-table-column :label="$t('common:action:action')" min-width="120">
|
||||
<el-table-column :label="$t('common:action:action')" min-width="160" fixed="right">
|
||||
<template slot-scope="scope">
|
||||
<el-button circle icon="el-icon-refresh" class="refreshBtn" :title="$t('trials:inspection:button:pull')"
|
||||
@click.stop="openGroup(scope.row, 2)" />
|
||||
<el-button circle icon="el-icon-edit-outline" :title="$t('trials:inspection:button:collect')"
|
||||
v-if="scope.row.IsStudyExist" @click.stop="openGroup(scope.row, 1)" />
|
||||
<!-- 转发 -->
|
||||
<el-button circle icon="el-icon-position" :title="$t('trials:inspection:button:transpond')"
|
||||
v-if="IsSupportThirdService" @click="openTranspond([scope.row])" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
|
@ -274,6 +178,33 @@
|
|||
</el-button>
|
||||
</template>
|
||||
</base-model>
|
||||
<base-model v-if="transpond_model.visible" :config="transpond_model">
|
||||
<template slot="dialog-body">
|
||||
<el-form ref="transpondFrom" :model="transpondForm" :rules="transpondRules" label-width="100px" size="small">
|
||||
<el-form-item :label="$t('trials:externalStaff:table:lastName')" prop="LastName" v-show="false">
|
||||
<el-input clearable />
|
||||
</el-form-item>
|
||||
<!-- AE -->
|
||||
<el-form-item :label="$t('trials:externalStaff:table:DestinationAE')" prop="HospitalGroupIdList">
|
||||
<el-select v-model="transpondForm.DestinationAE" style="width: 100%" clearable placeholder="">
|
||||
<el-option v-for="item of transpondAElist" :key="item.Id" :label="item.CalledAE" :value="item.Id">
|
||||
<!-- <span>{{ item.UserType }}</span> -->
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</template>
|
||||
<template slot="dialog-footer">
|
||||
<!-- 取消 -->
|
||||
<el-button size="small" type="primary" :disabled="btnLoading" @click="handleCancelGroup">
|
||||
{{ $t("common:button:cancel") }}
|
||||
</el-button>
|
||||
<!-- 保存 -->
|
||||
<el-button size="small" type="primary" :loading="btnLoading" @click="transpondImage">
|
||||
{{ $t("trials:inspection:pullImage:button:transpond") }}
|
||||
</el-button>
|
||||
</template>
|
||||
</base-model>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
|
|
@ -362,6 +293,29 @@ export default {
|
|||
btnLoading: false,
|
||||
hospitalGroupList: [],
|
||||
groupStatus: 1,
|
||||
|
||||
IsSupportThirdService: false,
|
||||
transpond_model: {
|
||||
visible: false,
|
||||
title: this.$t('trials:inspection:dialogTitle:transpond'),
|
||||
width: '400px',
|
||||
appendToBody: true
|
||||
},
|
||||
transpondForm: {
|
||||
StudyInstanceUIDList: [],
|
||||
DestinationAE: null
|
||||
},
|
||||
transpondRules: {
|
||||
DestinationAE: [
|
||||
{
|
||||
required: true,
|
||||
type: "array",
|
||||
message: this.$t('common:ruleMessage:select'),
|
||||
trigger: ['blur', 'change']
|
||||
}
|
||||
]
|
||||
},
|
||||
transpondAElist: []
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
|
|
@ -478,6 +432,16 @@ export default {
|
|||
this.getAEList(false, true)
|
||||
},
|
||||
methods: {
|
||||
openTranspond(arr) {
|
||||
this.getTranspondAEList();
|
||||
this.transpondForm.StudyInstanceUIDList = []
|
||||
this.transpondForm.DestinationAE = null
|
||||
this.transpondForm.StudyInstanceUIDList = arr.map(
|
||||
(item) => item.StudyInstanceUID
|
||||
)
|
||||
this.transpond_model.visible = true
|
||||
|
||||
},
|
||||
pacsDicomAEIdChange(val, f = false) {
|
||||
let pacs = this.AElist.find((item) => item.Id === val)
|
||||
this.ModalityList = pacs.ModalityList
|
||||
|
|
@ -509,16 +473,6 @@ export default {
|
|||
Object.keys(this.searchData).forEach((key) => {
|
||||
data[key] = this.searchData[key]
|
||||
})
|
||||
// if (
|
||||
// this.PatientBirthDate &&
|
||||
// this.PatientBirthDate[0] &&
|
||||
// this.PatientBirthDate[1]
|
||||
// ) {
|
||||
// data.PatientBirthDate =
|
||||
// this.PatientBirthDate[0] + '-' + this.PatientBirthDate[1]
|
||||
// } else {
|
||||
// data.PatientBirthDate = null
|
||||
// }
|
||||
if (this.StudyDate && this.StudyDate[0] && this.StudyDate[1]) {
|
||||
data.StudyDate =
|
||||
this.$moment(this.StudyDate[0]).format('YYYYMMDD') +
|
||||
|
|
@ -527,14 +481,6 @@ export default {
|
|||
} else {
|
||||
data.StudyDate = null
|
||||
}
|
||||
// if (this.StudyTime && this.StudyTime[0] && this.StudyTime[1]) {
|
||||
// data.StudyTime =
|
||||
// this.$moment(this.StudyTime[0]).format('HHmmss') +
|
||||
// '-' +
|
||||
// this.$moment(this.StudyTime[1]).format('HHmmss')
|
||||
// } else {
|
||||
// data.StudyTime = null
|
||||
// }
|
||||
try {
|
||||
this.loading = true
|
||||
let res = await getCFindStudyList(data)
|
||||
|
|
@ -577,6 +523,7 @@ export default {
|
|||
let res = await getDicomAEList(data)
|
||||
this.loading = false
|
||||
if (res.IsSuccess) {
|
||||
this.IsSupportThirdService = res.OtherInfo.IsSupportThirdService
|
||||
this.AElist = res.Result.CurrentPageData
|
||||
if (this.AElist.length > 0) {
|
||||
if (!f) {
|
||||
|
|
@ -598,6 +545,30 @@ export default {
|
|||
console.log(err)
|
||||
}
|
||||
},
|
||||
// 获取列表
|
||||
async getTranspondAEList() {
|
||||
let data = {
|
||||
CalledAE: null,
|
||||
IP: null,
|
||||
Port: null,
|
||||
PacsTypeEnum: 3,
|
||||
IsTestOK: null,
|
||||
PageIndex: 1,
|
||||
PageSize: 1000,
|
||||
SortField: 'CreateTime',
|
||||
Asc: false,
|
||||
}
|
||||
try {
|
||||
this.loading = true
|
||||
let res = await getDicomAEList(data)
|
||||
this.loading = false
|
||||
if (res.IsSuccess) {
|
||||
this.transpondAElist = res.Result.CurrentPageData
|
||||
}
|
||||
} catch (err) {
|
||||
console.log(err)
|
||||
}
|
||||
},
|
||||
// 分页
|
||||
paging() {
|
||||
this.PageList = []
|
||||
|
|
@ -673,6 +644,7 @@ export default {
|
|||
this.form.HospitalGroupIdList = []
|
||||
this.groupStatus = 1
|
||||
this.group_model.visible = false
|
||||
this.transpond_model.visible = false
|
||||
},
|
||||
openGroup(row, type = 1) {
|
||||
this.currentData = row
|
||||
|
|
@ -693,6 +665,34 @@ export default {
|
|||
}
|
||||
this.group_model.visible = true
|
||||
},
|
||||
// 转发
|
||||
async transpondImage() {
|
||||
try {
|
||||
let validate = await this.$refs.transpondFrom.validate()
|
||||
if (!validate) return false
|
||||
let data = {
|
||||
PacsDicomAEId: this.searchData.PacsDicomAEId,
|
||||
DestinationAE: this.transpondForm.DestinationAE,
|
||||
StudyInstanceUIDList: this.transpondForm.StudyInstanceUIDList
|
||||
// studyIDList: [row.StudyID],
|
||||
}
|
||||
this.loading = true
|
||||
this.btnLoading = true
|
||||
let res = await cmoveStudyList(data)
|
||||
this.loading = false
|
||||
this.btnLoading = false
|
||||
if (res.IsSuccess) {
|
||||
this.$message.success(
|
||||
this.$t('trials:inspection:pullImage:message:transpondSuccess')
|
||||
)
|
||||
this.handleCancelGroup()
|
||||
}
|
||||
} catch (err) {
|
||||
this.loading = false
|
||||
this.btnLoading = false
|
||||
console.log(err)
|
||||
}
|
||||
},
|
||||
// 拉取pacs数据
|
||||
async pullImage() {
|
||||
try {
|
||||
|
|
|
|||
Loading…
Reference in New Issue