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-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-input v-model="searchData.PatientName" clearable style="width: 100px" :maxlength="400"></el-input>
|
||||||
</el-form-item>
|
</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 -->
|
<!-- modalitiesInStudy -->
|
||||||
<el-form-item :label="$t('trials:inspection:pullImage:search:modalitiesInStudy')">
|
<el-form-item :label="$t('trials:inspection:pullImage:search:modalitiesInStudy')">
|
||||||
<el-select v-model="searchData.ModalitiesInStudyList" placeholder="" clearable multiple collapse-tags
|
<el-select v-model="searchData.ModalitiesInStudyList" placeholder="" clearable multiple collapse-tags
|
||||||
|
|
@ -92,54 +36,6 @@
|
||||||
:picker-options="pickerOptions">
|
:picker-options="pickerOptions">
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
</el-form-item>
|
</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-form-item>
|
||||||
<!-- 查询 -->
|
<!-- 查询 -->
|
||||||
<el-button type="primary" icon="el-icon-search" @click="handleSearch">
|
<el-button type="primary" icon="el-icon-search" @click="handleSearch">
|
||||||
|
|
@ -154,6 +50,11 @@
|
||||||
@click="openGroup(null, 2)">
|
@click="openGroup(null, 2)">
|
||||||
{{ $t('trials:inspection:button:pull') }}
|
{{ $t('trials:inspection:button:pull') }}
|
||||||
</el-button>
|
</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-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -235,12 +136,15 @@
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</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">
|
<template slot-scope="scope">
|
||||||
<el-button circle icon="el-icon-refresh" class="refreshBtn" :title="$t('trials:inspection:button:pull')"
|
<el-button circle icon="el-icon-refresh" class="refreshBtn" :title="$t('trials:inspection:button:pull')"
|
||||||
@click.stop="openGroup(scope.row, 2)" />
|
@click.stop="openGroup(scope.row, 2)" />
|
||||||
<el-button circle icon="el-icon-edit-outline" :title="$t('trials:inspection:button:collect')"
|
<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)" />
|
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>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
@ -274,6 +178,33 @@
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
</base-model>
|
</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>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
|
@ -362,6 +293,29 @@ export default {
|
||||||
btnLoading: false,
|
btnLoading: false,
|
||||||
hospitalGroupList: [],
|
hospitalGroupList: [],
|
||||||
groupStatus: 1,
|
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: {
|
computed: {
|
||||||
|
|
@ -478,6 +432,16 @@ export default {
|
||||||
this.getAEList(false, true)
|
this.getAEList(false, true)
|
||||||
},
|
},
|
||||||
methods: {
|
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) {
|
pacsDicomAEIdChange(val, f = false) {
|
||||||
let pacs = this.AElist.find((item) => item.Id === val)
|
let pacs = this.AElist.find((item) => item.Id === val)
|
||||||
this.ModalityList = pacs.ModalityList
|
this.ModalityList = pacs.ModalityList
|
||||||
|
|
@ -509,16 +473,6 @@ export default {
|
||||||
Object.keys(this.searchData).forEach((key) => {
|
Object.keys(this.searchData).forEach((key) => {
|
||||||
data[key] = this.searchData[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]) {
|
if (this.StudyDate && this.StudyDate[0] && this.StudyDate[1]) {
|
||||||
data.StudyDate =
|
data.StudyDate =
|
||||||
this.$moment(this.StudyDate[0]).format('YYYYMMDD') +
|
this.$moment(this.StudyDate[0]).format('YYYYMMDD') +
|
||||||
|
|
@ -527,14 +481,6 @@ export default {
|
||||||
} else {
|
} else {
|
||||||
data.StudyDate = null
|
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 {
|
try {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
let res = await getCFindStudyList(data)
|
let res = await getCFindStudyList(data)
|
||||||
|
|
@ -577,6 +523,7 @@ export default {
|
||||||
let res = await getDicomAEList(data)
|
let res = await getDicomAEList(data)
|
||||||
this.loading = false
|
this.loading = false
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
|
this.IsSupportThirdService = res.OtherInfo.IsSupportThirdService
|
||||||
this.AElist = res.Result.CurrentPageData
|
this.AElist = res.Result.CurrentPageData
|
||||||
if (this.AElist.length > 0) {
|
if (this.AElist.length > 0) {
|
||||||
if (!f) {
|
if (!f) {
|
||||||
|
|
@ -598,6 +545,30 @@ export default {
|
||||||
console.log(err)
|
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() {
|
paging() {
|
||||||
this.PageList = []
|
this.PageList = []
|
||||||
|
|
@ -673,6 +644,7 @@ export default {
|
||||||
this.form.HospitalGroupIdList = []
|
this.form.HospitalGroupIdList = []
|
||||||
this.groupStatus = 1
|
this.groupStatus = 1
|
||||||
this.group_model.visible = false
|
this.group_model.visible = false
|
||||||
|
this.transpond_model.visible = false
|
||||||
},
|
},
|
||||||
openGroup(row, type = 1) {
|
openGroup(row, type = 1) {
|
||||||
this.currentData = row
|
this.currentData = row
|
||||||
|
|
@ -693,6 +665,34 @@ export default {
|
||||||
}
|
}
|
||||||
this.group_model.visible = true
|
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数据
|
// 拉取pacs数据
|
||||||
async pullImage() {
|
async pullImage() {
|
||||||
try {
|
try {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue