TNM分期
continuous-integration/drone/push Build is passing Details

main
wangxiaoshuang 2025-08-29 11:09:25 +08:00
parent 05b7e2e8e2
commit 7854159587
2 changed files with 101 additions and 3 deletions

View File

@ -248,3 +248,19 @@ export function clearSkipReadingCache(param) {
data: param
})
}
// 获取tnm
export function getTNMValue(param) {
return request({
url: `/ReadingImageTask/getTNMValue`,
method: 'post',
data: param
})
}
// 设置tnm
export function setTNMValue(param) {
return request({
url: `/ReadingImageTask/setTNMValue`,
method: 'post',
data: param
})
}

View File

@ -3,7 +3,13 @@
<el-card v-loading="loading" shadow="never">
<div slot="header" class="clearfix report-header">
<!-- 电子影像病例报告表eICRF -->
<h3 style="margin:0;padding:0;">{{ $t('trials:readingReport:title:eicrf') }}</h3>
<div style="display: flex;align-items: center;">
<h3 style="margin:0;padding:0;margin-right: 10px;">{{ $t('trials:readingReport:title:eicrf') }}</h3>
<el-button v-if="readingTaskState < 2" type="primary" size="small" @click="openTNM">
<!-- TNM分期 -->
{{ $t('trials:readingReport:button:tnm') }}
</el-button>
</div>
<div style="margin-left:auto">
<el-switch v-model="isShowDetail" :active-text="$t('trials:readingReport:title:expandDetails')"
:inactive-text="$t('trials:readingReport:title:collapseDetails')" style="margin-right:5px;"
@ -204,11 +210,38 @@
</el-dialog>
<!--评估报告-->
<PreviewFileDialog :visible.sync="previewFileVisible" :fileData="fileData" />
<!-- tnm分期 -->
<el-dialog v-if="TnmVisible" :visible.sync="TnmVisible" :close-on-click-modal="false" width="600px"
custom-class="base-dialog-wrapper">
<div slot="title">
<span style="font-size:18px;">{{ $t('common:dialogTitle:TNM') }}</span>
</div>
<el-form ref="wlForm" v-loading="loading" :model="TnmForm" label-width="80px" size="small">
<!-- 名称 -->
<el-form-item :label="$t('trials:reading:label:wlTplName')" v-show="false">
<el-input v-model="TnmForm.TNMValue" />
</el-form-item>
<!-- 名称 -->
<el-form-item :label="$t('trials:reading:label:TNMValue')" prop="TemplateName">
<el-input v-model="TnmForm.TNMValue" />
</el-form-item>
<el-form-item style="text-align:right;">
<!-- Cancel -->
<el-button type="primary" @click="handleTnmCancel">
{{ $t('common:button:cancel') }}
</el-button>
<!-- Save -->
<el-button type="primary" @click="setTNMValue">
{{ $t('common:button:save') }}
</el-button>
</el-form-item>
</el-form>
</el-dialog>
</div>
</template>
<script>
import { getReadingReportEvaluation, changeDicomReadingQuestionAnswer, submitDicomVisitTask, verifyVisitTaskQuestions, getTaskAdditionalQuestion } from '@/api/trials'
import { setSkipReadingCache } from '@/api/reading'
import { setSkipReadingCache, setTNMValue, getTNMValue } from '@/api/reading'
import { getAutoCutNextTask } from '@/api/user'
import DicomEvent from './DicomEvent'
import const_ from '@/const/sign-code'
@ -263,7 +296,13 @@ export default {
openWindow: null,
reportBtnLoading: false,
previewFileVisible: false,
fileData: {}
fileData: {},
TnmForm: {
TNMValue: null,
VisitTaskId: null
},
TnmVisible: false
}
},
computed: {
@ -304,6 +343,44 @@ export default {
}
},
methods: {
async getTNMValue() {
try {
let data = {
VisitTaskId: this.visitTaskId
}
let res = await getTNMValue(data)
if (res.IsSuccess) {
this.TnmForm = res.Result
return res.Result.TnmValue
}
return false
} catch (err) {
console.log(err)
return false
}
},
async setTNMValue() {
try {
this.TnmForm.VisitTaskId = this.visitTaskId
this.loading = true
let res = await setTNMValue(this.TnmForm)
this.loading = false
if (res.IsSuccess) {
this.$message.success(this.$t('common:message:savedSuccessfully'))
this.handleTnmCancel()
}
} catch (err) {
this.loading = false
console.log(err)
}
},
handleTnmCancel() {
this.TnmVisible = false
},
async openTNM() {
await this.getTNMValue()
this.TnmVisible = true
},
//
async showReport(key) {
if (this.reportBtnLoading) return;
@ -600,6 +677,11 @@ export default {
try {
await this.handleSave(false)
await verifyVisitTaskQuestions({ visitTaskId: this.visitTaskId })
let tnm = await this.getTNMValue()
if (!tnm) {
let confirm = await this.$confirm(this.$t('trials:readingReport:message:noTnm'))
if (!confirm) return false
}
var i = this.visitTaskList.findIndex(i => i.VisitTaskId === this.visitTaskId)
var isBaseline = this.visitTaskList[i].IsBaseLine
if (isBaseline) {