对于通过DICOM AE推送的影像支持按检查查看
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
d7838051e8
commit
fd683d74f9
|
@ -45,10 +45,11 @@ export function saveImageLabelList(param) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getStudyInfo(studyId) {
|
export function getStudyInfo(studyId, params) {
|
||||||
return request({
|
return request({
|
||||||
url: `/Study/item/${studyId}`,
|
url: `/Study/item/${studyId}`,
|
||||||
method: 'get'
|
method: 'get',
|
||||||
|
params
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
export function getSeriesList(url) {
|
export function getSeriesList(url) {
|
||||||
|
|
|
@ -194,7 +194,8 @@ export default {
|
||||||
currentLoadIns: [],
|
currentLoadIns: [],
|
||||||
isFromCRCUpload: false,
|
isFromCRCUpload: false,
|
||||||
isReading: null,
|
isReading: null,
|
||||||
activeSeriesId: null
|
activeSeriesId: null,
|
||||||
|
isPacs: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created: function () {
|
created: function () {
|
||||||
|
@ -211,6 +212,9 @@ export default {
|
||||||
if (this.$router.currentRoute.query.isReading) {
|
if (this.$router.currentRoute.query.isReading) {
|
||||||
this.isReading = this.$router.currentRoute.query.isReading
|
this.isReading = this.$router.currentRoute.query.isReading
|
||||||
}
|
}
|
||||||
|
if (this.$router.currentRoute.query.isPacs) {
|
||||||
|
this.isPacs = Boolean(this.$router.currentRoute.query.isPacs)
|
||||||
|
}
|
||||||
this.studyId = this.$router.currentRoute.query.studyId
|
this.studyId = this.$router.currentRoute.query.studyId
|
||||||
this.isFromCRCUpload = !!this.$router.currentRoute.query.isFromCRCUpload
|
this.isFromCRCUpload = !!this.$router.currentRoute.query.isFromCRCUpload
|
||||||
if (this.type === 'Series') {
|
if (this.type === 'Series') {
|
||||||
|
@ -241,7 +245,11 @@ export default {
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
async loadStudy() {
|
async loadStudy() {
|
||||||
const data = await getStudyInfo(this.studyId)
|
let params = {}
|
||||||
|
if (this.isPacs) {
|
||||||
|
params.IsPacs = true
|
||||||
|
}
|
||||||
|
const data = await getStudyInfo(this.studyId, params)
|
||||||
if (data.IsSuccess) {
|
if (data.IsSuccess) {
|
||||||
if (data.Result) {
|
if (data.Result) {
|
||||||
this.studyCode = data.Result.StudyCode
|
this.studyCode = data.Result.StudyCode
|
||||||
|
@ -250,6 +258,11 @@ export default {
|
||||||
this.description = data.Result.Description
|
this.description = data.Result.Description
|
||||||
}
|
}
|
||||||
let isReading = !!this.isReading ? `?IsReading=true` : ''
|
let isReading = !!this.isReading ? `?IsReading=true` : ''
|
||||||
|
if (isReading && this.isPacs) {
|
||||||
|
isReading += `&IsPacs=true`
|
||||||
|
} else if (!isReading && this.isPacs) {
|
||||||
|
isReading = `?IsPacs=true`
|
||||||
|
}
|
||||||
const url = `/series/list/${this.studyId}${isReading}`
|
const url = `/series/list/${this.studyId}${isReading}`
|
||||||
this.getSeriesList(url)
|
this.getSeriesList(url)
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,96 +3,47 @@
|
||||||
<template slot="search-container">
|
<template slot="search-container">
|
||||||
<el-form :inline="true">
|
<el-form :inline="true">
|
||||||
<!--患者信息-->
|
<!--患者信息-->
|
||||||
<el-form-item
|
<el-form-item :label="$t('trials:visit:crcUpload:uploadDicomPacs:search:patientInfo')
|
||||||
:label="
|
" prop="TrialSiteKeyInfo">
|
||||||
$t('trials:visit:crcUpload:uploadDicomPacs:search:patientInfo')
|
<el-input v-model="searchData.PatientInfo" size="small" clearable style="width: 190px" :placeholder="$t('trials:visit:crcUpload:uploadDicomPacs:search:placeholder')
|
||||||
"
|
" />
|
||||||
prop="TrialSiteKeyInfo"
|
|
||||||
>
|
|
||||||
<el-input
|
|
||||||
v-model="searchData.PatientInfo"
|
|
||||||
size="small"
|
|
||||||
clearable
|
|
||||||
style="width: 190px"
|
|
||||||
:placeholder="
|
|
||||||
$t('trials:visit:crcUpload:uploadDicomPacs:search:placeholder')
|
|
||||||
"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!--检查技术-->
|
<!--检查技术-->
|
||||||
<el-form-item
|
<el-form-item :label="$t('trials:visit:crcUpload:uploadDicomPacs:search:modalities')
|
||||||
:label="
|
" prop="CalledAE">
|
||||||
$t('trials:visit:crcUpload:uploadDicomPacs:search:modalities')
|
|
||||||
"
|
|
||||||
prop="CalledAE"
|
|
||||||
>
|
|
||||||
<el-select v-model="searchData.Modalities" clearable>
|
<el-select v-model="searchData.Modalities" clearable>
|
||||||
<el-option
|
<el-option v-for="item of DicomModalityList" :key="item" :label="item" :value="item">
|
||||||
v-for="item of DicomModalityList"
|
|
||||||
:key="item"
|
|
||||||
:label="item"
|
|
||||||
:value="item"
|
|
||||||
>
|
|
||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!--检查日期-->
|
<!--检查日期-->
|
||||||
<el-form-item
|
<el-form-item :label="$t('trials:visit:crcUpload:uploadDicomPacs:search:studyTime')">
|
||||||
:label="$t('trials:visit:crcUpload:uploadDicomPacs:search:studyTime')"
|
<el-date-picker v-model="datetimerange" type="datetimerange" :default-time="['00:00:00', '23:59:59']"
|
||||||
>
|
value-format="yyyy-MM-dd HH:mm:ss" @change="handleDatetimeChange" />
|
||||||
<el-date-picker
|
|
||||||
v-model="datetimerange"
|
|
||||||
type="datetimerange"
|
|
||||||
:default-time="['00:00:00', '23:59:59']"
|
|
||||||
value-format="yyyy-MM-dd HH:mm:ss"
|
|
||||||
@change="handleDatetimeChange"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</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">
|
||||||
{{ $t("common:button:search") }}
|
{{ $t("common:button:search") }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<!-- 重置 -->
|
<!-- 重置 -->
|
||||||
<el-button
|
<el-button type="primary" icon="el-icon-refresh-left" @click="handleReset">
|
||||||
type="primary"
|
|
||||||
icon="el-icon-refresh-left"
|
|
||||||
@click="handleReset"
|
|
||||||
>
|
|
||||||
{{ $t("common:button:reset") }}
|
{{ $t("common:button:reset") }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<!-- 添加 -->
|
<!-- 添加 -->
|
||||||
<el-button
|
<el-button type="primary" icon="el-icon-plus" :disabled="tableSelectData.length <= 0" @click="handleAddList">
|
||||||
type="primary"
|
|
||||||
icon="el-icon-plus"
|
|
||||||
:disabled="tableSelectData.length <= 0"
|
|
||||||
@click="handleAddList"
|
|
||||||
>
|
|
||||||
{{ $t("common:button:add") }}
|
{{ $t("common:button:add") }}
|
||||||
</el-button>
|
</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</template>
|
</template>
|
||||||
<template slot="main-container">
|
<template slot="main-container">
|
||||||
<el-table
|
<el-table v-loading="loading" :data="list" class="table" @selection-change="handleSelectChange"
|
||||||
v-loading="loading"
|
@sort-change="handleSortByColumn" :default-sort="{ prop: 'StudyTime', order: 'descending' }">
|
||||||
:data="list"
|
|
||||||
class="table"
|
|
||||||
@selection-change="handleSelectChange"
|
|
||||||
@sort-change="handleSortByColumn"
|
|
||||||
:default-sort="{ prop: 'StudyTime', order: 'descending' }"
|
|
||||||
>
|
|
||||||
<el-table-column type="selection" align="center" width="45" />
|
<el-table-column type="selection" align="center" width="45" />
|
||||||
<el-table-column type="index" width="50" />
|
<el-table-column type="index" width="50" />
|
||||||
<!--患者信息-->
|
<!--患者信息-->
|
||||||
<el-table-column
|
<el-table-column :label="$t('trials:visit:crcUpload:uploadDicomPacs:table:patientMessage')
|
||||||
:label="
|
" prop="PatientIdStr" min-width="140" show-overflow-tooltip sortable="custom">
|
||||||
$t('trials:visit:crcUpload:uploadDicomPacs:table:patientMessage')
|
|
||||||
"
|
|
||||||
prop="PatientIdStr"
|
|
||||||
min-width="140"
|
|
||||||
show-overflow-tooltip
|
|
||||||
sortable="custom"
|
|
||||||
>
|
|
||||||
<template slot="header">
|
<template slot="header">
|
||||||
<el-tooltip placement="top">
|
<el-tooltip placement="top">
|
||||||
<div slot="content">
|
<div slot="content">
|
||||||
|
@ -106,10 +57,8 @@
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<div style="line-height: 15px">
|
<div style="line-height: 15px">
|
||||||
<div>
|
<div>
|
||||||
<span v-if="scope.row.PatientIdStr"
|
<span v-if="scope.row.PatientIdStr"><span style="font-weight: 500">PID: </span>{{ scope.row.PatientIdStr
|
||||||
><span style="font-weight: 500">PID: </span
|
}}</span>
|
||||||
>{{ scope.row.PatientIdStr }}</span
|
|
||||||
>
|
|
||||||
<span v-else style="color: #f44336">N/A</span>
|
<span v-else style="color: #f44336">N/A</span>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
|
@ -138,91 +87,42 @@
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<!--检查申请号-->
|
<!--检查申请号-->
|
||||||
<el-table-column
|
<el-table-column :label="$t('trials:visit:crcUpload:uploadDicomPacs:table:accNumber')" prop="AccessionNumber"
|
||||||
:label="$t('trials:visit:crcUpload:uploadDicomPacs:table:accNumber')"
|
min-width="90" show-overflow-tooltip sortable="custom" />
|
||||||
prop="AccessionNumber"
|
|
||||||
min-width="90"
|
|
||||||
show-overflow-tooltip
|
|
||||||
sortable="custom"
|
|
||||||
/>
|
|
||||||
<!--检查模态-->
|
<!--检查模态-->
|
||||||
<el-table-column
|
<el-table-column :label="$t('trials:visit:crcUpload:uploadDicomPacs:table:modalities')" prop="Modalities"
|
||||||
:label="$t('trials:visit:crcUpload:uploadDicomPacs:table:modalities')"
|
min-width="120" show-overflow-tooltip sortable="custom" />
|
||||||
prop="Modalities"
|
|
||||||
min-width="120"
|
|
||||||
show-overflow-tooltip
|
|
||||||
sortable="custom"
|
|
||||||
/>
|
|
||||||
<!--检查部位-->
|
<!--检查部位-->
|
||||||
<el-table-column
|
<el-table-column :label="$t('trials:visit:crcUpload:uploadDicomPacs:table:bodyPartExamined')
|
||||||
:label="
|
" prop="BodyPartExamined" min-width="120" show-overflow-tooltip sortable="custom" />
|
||||||
$t('trials:visit:crcUpload:uploadDicomPacs:table:bodyPartExamined')
|
|
||||||
"
|
|
||||||
prop="BodyPartExamined"
|
|
||||||
min-width="120"
|
|
||||||
show-overflow-tooltip
|
|
||||||
sortable="custom"
|
|
||||||
/>
|
|
||||||
<!--检查描述-->
|
<!--检查描述-->
|
||||||
<el-table-column
|
<el-table-column :label="$t('trials:visit:crcUpload:uploadDicomPacs:table:description')
|
||||||
:label="
|
" prop="Description" min-width="160" show-overflow-tooltip sortable="custom" />
|
||||||
$t('trials:visit:crcUpload:uploadDicomPacs:table:description')
|
|
||||||
"
|
|
||||||
prop="Description"
|
|
||||||
min-width="160"
|
|
||||||
show-overflow-tooltip
|
|
||||||
sortable="custom"
|
|
||||||
/>
|
|
||||||
<!--序列数量-->
|
<!--序列数量-->
|
||||||
<el-table-column
|
<el-table-column :label="$t('trials:visit:crcUpload:uploadDicomPacs:table:seriesCount')
|
||||||
:label="
|
" prop="SeriesCount" show-overflow-tooltip sortable="custom" />
|
||||||
$t('trials:visit:crcUpload:uploadDicomPacs:table:seriesCount')
|
|
||||||
"
|
|
||||||
prop="SeriesCount"
|
|
||||||
show-overflow-tooltip
|
|
||||||
sortable="custom"
|
|
||||||
/>
|
|
||||||
<!--图像数量-->
|
<!--图像数量-->
|
||||||
<el-table-column
|
<el-table-column :label="$t('trials:visit:crcUpload:uploadDicomPacs:table:instanceCount')
|
||||||
:label="
|
" prop="InstanceCount" show-overflow-tooltip sortable="custom" />
|
||||||
$t('trials:visit:crcUpload:uploadDicomPacs:table:instanceCount')
|
|
||||||
"
|
|
||||||
prop="InstanceCount"
|
|
||||||
show-overflow-tooltip
|
|
||||||
sortable="custom"
|
|
||||||
/>
|
|
||||||
<!--检查日期-->
|
<!--检查日期-->
|
||||||
<el-table-column
|
<el-table-column :label="$t('trials:visit:crcUpload:uploadDicomPacs:table:studyTime')" prop="StudyTime"
|
||||||
:label="$t('trials:visit:crcUpload:uploadDicomPacs:table:studyTime')"
|
min-width="160" show-overflow-tooltip sortable="custom" />
|
||||||
prop="StudyTime"
|
|
||||||
min-width="160"
|
|
||||||
show-overflow-tooltip
|
|
||||||
sortable="custom"
|
|
||||||
/>
|
|
||||||
<el-table-column :label="$t('common:action:action')" fixed="right">
|
<el-table-column :label="$t('common:action:action')" fixed="right">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
|
<el-button icon="el-icon-view" :title="$t('trials:uploadedDicoms:action:preview')" circle
|
||||||
|
@click="handleViewStudy(scope.row)" />
|
||||||
<!-- 添加 -->
|
<!-- 添加 -->
|
||||||
<el-button
|
<el-button :title="$t('common:button:add')" @click="handleAdd(scope.row)" icon="el-icon-plus" circle />
|
||||||
:title="$t('common:button:add')"
|
|
||||||
type="text"
|
|
||||||
@click="handleAdd(scope.row)"
|
|
||||||
>{{ $t("common:button:add") }}</el-button
|
|
||||||
>
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
<!-- 分页组件 -->
|
<!-- 分页组件 -->
|
||||||
<pagination
|
<pagination class="page" :total="total" :page.sync="searchData.PageIndex" :limit.sync="searchData.PageSize"
|
||||||
class="page"
|
@pagination="getList" />
|
||||||
:total="total"
|
|
||||||
:page.sync="searchData.PageIndex"
|
|
||||||
:limit.sync="searchData.PageSize"
|
|
||||||
@pagination="getList"
|
|
||||||
/>
|
|
||||||
</template>
|
</template>
|
||||||
</BaseContainer>
|
</BaseContainer>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import {
|
import {
|
||||||
getVisitPatientStudyFilterList,
|
getVisitPatientStudyFilterList,
|
||||||
submitVisitStudyBinding,
|
submitVisitStudyBinding,
|
||||||
|
@ -232,6 +132,7 @@ import {
|
||||||
import BaseContainer from "@/components/BaseContainer";
|
import BaseContainer from "@/components/BaseContainer";
|
||||||
import Pagination from "@/components/Pagination";
|
import Pagination from "@/components/Pagination";
|
||||||
import moment from "moment";
|
import moment from "moment";
|
||||||
|
import { getToken } from '@/utils/auth'
|
||||||
const searchDataDefault = () => {
|
const searchDataDefault = () => {
|
||||||
return {
|
return {
|
||||||
PatientInfo: null,
|
PatientInfo: null,
|
||||||
|
@ -282,6 +183,14 @@ export default {
|
||||||
this.getDicomModalityList();
|
this.getDicomModalityList();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
// 预览单个检查影像
|
||||||
|
handleViewStudy(row) {
|
||||||
|
var token = getToken()
|
||||||
|
const routeData = this.$router.resolve({
|
||||||
|
path: `/showdicom?studyId=${row.SCPStudyId}&TokenKey=${token}&type=Study&isPacs=1`,
|
||||||
|
})
|
||||||
|
window.open(routeData.href, '_blank')
|
||||||
|
},
|
||||||
// 校验上传数据
|
// 校验上传数据
|
||||||
async verifyPacsImage(arr) {
|
async verifyPacsImage(arr) {
|
||||||
try {
|
try {
|
||||||
|
@ -339,7 +248,7 @@ export default {
|
||||||
"trials:uploadDicomList:label:confirm"
|
"trials:uploadDicomList:label:confirm"
|
||||||
),
|
),
|
||||||
dangerouslyUseHTMLString: true,
|
dangerouslyUseHTMLString: true,
|
||||||
callback: (action) => {},
|
callback: (action) => { },
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
|
@ -469,5 +378,4 @@ export default {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
Loading…
Reference in New Issue