对于通过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({
|
||||
url: `/Study/item/${studyId}`,
|
||||
method: 'get'
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
export function getSeriesList(url) {
|
||||
|
|
|
@ -194,7 +194,8 @@ export default {
|
|||
currentLoadIns: [],
|
||||
isFromCRCUpload: false,
|
||||
isReading: null,
|
||||
activeSeriesId: null
|
||||
activeSeriesId: null,
|
||||
isPacs: false
|
||||
}
|
||||
},
|
||||
created: function () {
|
||||
|
@ -211,6 +212,9 @@ export default {
|
|||
if (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.isFromCRCUpload = !!this.$router.currentRoute.query.isFromCRCUpload
|
||||
if (this.type === 'Series') {
|
||||
|
@ -241,7 +245,11 @@ export default {
|
|||
},
|
||||
methods: {
|
||||
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.Result) {
|
||||
this.studyCode = data.Result.StudyCode
|
||||
|
@ -250,6 +258,11 @@ export default {
|
|||
this.description = data.Result.Description
|
||||
}
|
||||
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}`
|
||||
this.getSeriesList(url)
|
||||
}
|
||||
|
|
|
@ -3,96 +3,47 @@
|
|||
<template slot="search-container">
|
||||
<el-form :inline="true">
|
||||
<!--患者信息-->
|
||||
<el-form-item
|
||||
:label="
|
||||
$t('trials:visit:crcUpload:uploadDicomPacs:search:patientInfo')
|
||||
"
|
||||
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 :label="$t('trials:visit:crcUpload:uploadDicomPacs:search:patientInfo')
|
||||
" 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
|
||||
:label="
|
||||
$t('trials:visit:crcUpload:uploadDicomPacs:search:modalities')
|
||||
"
|
||||
prop="CalledAE"
|
||||
>
|
||||
<el-form-item :label="$t('trials:visit:crcUpload:uploadDicomPacs:search:modalities')
|
||||
" prop="CalledAE">
|
||||
<el-select v-model="searchData.Modalities" clearable>
|
||||
<el-option
|
||||
v-for="item of DicomModalityList"
|
||||
:key="item"
|
||||
:label="item"
|
||||
:value="item"
|
||||
>
|
||||
<el-option v-for="item of DicomModalityList" :key="item" :label="item" :value="item">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!--检查日期-->
|
||||
<el-form-item
|
||||
: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-form-item :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-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" @click="handleSearch">
|
||||
{{ $t("common:button:search") }}
|
||||
</el-button>
|
||||
<!-- 重置 -->
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-refresh-left"
|
||||
@click="handleReset"
|
||||
>
|
||||
<el-button type="primary" icon="el-icon-refresh-left" @click="handleReset">
|
||||
{{ $t("common:button:reset") }}
|
||||
</el-button>
|
||||
<!-- 添加 -->
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-plus"
|
||||
:disabled="tableSelectData.length <= 0"
|
||||
@click="handleAddList"
|
||||
>
|
||||
<el-button type="primary" icon="el-icon-plus" :disabled="tableSelectData.length <= 0" @click="handleAddList">
|
||||
{{ $t("common:button:add") }}
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</template>
|
||||
<template slot="main-container">
|
||||
<el-table
|
||||
v-loading="loading"
|
||||
:data="list"
|
||||
class="table"
|
||||
@selection-change="handleSelectChange"
|
||||
@sort-change="handleSortByColumn"
|
||||
:default-sort="{ prop: 'StudyTime', order: 'descending' }"
|
||||
>
|
||||
<el-table v-loading="loading" :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="index" width="50" />
|
||||
<!--患者信息-->
|
||||
<el-table-column
|
||||
:label="
|
||||
$t('trials:visit:crcUpload:uploadDicomPacs:table:patientMessage')
|
||||
"
|
||||
prop="PatientIdStr"
|
||||
min-width="140"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
>
|
||||
<el-table-column :label="$t('trials:visit:crcUpload:uploadDicomPacs:table:patientMessage')
|
||||
" prop="PatientIdStr" min-width="140" show-overflow-tooltip sortable="custom">
|
||||
<template slot="header">
|
||||
<el-tooltip placement="top">
|
||||
<div slot="content">
|
||||
|
@ -106,10 +57,8 @@
|
|||
<template slot-scope="scope">
|
||||
<div style="line-height: 15px">
|
||||
<div>
|
||||
<span v-if="scope.row.PatientIdStr"
|
||||
><span style="font-weight: 500">PID: </span
|
||||
>{{ scope.row.PatientIdStr }}</span
|
||||
>
|
||||
<span v-if="scope.row.PatientIdStr"><span style="font-weight: 500">PID: </span>{{ scope.row.PatientIdStr
|
||||
}}</span>
|
||||
<span v-else style="color: #f44336">N/A</span>
|
||||
</div>
|
||||
<div>
|
||||
|
@ -138,91 +87,42 @@
|
|||
</template>
|
||||
</el-table-column>
|
||||
<!--检查申请号-->
|
||||
<el-table-column
|
||||
:label="$t('trials:visit:crcUpload:uploadDicomPacs:table:accNumber')"
|
||||
prop="AccessionNumber"
|
||||
min-width="90"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
/>
|
||||
<el-table-column :label="$t('trials:visit:crcUpload:uploadDicomPacs:table:accNumber')" prop="AccessionNumber"
|
||||
min-width="90" show-overflow-tooltip sortable="custom" />
|
||||
<!--检查模态-->
|
||||
<el-table-column
|
||||
:label="$t('trials:visit:crcUpload:uploadDicomPacs:table:modalities')"
|
||||
prop="Modalities"
|
||||
min-width="120"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
/>
|
||||
<el-table-column :label="$t('trials:visit:crcUpload:uploadDicomPacs:table:modalities')" prop="Modalities"
|
||||
min-width="120" show-overflow-tooltip sortable="custom" />
|
||||
<!--检查部位-->
|
||||
<el-table-column
|
||||
:label="
|
||||
$t('trials:visit:crcUpload:uploadDicomPacs:table:bodyPartExamined')
|
||||
"
|
||||
prop="BodyPartExamined"
|
||||
min-width="120"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
/>
|
||||
<el-table-column :label="$t('trials:visit:crcUpload:uploadDicomPacs:table:bodyPartExamined')
|
||||
" prop="BodyPartExamined" min-width="120" show-overflow-tooltip sortable="custom" />
|
||||
<!--检查描述-->
|
||||
<el-table-column
|
||||
:label="
|
||||
$t('trials:visit:crcUpload:uploadDicomPacs:table:description')
|
||||
"
|
||||
prop="Description"
|
||||
min-width="160"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
/>
|
||||
<el-table-column :label="$t('trials:visit:crcUpload:uploadDicomPacs:table:description')
|
||||
" prop="Description" min-width="160" show-overflow-tooltip sortable="custom" />
|
||||
<!--序列数量-->
|
||||
<el-table-column
|
||||
:label="
|
||||
$t('trials:visit:crcUpload:uploadDicomPacs:table:seriesCount')
|
||||
"
|
||||
prop="SeriesCount"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
/>
|
||||
<el-table-column :label="$t('trials:visit:crcUpload:uploadDicomPacs:table:seriesCount')
|
||||
" prop="SeriesCount" show-overflow-tooltip sortable="custom" />
|
||||
<!--图像数量-->
|
||||
<el-table-column
|
||||
:label="
|
||||
$t('trials:visit:crcUpload:uploadDicomPacs:table:instanceCount')
|
||||
"
|
||||
prop="InstanceCount"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
/>
|
||||
<el-table-column :label="$t('trials:visit:crcUpload:uploadDicomPacs:table:instanceCount')
|
||||
" prop="InstanceCount" show-overflow-tooltip sortable="custom" />
|
||||
<!--检查日期-->
|
||||
<el-table-column
|
||||
:label="$t('trials:visit:crcUpload:uploadDicomPacs:table:studyTime')"
|
||||
prop="StudyTime"
|
||||
min-width="160"
|
||||
show-overflow-tooltip
|
||||
sortable="custom"
|
||||
/>
|
||||
<el-table-column :label="$t('trials:visit:crcUpload:uploadDicomPacs:table:studyTime')" prop="StudyTime"
|
||||
min-width="160" show-overflow-tooltip sortable="custom" />
|
||||
<el-table-column :label="$t('common:action:action')" fixed="right">
|
||||
<template slot-scope="scope">
|
||||
<el-button icon="el-icon-view" :title="$t('trials:uploadedDicoms:action:preview')" circle
|
||||
@click="handleViewStudy(scope.row)" />
|
||||
<!-- 添加 -->
|
||||
<el-button
|
||||
:title="$t('common:button:add')"
|
||||
type="text"
|
||||
@click="handleAdd(scope.row)"
|
||||
>{{ $t("common:button:add") }}</el-button
|
||||
>
|
||||
<el-button :title="$t('common:button:add')" @click="handleAdd(scope.row)" icon="el-icon-plus" circle />
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!-- 分页组件 -->
|
||||
<pagination
|
||||
class="page"
|
||||
:total="total"
|
||||
:page.sync="searchData.PageIndex"
|
||||
:limit.sync="searchData.PageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
<pagination class="page" :total="total" :page.sync="searchData.PageIndex" :limit.sync="searchData.PageSize"
|
||||
@pagination="getList" />
|
||||
</template>
|
||||
</BaseContainer>
|
||||
</template>
|
||||
<script>
|
||||
<script>
|
||||
import {
|
||||
getVisitPatientStudyFilterList,
|
||||
submitVisitStudyBinding,
|
||||
|
@ -232,6 +132,7 @@ import {
|
|||
import BaseContainer from "@/components/BaseContainer";
|
||||
import Pagination from "@/components/Pagination";
|
||||
import moment from "moment";
|
||||
import { getToken } from '@/utils/auth'
|
||||
const searchDataDefault = () => {
|
||||
return {
|
||||
PatientInfo: null,
|
||||
|
@ -282,6 +183,14 @@ export default {
|
|||
this.getDicomModalityList();
|
||||
},
|
||||
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) {
|
||||
try {
|
||||
|
@ -339,7 +248,7 @@ export default {
|
|||
"trials:uploadDicomList:label:confirm"
|
||||
),
|
||||
dangerouslyUseHTMLString: true,
|
||||
callback: (action) => {},
|
||||
callback: (action) => { },
|
||||
}
|
||||
);
|
||||
this.loading = false;
|
||||
|
@ -469,5 +378,4 @@ export default {
|
|||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
</script>
|
Loading…
Reference in New Issue