阅片跟踪添加靶段标注
continuous-integration/drone/push Build encountered an error Details

uat
wangxiaoshuang 2025-12-30 17:05:27 +08:00
parent 47594536f1
commit d21c01076d
5 changed files with 52 additions and 13 deletions

View File

@ -42,7 +42,7 @@
<template slot-scope="scope">
<div class="btnBox">
<!--上传--->
<form id="inputForm" :ref="`uploadForm_${scope.row.Id}`" enctype="multipart/form-data">
<form id="inputForm" :ref="`uploadForm_${scope.row.Id}`" enctype="multipart/form-data" v-if="!forbid">
<div class="form-group" style="margin-right: 10px">
<div :id="`directoryInputWrapper_${scope.row.Id}`" class="btn btn-link file-input">
<el-button circle icon="el-icon-upload2" :disabled="btnLoading" :loading="btnLoading"
@ -69,7 +69,7 @@
</el-table>
<div style="margin: 10px 0" class="top">
<span>{{ $t('upload:dicom:uploadTitle') }}</span>
<div class="btnBox">
<div class="btnBox" v-if="!forbid">
<span style="margin-right: 10px">
{{ $store.state.trials.uploadTip }}
</span>
@ -354,6 +354,10 @@ export default {
return {}
},
},
forbid: {
type: Boolean,
default: false,
},
TaskId: {
type: String,
default: '',

View File

@ -6,12 +6,12 @@
<el-tab-pane :label="$t('uploadDicomAndNonedicom:label:dicom')" name="dicom">
<dicomFile v-if="activeName === 'dicom'" :SubjectId="SubjectId" :SubjectCode="SubjectCode"
:Criterion="Criterion" :TaskId="VisitTaskId" :isUpload.sync="isUpload"
:isReadingTaskViewInOrder="isReadingTaskViewInOrder" :IsImageSegment="IsImageSegment" />
:isReadingTaskViewInOrder="isReadingTaskViewInOrder" :IsImageSegment="IsImageSegment" :forbid="forbid" />
</el-tab-pane>
<el-tab-pane :label="$t('uploadDicomAndNonedicom:label:nonedicom')" name="nonedicom">
<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"
:forbid="forbid" />
</el-tab-pane>
</el-tabs>
</el-dialog>
@ -29,6 +29,10 @@ export default {
type: Boolean,
default: false,
},
forbid: {
type: Boolean,
default: false,
},
SubjectId: {
type: String,
default: '',

View File

@ -109,7 +109,7 @@
<el-button circle :disabled="scope.row.UploadedFileCount <= 0" icon="el-icon-view"
:title="$t('upload:nonedicom:button:preview')" @click.stop="handlePreviewNoneDicomFiles(scope.row)" />
<!--上传--->
<el-button circle icon="el-icon-upload2" :title="$t('upload:nonedicom:button:upload')"
<el-button circle icon="el-icon-upload2" :title="$t('upload:nonedicom:button:upload')" v-if="!forbid"
@click.native.prevent="handleUpload(scope.row)" />
<!--删除--->
<el-button :disabled="scope.row.UploadedFileCount <= 0 ||
@ -239,6 +239,10 @@ export default {
type: String,
default: '',
},
forbid: {
type: Boolean,
default: false,
},
SubjectCode: {
type: String,
default: '',

View File

@ -69,12 +69,12 @@
: $t('trials:pendingReadingTasks:button:review')
" icon="el-icon-edit-outline" @click="handleReadImage(scope.row)" /> -->
<!-- 上传 -->
<el-button v-hasPermi="['role:ir']" circle icon="el-icon-upload2"
:title="$t('trials:pendingReadingTasks:button:upload')"
<el-button v-hasPermi="['role:ir', 'role:pm', 'role:apm']" circle
icon="el-icon-upload2" :title="$t('trials:pendingReadingTasks:button:upload')"
@click="openUploadImage(scope.row, 'upload')" />
<!-- 下载 -->
<el-button v-hasPermi="['role:ir']" circle icon="el-icon-download"
:title="$t('trials:pendingReadingTasks:button:download')"
<el-button v-hasPermi="['role:ir', 'role:pm', 'role:apm']" circle
icon="el-icon-download" :title="$t('trials:pendingReadingTasks:button:download')"
@click="openUploadImage(scope.row, 'download')" />
</template>
</el-table-column>
@ -84,7 +84,7 @@
</div>
<upload-dicom-and-nonedicom v-if="uploadImageVisible" :SubjectId="uploadSubjectId"
:SubjectCode="uploadSubjectCode" :Criterion="uploadTrialCriterion" :visible.sync="uploadImageVisible"
:IsImageSegment="true" />
:IsImageSegment="true" :forbid="forbid" />
<download-dicom-and-nonedicom v-if="downloadImageVisible" :SubjectId="uploadSubjectId"
:SubjectCode="uploadSubjectCode" :Criterion="uploadTrialCriterion" :visible.sync="downloadImageVisible"
:IsImageSegment="true" />
@ -121,6 +121,10 @@ export default {
default: () => {
return []
}
},
forbid: {
type: Boolean,
default: false
}
},
data() {

View File

@ -116,6 +116,11 @@
<el-button v-if="!viewStatus" type="primary" icon="el-icon-info" @click="handleViewRecord">
{{ $t('common:button:failureRecord') }}
</el-button>
<!-- 靶段标注 -->
<el-button type="primary" v-if="hasIVUSOROCT" v-hasPermi="['role:pm', 'role:apm']"
@click="handleTargetSection">
{{ $t('trials:pendingReadingTasks:button:TargetSection') }}
</el-button>
<!-- <el-button type="primary" @click="openReadingRules">-->
<!-- 阅片任务规则-->
<!-- </el-button>-->
@ -340,8 +345,8 @@
<el-table-column fixed="right" :label="$t('common:action:action')" width="220">
<template slot-scope="scope">
<!-- 查看阅片结果 -->
<el-button :disabled="scope.row.ReadingTaskState !== 2" icon="el-icon-view"
circle :title="$t('trials:reviewTrack:action:viewResults')" @click="lookReadingResults(scope.row)" />
<el-button :disabled="scope.row.ReadingTaskState !== 2" icon="el-icon-view" circle
:title="$t('trials:reviewTrack:action:viewResults')" @click="lookReadingResults(scope.row)" />
<!-- 申请重阅 -->
<el-button :disabled="scope.row.ReadingCategory !== 1 ||
(scope.row.TaskState !== 0 && scope.row.TaskState !== 5) ||
@ -860,6 +865,11 @@
custom-class="base-dialog-wrapper">
<RecordList />
</el-dialog>
<el-dialog :title="$t('trials:pendingReadingTasks:button:TargetSection')" :visible.sync="TargetSection_visible"
:fullscreen="true">
<TargetSection v-if="TargetSection_visible" :TrialReadingCriterionId="TrialReadingCriterionId" :forbid="true"
:trialCriterionList="trialCriterionList" />
</el-dialog>
</template>
</BaseContainer>
</template>
@ -884,6 +894,7 @@ import RefereeRules from './components/RefereeRules.vue'
import ReviewResults from './components/ReviewResults'
import ClinicalData from '../../subject/reading-period/components/ClinicalData'
import RecordList from './components/RecordList.vue'
import TargetSection from "@/views/trials/trials-panel/reading/reading-task/components/TargetSection"
const searchDataDefault = () => {
return {
PageIndex: 1,
@ -920,6 +931,7 @@ export default {
ClinicalData,
ReviewResults,
RecordList,
TargetSection
},
props: {
AllocationReadingCategory: {
@ -1031,6 +1043,13 @@ export default {
dialogLoading: false,
openWindow: null,
recordVisible: false,
TargetSection_visible: false
}
},
computed: {
hasIVUSOROCT() {
return this.trialCriterionList.some(item => item.CriterionType === 19 || item.CriterionType === 20)
}
},
mounted() {
@ -1065,6 +1084,10 @@ export default {
}
},
methods: {
handleTargetSection() {
this.TrialReadingCriterionId = this.trialCriterionList.find(item => item.CriterionType === 19 || item.CriterionType === 20).TrialReadingCriterionId
this.TargetSection_visible = true
},
//
openFeedBack(row) {
this.$FB({