阅片中上传影像需要在下载影像后才能上传
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
6ecc0e58e9
commit
78624d9cce
|
|
@ -141,6 +141,10 @@ export default {
|
||||||
type: Number,
|
type: Number,
|
||||||
default: 2,
|
default: 2,
|
||||||
},
|
},
|
||||||
|
isReading: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
|
@ -442,6 +446,9 @@ export default {
|
||||||
let params = {
|
let params = {
|
||||||
TrialImageDownloadId: this.downloadId,
|
TrialImageDownloadId: this.downloadId,
|
||||||
}
|
}
|
||||||
|
if (this.isReading) {
|
||||||
|
params.VisitTaskId = this.TaskId
|
||||||
|
}
|
||||||
await downloadImageSuccess(params)
|
await downloadImageSuccess(params)
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log(err)
|
console.log(err)
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,8 @@
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<div class="btnBox">
|
<div class="btnBox">
|
||||||
<!--上传--->
|
<!--上传--->
|
||||||
<form id="inputForm" :ref="`uploadForm_${scope.row.Id}`" enctype="multipart/form-data" v-if="!forbid">
|
<form id="inputForm" :ref="`uploadForm_${scope.row.Id}`" enctype="multipart/form-data"
|
||||||
|
v-if="!forbid && (!isReading || isDownloaded)">
|
||||||
<div class="form-group" style="margin-right: 10px">
|
<div class="form-group" style="margin-right: 10px">
|
||||||
<div :id="`directoryInputWrapper_${scope.row.Id}`" class="btn btn-link file-input">
|
<div :id="`directoryInputWrapper_${scope.row.Id}`" class="btn btn-link file-input">
|
||||||
<el-button circle icon="el-icon-upload2" :disabled="btnLoading" :loading="btnLoading"
|
<el-button circle icon="el-icon-upload2" :disabled="btnLoading" :loading="btnLoading"
|
||||||
|
|
@ -70,7 +71,7 @@
|
||||||
</el-table>
|
</el-table>
|
||||||
<div style="margin: 10px 0" class="top">
|
<div style="margin: 10px 0" class="top">
|
||||||
<span>{{ $t('upload:dicom:uploadTitle') }}</span>
|
<span>{{ $t('upload:dicom:uploadTitle') }}</span>
|
||||||
<div class="btnBox" v-if="!forbid">
|
<div class="btnBox" v-if="!forbid && (!isReading || isDownloaded)">
|
||||||
<span style="margin-right: 10px">{{ $store.state.trials.uploadTip }}</span>
|
<span style="margin-right: 10px">{{ $store.state.trials.uploadTip }}</span>
|
||||||
<form id="inputForm" ref="uploadForm" enctype="multipart/form-data">
|
<form id="inputForm" ref="uploadForm" enctype="multipart/form-data">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
|
|
@ -379,6 +380,10 @@ export default {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false,
|
default: false,
|
||||||
},
|
},
|
||||||
|
isReading: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
|
}
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
'study-view': studyView,
|
'study-view': studyView,
|
||||||
|
|
@ -428,7 +433,8 @@ export default {
|
||||||
openSubjectVisitId: null,
|
openSubjectVisitId: null,
|
||||||
openVisitTaskId: null,
|
openVisitTaskId: null,
|
||||||
TrialModality: [],
|
TrialModality: [],
|
||||||
IsReadingTaskViewInOrder: 2
|
IsReadingTaskViewInOrder: 2,
|
||||||
|
isDownloaded: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
async mounted() {
|
async mounted() {
|
||||||
|
|
@ -471,6 +477,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.isDownloaded = res.OtherInfo.IsIRImageDownloaded
|
||||||
this.TrialModality = res.OtherInfo.TrialModality.split('|')
|
this.TrialModality = res.OtherInfo.TrialModality.split('|')
|
||||||
this.IsReadingTaskViewInOrder = res.OtherInfo.IsReadingTaskViewInOrder || res.OtherInfo.IsReadingTaskViewInOrder === 0 ? res.OtherInfo.IsReadingTaskViewInOrder : 2
|
this.IsReadingTaskViewInOrder = res.OtherInfo.IsReadingTaskViewInOrder || res.OtherInfo.IsReadingTaskViewInOrder === 0 ? res.OtherInfo.IsReadingTaskViewInOrder : 2
|
||||||
this.StudyInstanceUidList = []
|
this.StudyInstanceUidList = []
|
||||||
|
|
|
||||||
|
|
@ -6,12 +6,13 @@
|
||||||
<el-tab-pane :label="$t('uploadDicomAndNonedicom:label:dicom')" name="dicom">
|
<el-tab-pane :label="$t('uploadDicomAndNonedicom:label:dicom')" name="dicom">
|
||||||
<dicomFile v-if="activeName === 'dicom'" :SubjectId="SubjectId" :SubjectCode="SubjectCode"
|
<dicomFile v-if="activeName === 'dicom'" :SubjectId="SubjectId" :SubjectCode="SubjectCode"
|
||||||
:Criterion="Criterion" :TaskId="VisitTaskId" :isUpload.sync="isUpload"
|
:Criterion="Criterion" :TaskId="VisitTaskId" :isUpload.sync="isUpload"
|
||||||
:isReadingTaskViewInOrder="isReadingTaskViewInOrder" :IsImageSegment="IsImageSegment" :forbid="forbid" />
|
:isReadingTaskViewInOrder="isReadingTaskViewInOrder" :IsImageSegment="IsImageSegment" :forbid="forbid"
|
||||||
|
:isReading="isReading" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane :label="$t('uploadDicomAndNonedicom:label:nonedicom')" name="nonedicom">
|
<el-tab-pane :label="$t('uploadDicomAndNonedicom:label:nonedicom')" name="nonedicom">
|
||||||
<nonedicomFile v-if="activeName === 'nonedicom'" :SubjectId="SubjectId" :SubjectCode="SubjectCode"
|
<nonedicomFile v-if="activeName === 'nonedicom'" :SubjectId="SubjectId" :SubjectCode="SubjectCode"
|
||||||
:Criterion="Criterion" :VisitTaskId="VisitTaskId" :isUpload.sync="isUpload" :IsImageSegment="IsImageSegment"
|
:Criterion="Criterion" :VisitTaskId="VisitTaskId" :isUpload.sync="isUpload" :IsImageSegment="IsImageSegment"
|
||||||
:isReadingTaskViewInOrder="isReadingTaskViewInOrder" :forbid="forbid" />
|
:isReadingTaskViewInOrder="isReadingTaskViewInOrder" :forbid="forbid" :isReading="isReading" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
@ -58,6 +59,10 @@ export default {
|
||||||
IsImageSegment: {
|
IsImageSegment: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false,
|
default: false,
|
||||||
|
},
|
||||||
|
isReading: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
|
|
|
||||||
|
|
@ -111,7 +111,7 @@
|
||||||
:title="$t('upload:nonedicom:button:preview')" @click.stop="handlePreviewNoneDicomFiles(scope.row)" />
|
:title="$t('upload:nonedicom:button:preview')" @click.stop="handlePreviewNoneDicomFiles(scope.row)" />
|
||||||
<!--上传--->
|
<!--上传--->
|
||||||
<el-button circle icon="el-icon-upload2" :title="$t('upload:nonedicom:button:upload')" v-if="!forbid"
|
<el-button circle icon="el-icon-upload2" :title="$t('upload:nonedicom:button:upload')" v-if="!forbid"
|
||||||
@click.native.prevent="handleUpload(scope.row)" />
|
@click.native.prevent="handleUpload(scope.row)" :disabled="isReading && !isDownloaded" />
|
||||||
<!--删除--->
|
<!--删除--->
|
||||||
<el-button :disabled="scope.row.UploadedFileCount <= 0 ||
|
<el-button :disabled="scope.row.UploadedFileCount <= 0 ||
|
||||||
scope.row.ReadingTaskState === 2
|
scope.row.ReadingTaskState === 2
|
||||||
|
|
@ -270,6 +270,10 @@ export default {
|
||||||
type: Number,
|
type: Number,
|
||||||
default: 0,
|
default: 0,
|
||||||
},
|
},
|
||||||
|
isReading: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
|
@ -291,7 +295,8 @@ export default {
|
||||||
BodyPart: {},
|
BodyPart: {},
|
||||||
relationInfo: {
|
relationInfo: {
|
||||||
ImageFormatList: []
|
ImageFormatList: []
|
||||||
}
|
},
|
||||||
|
isDownloaded: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
|
|
@ -348,6 +353,7 @@ export default {
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
this.list = res.Result
|
this.list = res.Result
|
||||||
this.relationInfo = res.OtherInfo
|
this.relationInfo = res.OtherInfo
|
||||||
|
this.isDownloaded = res.OtherInfo.IsIRImageDownloaded
|
||||||
this.faccept = []
|
this.faccept = []
|
||||||
this.relationInfo.ImageFormatList.forEach((item) => {
|
this.relationInfo.ImageFormatList.forEach((item) => {
|
||||||
this.faccept.push(`.${item}`)
|
this.faccept.push(`.${item}`)
|
||||||
|
|
|
||||||
|
|
@ -218,9 +218,9 @@
|
||||||
<div class="text">{{ $t('trials:reading:button:screenShot') }}</div>
|
<div class="text">{{ $t('trials:reading:button:screenShot') }}</div>
|
||||||
</div>
|
</div>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
|
|
||||||
<el-popover v-model="keySeriesPopoverVisible" placement="bottom" trigger="click" popper-class="key-series-popper"
|
<el-popover v-model="keySeriesPopoverVisible" placement="bottom" trigger="click"
|
||||||
@show="showKeySeriesPanel">
|
popper-class="key-series-popper" @show="showKeySeriesPanel">
|
||||||
<ul class="key-series-list">
|
<ul class="key-series-list">
|
||||||
<li v-if="keyStack && keyStack.taskBlindName" class="key-series-header">
|
<li v-if="keyStack && keyStack.taskBlindName" class="key-series-header">
|
||||||
<div class="key-series-header-top">
|
<div class="key-series-header-top">
|
||||||
|
|
@ -563,7 +563,7 @@
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</transition>
|
</transition>
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -596,7 +596,7 @@
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<!-- 其他 -->
|
<!-- 其他 -->
|
||||||
<el-tab-pane :label="$t('trials:reading:tab:others')" name="3">
|
<el-tab-pane :label="$t('trials:reading:tab:others')" name="3">
|
||||||
<Others v-if="activeName === '3'" :imageToolType="1"/>
|
<Others v-if="activeName === '3'" :imageToolType="1" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
|
|
||||||
|
|
@ -708,10 +708,10 @@
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
<upload-dicom-and-nonedicom v-if="uploadImageVisible" :subject-id="uploadSubjectId"
|
<upload-dicom-and-nonedicom v-if="uploadImageVisible" :subject-id="uploadSubjectId"
|
||||||
:subject-code="uploadSubjectCode" :criterion="uploadTrialCriterion" :visible.sync="uploadImageVisible"
|
:subject-code="uploadSubjectCode" :criterion="uploadTrialCriterion" :visible.sync="uploadImageVisible"
|
||||||
:visit-task-id="taskId" :is-reading-task-view-in-order="isReadingTaskViewInOrder" />
|
:visit-task-id="taskId" :is-reading-task-view-in-order="isReadingTaskViewInOrder" :isReading="true" />
|
||||||
<download-dicom-and-nonedicom v-if="downloadImageVisible" :subject-id="uploadSubjectId"
|
<download-dicom-and-nonedicom v-if="downloadImageVisible" :subject-id="uploadSubjectId"
|
||||||
:subject-code="uploadSubjectCode" :criterion="uploadTrialCriterion" :task-id="taskId"
|
:subject-code="uploadSubjectCode" :criterion="uploadTrialCriterion" :task-id="taskId"
|
||||||
:visible.sync="downloadImageVisible" />
|
:visible.sync="downloadImageVisible" :isReading="true" />
|
||||||
<!-- 签名框 -->
|
<!-- 签名框 -->
|
||||||
<el-dialog v-if="signVisible" :visible.sync="signVisible" :close-on-click-modal="false" width="600px"
|
<el-dialog v-if="signVisible" :visible.sync="signVisible" :close-on-click-modal="false" width="600px"
|
||||||
custom-class="base-dialog-wrapper">
|
custom-class="base-dialog-wrapper">
|
||||||
|
|
@ -1129,7 +1129,7 @@ export default {
|
||||||
DicomEvent.$on('imageLocation', async (measuredData) => {
|
DicomEvent.$on('imageLocation', async (measuredData) => {
|
||||||
return new Promise(async resolve => {
|
return new Promise(async resolve => {
|
||||||
if (!measuredData) return
|
if (!measuredData) return
|
||||||
|
|
||||||
await this.imageLocation(measuredData)
|
await this.imageLocation(measuredData)
|
||||||
resolve()
|
resolve()
|
||||||
})
|
})
|
||||||
|
|
@ -1197,7 +1197,7 @@ export default {
|
||||||
} else if (this.CriterionType === 22) {
|
} else if (this.CriterionType === 22) {
|
||||||
this.setToolActive('Probe', true, null, 'tableQuestion')
|
this.setToolActive('Probe', true, null, 'tableQuestion')
|
||||||
}
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
window.addEventListener('beforeunload', () => {
|
window.addEventListener('beforeunload', () => {
|
||||||
if (this.petctWindow) {
|
if (this.petctWindow) {
|
||||||
|
|
@ -1451,7 +1451,7 @@ export default {
|
||||||
// } catch (err) {
|
// } catch (err) {
|
||||||
// console.error(err)
|
// console.error(err)
|
||||||
// }
|
// }
|
||||||
const series = this.getSeriesInfoByMark(visitTaskId, {lesionName: kf.MarkName})
|
const series = this.getSeriesInfoByMark(visitTaskId, { lesionName: kf.MarkName })
|
||||||
if (!series) return
|
if (!series) return
|
||||||
this.loadImageStack(series)
|
this.loadImageStack(series)
|
||||||
},
|
},
|
||||||
|
|
@ -2496,7 +2496,7 @@ export default {
|
||||||
this.readingTaskState = 2
|
this.readingTaskState = 2
|
||||||
await store.dispatch('reading/setVisitTaskReadingTaskState', { visitTaskId: this.visitTaskId, readingTaskState: 2 })
|
await store.dispatch('reading/setVisitTaskReadingTaskState', { visitTaskId: this.visitTaskId, readingTaskState: 2 })
|
||||||
await store.dispatch('reading/setCurrentReadingTaskState', 2)
|
await store.dispatch('reading/setCurrentReadingTaskState', 2)
|
||||||
const res = await getAutoCutNextTask({imageToolType: 1})
|
const res = await getAutoCutNextTask({ imageToolType: 1 })
|
||||||
var isAutoTask = res.Result.AutoCutNextTask
|
var isAutoTask = res.Result.AutoCutNextTask
|
||||||
if (isAutoTask) {
|
if (isAutoTask) {
|
||||||
window.location.reload()
|
window.location.reload()
|
||||||
|
|
@ -2609,7 +2609,7 @@ export default {
|
||||||
await this.$confirm(this.$t('trials:lugano:fusionDialog:message:checkSeries'), this.$t('trials:lugano:fusionDialog:warning'), {
|
await this.$confirm(this.$t('trials:lugano:fusionDialog:message:checkSeries'), this.$t('trials:lugano:fusionDialog:warning'), {
|
||||||
showCancelButton: false,
|
showCancelButton: false,
|
||||||
type: 'warning'
|
type: 'warning'
|
||||||
}).catch(() => {})
|
}).catch(() => { })
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (this.ctSeriesInfo.instanceCount > 400) {
|
if (this.ctSeriesInfo.instanceCount > 400) {
|
||||||
|
|
|
||||||
|
|
@ -582,10 +582,11 @@
|
||||||
:renderingEngineId="renderingEngineId" :visitInfo="taskInfo" /> -->
|
:renderingEngineId="renderingEngineId" :visitInfo="taskInfo" /> -->
|
||||||
<upload-dicom-and-nonedicom v-if="uploadImageVisible" :subject-id="uploadSubjectId"
|
<upload-dicom-and-nonedicom v-if="uploadImageVisible" :subject-id="uploadSubjectId"
|
||||||
:subject-code="uploadSubjectCode" :criterion="uploadTrialCriterion" :visible.sync="uploadImageVisible"
|
:subject-code="uploadSubjectCode" :criterion="uploadTrialCriterion" :visible.sync="uploadImageVisible"
|
||||||
:visit-task-id="taskId" :is-reading-task-view-in-order="isReadingTaskViewInOrder" />
|
:visit-task-id="taskId" :is-reading-task-view-in-order="isReadingTaskViewInOrder" :isReading="true" />
|
||||||
<download-dicom-and-nonedicom v-if="downloadImageVisible" :subject-id="uploadSubjectId"
|
<download-dicom-and-nonedicom v-if="downloadImageVisible" :subject-id="uploadSubjectId"
|
||||||
:subject-code="uploadSubjectCode" :criterion="uploadTrialCriterion" :task-id="taskId"
|
:subject-code="uploadSubjectCode" :criterion="uploadTrialCriterion" :task-id="taskId"
|
||||||
:visible.sync="downloadImageVisible" :is-reading-task-view-in-order="isReadingTaskViewInOrder" />
|
:visible.sync="downloadImageVisible" :is-reading-task-view-in-order="isReadingTaskViewInOrder"
|
||||||
|
:isReading="true" />
|
||||||
<readingChart ref="readingChart" />
|
<readingChart ref="readingChart" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue