阅片跟踪添加靶段标注
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"> <template slot-scope="scope">
<div class="btnBox"> <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 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"
@ -69,7 +69,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"> <div class="btnBox" v-if="!forbid">
<span style="margin-right: 10px"> <span style="margin-right: 10px">
{{ $store.state.trials.uploadTip }} {{ $store.state.trials.uploadTip }}
</span> </span>
@ -354,6 +354,10 @@ export default {
return {} return {}
}, },
}, },
forbid: {
type: Boolean,
default: false,
},
TaskId: { TaskId: {
type: String, type: String,
default: '', default: '',

View File

@ -6,12 +6,12 @@
<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" /> :isReadingTaskViewInOrder="isReadingTaskViewInOrder" :IsImageSegment="IsImageSegment" :forbid="forbid" />
</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" :Criterion="Criterion" :VisitTaskId="VisitTaskId" :isUpload.sync="isUpload" :IsImageSegment="IsImageSegment"
:IsImageSegment="IsImageSegment" /> :forbid="forbid" />
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
</el-dialog> </el-dialog>
@ -29,6 +29,10 @@ export default {
type: Boolean, type: Boolean,
default: false, default: false,
}, },
forbid: {
type: Boolean,
default: false,
},
SubjectId: { SubjectId: {
type: String, type: String,
default: '', default: '',

View File

@ -109,7 +109,7 @@
<el-button circle :disabled="scope.row.UploadedFileCount <= 0" icon="el-icon-view" <el-button circle :disabled="scope.row.UploadedFileCount <= 0" icon="el-icon-view"
: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')" <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)" />
<!--删除---> <!--删除--->
<el-button :disabled="scope.row.UploadedFileCount <= 0 || <el-button :disabled="scope.row.UploadedFileCount <= 0 ||
@ -239,6 +239,10 @@ export default {
type: String, type: String,
default: '', default: '',
}, },
forbid: {
type: Boolean,
default: false,
},
SubjectCode: { SubjectCode: {
type: String, type: String,
default: '', default: '',

View File

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

View File

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