Merge branch 'main' of http://192.168.3.68:2000/XCKJ/irc_web
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
commit
8e6b7d726b
|
@ -1909,7 +1909,11 @@ export default {
|
|||
}
|
||||
},
|
||||
handleCTSelectionChange(rows) {
|
||||
this.ctSeriesInfo = rows[0]
|
||||
if (rows.length > 0) {
|
||||
this.ctSeriesInfo = rows[0]
|
||||
} else {
|
||||
this.ctSeriesInfo = {}
|
||||
}
|
||||
},
|
||||
handleCTSelect(selection) {
|
||||
if (selection.length > 1) {
|
||||
|
@ -1924,7 +1928,11 @@ export default {
|
|||
}
|
||||
},
|
||||
handlePTSelectionChange(rows) {
|
||||
this.petSeriesInfo = rows[0]
|
||||
if (rows.length > 0) {
|
||||
this.petSeriesInfo = rows[0]
|
||||
} else {
|
||||
this.petSeriesInfo = {}
|
||||
}
|
||||
},
|
||||
handleSubmitFusionSeries() {
|
||||
this.$refs['fusionForm'].validate((valid) => {
|
||||
|
|
|
@ -2056,7 +2056,8 @@ export default {
|
|||
},
|
||||
startTimer() {
|
||||
timerId = setTimeout(() => {
|
||||
this.$confirm('当前pet-ct图像融合耗时过长,是否继续等待?', '提示', {
|
||||
// '当前pet-ct图像融合耗时过长,是否继续等待?'
|
||||
this.$confirm(this.$t('trials:lugano:message:fusionMsg'), this.$t('trials:lugano:message:fusiontip'), {
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
|
||||
|
|
|
@ -742,7 +742,7 @@ export default {
|
|||
// 普通靶病灶:长径大于10mm且不小于2倍层厚(基线校验)
|
||||
// 淋巴结靶病灶:短径大于15mm且不小于2倍层厚(基线校验)
|
||||
var picturePath = ''
|
||||
if (val) {
|
||||
if (val && otherMeasureData) {
|
||||
var pictureObj = await this.uploadScreenshots(`${new Date().getTime()}`, val)
|
||||
|
||||
picturePath = pictureObj.isSuccess ? pictureObj.result.url : ''
|
||||
|
|
|
@ -1962,7 +1962,7 @@ export default {
|
|||
// 普通靶病灶:长径大于10mm且不小于2倍层厚(基线校验)
|
||||
// 淋巴结靶病灶:短径大于15mm且不小于2倍层厚(基线校验)
|
||||
var picturePath = ''
|
||||
if (val) {
|
||||
if (val && measureData) {
|
||||
var pictureObj = await this.uploadScreenshots(`${new Date().getTime()}`, val)
|
||||
|
||||
picturePath = pictureObj.isSuccess ? pictureObj.result.url : ''
|
||||
|
|
|
@ -177,32 +177,61 @@
|
|||
{{ val }}
|
||||
</el-radio>
|
||||
</el-radio-group>
|
||||
<el-input
|
||||
v-if="qs.Type==='calculation'"
|
||||
v-model="questionForm[qs.Id]"
|
||||
disabled
|
||||
@change="((val)=>{formItemChange(val, qs)})"
|
||||
>
|
||||
<template v-if="qs.Unit" slot="append">
|
||||
{{ $fd('ValueUnit', parseInt(qs.Unit)) }}
|
||||
</template>
|
||||
</el-input>
|
||||
<template v-if="qs.QuestionMark === 20">
|
||||
<div style="display: flex;flex-direction: row;justify-content: flex-start;">
|
||||
<el-input
|
||||
v-if="qs.Type==='calculation'"
|
||||
v-model="questionForm[qs.Id]"
|
||||
disabled
|
||||
style="width:120px;"
|
||||
@change="((val)=>{formItemChange(val, qs)})"
|
||||
>
|
||||
<template v-if="qs.Unit" slot="append">
|
||||
{{ $fd('ValueUnit', parseInt(qs.Unit)) }}
|
||||
</template>
|
||||
</el-input>
|
||||
<viewer
|
||||
v-if="answers.OtherPicturePath"
|
||||
ref="viewer"
|
||||
style="margin:0 10px;"
|
||||
:images="[answers.OtherPicturePath]"
|
||||
>
|
||||
<span style="color:#409eff;cursor: pointer" @click="previewImage()">
|
||||
{{ $t('trials:lugano:button:suvscreenshot') }}
|
||||
</span>
|
||||
<img
|
||||
v-show="false"
|
||||
crossorigin="anonymous"
|
||||
:src="answers.OtherPicturePath"
|
||||
alt="Image"
|
||||
>
|
||||
</viewer>
|
||||
<!-- <img
|
||||
v-if="answers.OtherPicturePath"
|
||||
v-viewer
|
||||
:options="{ toolbar: false }"
|
||||
style="width: 25px; height: 25px; cursor: pointer;margin-left:10px;"
|
||||
crossorigin="anonymous"
|
||||
:src="answers.OtherPicturePath"
|
||||
alt="Image"
|
||||
class="suv_viewer"
|
||||
> -->
|
||||
<!-- <el-link v-if="answers.OtherPicturePath" type="primary" style="margin-left:10px;" @click="previewImage(answers.OtherPicturePath)">截图</el-link> -->
|
||||
</div>
|
||||
</template>
|
||||
<template v-else>
|
||||
<el-input
|
||||
v-if="qs.Type==='calculation'"
|
||||
v-model="questionForm[qs.Id]"
|
||||
disabled
|
||||
@change="((val)=>{formItemChange(val, qs)})"
|
||||
>
|
||||
<template v-if="qs.Unit" slot="append">
|
||||
{{ $fd('ValueUnit', parseInt(qs.Unit)) }}
|
||||
</template>
|
||||
</el-input>
|
||||
</template>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
v-if="answers.OtherPicturePath"
|
||||
label="SUV测量截图"
|
||||
/>
|
||||
<div v-if="answers.OtherPicturePath">
|
||||
<img
|
||||
v-viewer
|
||||
:options="{ toolbar: false }"
|
||||
style="width: 50px; height: 50px; cursor: pointer;"
|
||||
crossorigin="anonymous"
|
||||
:src="answers.OtherPicturePath"
|
||||
alt="Image"
|
||||
class="suv_viewer"
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-if="isCurrentTask && readingTaskState<2"
|
||||
|
@ -333,6 +362,10 @@ export default {
|
|||
toolbar: { zoomIn: true, zoomOut: true, rotateLeft: true, rotateRight: true, flipHorizontal: true, flipVertical: true }
|
||||
})
|
||||
},
|
||||
previewImage() {
|
||||
console.log(this.$refs.viewer[0])
|
||||
this.$refs.viewer[0].$viewer.show()
|
||||
},
|
||||
async initForm() {
|
||||
const loading = this.$loading({ fullscreen: true })
|
||||
this.questions.forEach(item => {
|
||||
|
@ -1546,7 +1579,7 @@ export default {
|
|||
// 普通靶病灶:长径大于10mm且不小于2倍层厚(基线校验)
|
||||
// 淋巴结靶病灶:短径大于15mm且不小于2倍层厚(基线校验)
|
||||
var picturePath = ''
|
||||
if (val) {
|
||||
if (val && measureData) {
|
||||
var pictureObj = await this.uploadScreenshots(`${new Date().getTime()}`, val)
|
||||
|
||||
picturePath = pictureObj.isSuccess ? pictureObj.result.url : ''
|
||||
|
|
|
@ -692,7 +692,7 @@ export default {
|
|||
const loading = this.$loading({ fullscreen: true })
|
||||
DicomEvent.$emit('getScreenshots', async val => {
|
||||
var picturePath = ''
|
||||
if (val) {
|
||||
if (val && measureData) {
|
||||
var pictureObj = await this.uploadScreenshots(`${new Date().getTime()}`, val)
|
||||
picturePath = pictureObj.isSuccess ? pictureObj.result.url : ''
|
||||
}
|
||||
|
|
|
@ -1324,7 +1324,7 @@ export default {
|
|||
// 普通靶病灶:长径大于10mm且不小于2倍层厚(基线校验)
|
||||
// 淋巴结靶病灶:短径大于15mm且不小于2倍层厚(基线校验)
|
||||
var picturePath = ''
|
||||
if (val) {
|
||||
if (val && measureData) {
|
||||
var pictureObj = await this.uploadScreenshots(`${new Date().getTime()}`, val)
|
||||
|
||||
picturePath = pictureObj.isSuccess ? pictureObj.result.url : ''
|
||||
|
|
|
@ -972,7 +972,7 @@ export default {
|
|||
|
||||
DicomEvent.$emit('getScreenshots', async val => {
|
||||
var picturePath = ''
|
||||
if (val) {
|
||||
if (val && measureData) {
|
||||
var pictureObj = await this.uploadScreenshots(`${new Date().getTime()}`, val)
|
||||
|
||||
picturePath = pictureObj.isSuccess ? pictureObj.result.url : ''
|
||||
|
|
|
@ -368,7 +368,8 @@ export default {
|
|||
if (isDiffer) {
|
||||
this.loading = false
|
||||
// '肿瘤学阅片结论不能为空!' this.$t('trials:oncologyReview:message:msg1'
|
||||
this.$confirm('肿瘤学阅片结果与影像学整体肿瘤评估不一致,请填写原因!', {
|
||||
// '肿瘤学阅片结果与影像学整体肿瘤评估不一致,请填写原因!'
|
||||
this.$confirm(this.$t('trials:oncologyReview:message:msg2'), {
|
||||
type: 'warning',
|
||||
distinguishCancelAndClose: true
|
||||
})
|
||||
|
|
|
@ -289,8 +289,33 @@
|
|||
:close-on-click-modal="false"
|
||||
custom-class="base-dialog-wrapper"
|
||||
>
|
||||
<div>
|
||||
{{ lookText }}
|
||||
<div style="max-height: 500px;overflow-y: auto;padding: 0 20px">
|
||||
<div style="display: flex;justify-content: space-around;margin-bottom: 20px">
|
||||
<span>{{$t('trials:uploadDicomList:table:FailedNumber')}}: {{lookText.Failed.length}}</span>
|
||||
<span>{{$t('trials:uploadDicomList:table:ExistedNumber')}}: {{lookText.Existed.length}}</span>
|
||||
<span>{{$t('trials:uploadDicomList:table:UploadedNumber')}}: {{lookText.Uploaded.length}}</span>
|
||||
</div>
|
||||
<div style="margin-bottom: 10px;font-size:12px">
|
||||
<div style="font-size: 14px;margin-bottom: 5px">{{$t('trials:uploadDicomList:table:Failed')}}:</div>
|
||||
<div v-if="lookText.Failed.length">
|
||||
<div v-for="item of lookText.Failed">{{item}}</div>
|
||||
</div>
|
||||
<div v-else>无</div>
|
||||
</div>
|
||||
<div style="margin-bottom: 10px;font-size:12px">
|
||||
<div style="font-size: 14px;margin-bottom: 5px">{{$t('trials:uploadDicomList:table:Existed')}}:</div>
|
||||
<div v-if="lookText.Existed.length">
|
||||
<div v-for="item of lookText.Existed">{{item}}</div>
|
||||
</div>
|
||||
<div v-else>无</div>
|
||||
</div>
|
||||
<div style="margin-bottom: 10px;font-size:12px">
|
||||
<div style="font-size: 14px;margin-bottom: 5px">{{$t('trials:uploadDicomList:table:Uploaded')}}:</div>
|
||||
<div v-if="lookText.Uploaded.length">
|
||||
<div v-for="item of lookText.Uploaded">{{item}}</div>
|
||||
</div>
|
||||
<div v-else>无</div>
|
||||
</div>
|
||||
</div>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<!-- 取消 -->
|
||||
|
|
|
@ -136,6 +136,7 @@
|
|||
<input
|
||||
type="file"
|
||||
name="file"
|
||||
ref="pathClear"
|
||||
:disabled="btnLoading"
|
||||
webkitdirectory
|
||||
multiple
|
||||
|
@ -277,27 +278,29 @@
|
|||
<template slot-scope="scope">
|
||||
<el-tooltip placement="top" v-if="scope.row.uploadState.record">
|
||||
<div slot="content">
|
||||
{{$t('trials:uploadDicomList:table:Existed')}}
|
||||
<div v-if="scope.row.uploadState.record.Existed.length">
|
||||
<span v-for="item of scope.row.uploadState.record.Existed">{{item}}</span>
|
||||
</div>
|
||||
<div v-else>
|
||||
无
|
||||
</div>
|
||||
{{$t('trials:uploadDicomList:table:Uploaded')}}
|
||||
<div v-if="scope.row.uploadState.record.Uploaded.length">
|
||||
<span v-for="item of scope.row.uploadState.record.Uploaded">{{item}}</span>
|
||||
</div>
|
||||
<div v-else>
|
||||
无
|
||||
</div>
|
||||
<br>
|
||||
{{$t('trials:uploadDicomList:table:Failed')}}
|
||||
<div v-if="scope.row.uploadState.record.Failed.length">
|
||||
<span v-for="item of scope.row.uploadState.record.Failed">{{item}}</span>
|
||||
</div>
|
||||
<div v-else>
|
||||
无
|
||||
<div style="max-height: 500px;overflow-y: auto">
|
||||
{{$t('trials:uploadDicomList:table:Existed')}}
|
||||
<div v-if="scope.row.uploadState.record.Existed.length">
|
||||
<span v-for="item of scope.row.uploadState.record.Existed">{{item}}</span>
|
||||
</div>
|
||||
<div v-else>
|
||||
无
|
||||
</div>
|
||||
{{$t('trials:uploadDicomList:table:Uploaded')}}
|
||||
<div v-if="scope.row.uploadState.record.Uploaded.length">
|
||||
<span v-for="item of scope.row.uploadState.record.Uploaded">{{item}}</span>
|
||||
</div>
|
||||
<div v-else>
|
||||
无
|
||||
</div>
|
||||
<br>
|
||||
{{$t('trials:uploadDicomList:table:Failed')}}
|
||||
<div v-if="scope.row.uploadState.record.Failed.length">
|
||||
<span v-for="item of scope.row.uploadState.record.Failed">{{item}}</span>
|
||||
</div>
|
||||
<div v-else>
|
||||
无
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="cursor: pointer">{{ scope.row.uploadState.record.Existed.length }}/{{ scope.row.uploadState.record.Uploaded.length }}/{{ scope.row.uploadState.record.Failed.length }}</div>
|
||||
|
@ -307,10 +310,11 @@
|
|||
<el-table-column v-show="isScan" :label="$t('common:action:action')" width="200">
|
||||
<template slot-scope="scope">
|
||||
<!-- 预览 -->
|
||||
<!-- :disabled="scope.row.dicomInfo.failedFileCount < scope.row.dicomInfo.fileCount && scope.row.dicomInfo.failedFileCount !== 0"-->
|
||||
<el-button
|
||||
icon="el-icon-view"
|
||||
circle
|
||||
:disabled="scope.row.dicomInfo.failedFileCount < scope.row.dicomInfo.fileCount && scope.row.dicomInfo.failedFileCount !== 0"
|
||||
:disabled="scope.row.uploadState.stateCode !== '' && (scope.row.dicomInfo.failedFileCount < scope.row.dicomInfo.fileCount && !scope.row.uploadState.record)"
|
||||
:title="$t('trials:uploadedDicoms:action:preview')"
|
||||
size="small"
|
||||
@click="handlePreview(scope.row.dicomInfo.studyUid)"
|
||||
|
@ -321,7 +325,7 @@
|
|||
circle
|
||||
:title="$t('trials:uploadedDicoms:action:delete')"
|
||||
size="small"
|
||||
:disabled="scope.row.uploadState.stateCode !== ''"
|
||||
:disabled="scope.row.uploadState.stateCode !== '' && (scope.row.dicomInfo.failedFileCount < scope.row.dicomInfo.fileCount && !scope.row.uploadState.record)"
|
||||
@click="handleDelete(scope.$index, scope.row)"
|
||||
/>
|
||||
</template>
|
||||
|
@ -960,7 +964,7 @@ export default {
|
|||
this.uploadQueues = this.uploadQueues.filter(v => {
|
||||
return !!v.uploadState.record.Failed.length
|
||||
})
|
||||
console.log(this.uploadQueues)
|
||||
this.$refs.pathClear.value = ''
|
||||
this.btnLoading = false
|
||||
}).catch(_ => { this.btnLoading = false })
|
||||
},
|
||||
|
@ -1046,9 +1050,9 @@ export default {
|
|||
}, 5000)
|
||||
scope.myInterval.push(t)
|
||||
let Record = {
|
||||
Failed: [],
|
||||
Existed: [],
|
||||
Uploaded: [],
|
||||
Failed: [],
|
||||
FileCount: 0
|
||||
}
|
||||
let params = {
|
||||
|
|
Loading…
Reference in New Issue