Merge branch 'main' of http://192.168.3.68:2000/XCKJ/irc_web
continuous-integration/drone/push Build is passing Details

uat_us
hang 2024-01-17 17:32:11 +08:00
commit 8e6b7d726b
11 changed files with 134 additions and 62 deletions

View File

@ -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) => {

View File

@ -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(() => {

View File

@ -742,7 +742,7 @@ export default {
// 10mm2线
// 15mm2线
var picturePath = ''
if (val) {
if (val && otherMeasureData) {
var pictureObj = await this.uploadScreenshots(`${new Date().getTime()}`, val)
picturePath = pictureObj.isSuccess ? pictureObj.result.url : ''

View File

@ -1962,7 +1962,7 @@ export default {
// 10mm2线
// 15mm2线
var picturePath = ''
if (val) {
if (val && measureData) {
var pictureObj = await this.uploadScreenshots(`${new Date().getTime()}`, val)
picturePath = pictureObj.isSuccess ? pictureObj.result.url : ''

View File

@ -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 {
// 10mm2线
// 15mm2线
var picturePath = ''
if (val) {
if (val && measureData) {
var pictureObj = await this.uploadScreenshots(`${new Date().getTime()}`, val)
picturePath = pictureObj.isSuccess ? pictureObj.result.url : ''

View File

@ -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 : ''
}

View File

@ -1324,7 +1324,7 @@ export default {
// 10mm2线
// 15mm2线
var picturePath = ''
if (val) {
if (val && measureData) {
var pictureObj = await this.uploadScreenshots(`${new Date().getTime()}`, val)
picturePath = pictureObj.isSuccess ? pictureObj.result.url : ''

View File

@ -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 : ''

View File

@ -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
})

View File

@ -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">
<!-- 取消 -->

View File

@ -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 = {