新增疗效评估报告
continuous-integration/drone/push Build is passing Details

main
wangxiaoshuang 2025-03-25 14:40:48 +08:00
parent 3bfab54ef1
commit 886d148b31
5 changed files with 61 additions and 21 deletions

View File

@ -178,7 +178,14 @@ export function showReadReport(data) {
data data
}) })
} }
// 预览肿瘤报告
export function showTumorReport(data) {
return request({
url: `/ReadingImageTask/getTumorEvaluationUrl`,
method: 'post',
data
})
}
export function getCommonEvaluationList_Export(data) { export function getCommonEvaluationList_Export(data) {
return requestDownload({ return requestDownload({
url: `/ExcelExport/getCommonEvaluationList_Export`, url: `/ExcelExport/getCommonEvaluationList_Export`,

View File

@ -30,8 +30,9 @@
<!-- 刷新 --> <!-- 刷新 -->
{{ $t('trials:readingReport:button:refresh') }} {{ $t('trials:readingReport:button:refresh') }}
</el-button> </el-button>
<el-button :loading="reportBtnLoading" v-if="readingTaskState>=2" type="primary" size="small" @click="showReport">{{$t('trials:dicoms:button:evaluationReport')}}</el-button> <el-button :loading="reportBtnLoading" v-if="readingTaskState>=2" type="primary" size="small" @click="showReport('evaluate')">{{$t('trials:dicoms:button:evaluationReport')}}</el-button>
<el-button <el-button :loading="reportBtnLoading" v-if="readingTaskState>=2" type="primary" size="small" @click="showReport('tumor')">{{$t('trials:dicoms:button:tumorReport')}}</el-button>
<el-button
v-if="readingTaskState<2 && CriterionType !== 10" v-if="readingTaskState<2 && CriterionType !== 10"
type="primary" type="primary"
size="small" size="small"
@ -286,7 +287,7 @@ import store from '@/store'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import { changeURLStatic } from '@/utils/history.js' import { changeURLStatic } from '@/utils/history.js'
import AdditionalAssessment from './AdditionalAssessment' import AdditionalAssessment from './AdditionalAssessment'
import { showReadReport } from "@/api/export"; import { showReadReport,showTumorReport } from "@/api/export";
import PreviewFileDialog from "@/components/PreviewFileDialog/PreviewFileDialog"; import PreviewFileDialog from "@/components/PreviewFileDialog/PreviewFileDialog";
export default { export default {
name: 'ReportPage', name: 'ReportPage',
@ -371,14 +372,19 @@ export default {
}, },
methods: { methods: {
// //
async showReport(){ async showReport(key){
if(this.reportBtnLoading) return; if(this.reportBtnLoading) return;
let data = { let data = {
VisitTaskId: this.visitTaskId, VisitTaskId: this.visitTaskId,
}; };
try { try {
this.reportBtnLoading = true; this.reportBtnLoading = true;
let res = await showReadReport(data); let res = null;
if(key === 'evaluate'){
res = await showReadReport(data);
}else{
res = await showTumorReport(data);
}
// let urlPdf = window.URL.createObjectURL(new Blob([res])) // let urlPdf = window.URL.createObjectURL(new Blob([res]))
if(res.IsSuccess){ if(res.IsSuccess){
this.viewVisible = true; this.viewVisible = true;

View File

@ -334,13 +334,22 @@
icon="el-icon-collection" icon="el-icon-collection"
@click="openApplyReReading(scope.row)" @click="openApplyReReading(scope.row)"
/> />
<!--评估报告--> <!--肿瘤负荷报告-->
<el-button <el-button
circle circle
v-hasPermi="['trials:readTask:report']" v-hasPermi="['trials:readTask:report']"
icon="el-icon-document" icon="el-icon-document"
:title="$t('trials:trials-panel:hirVisit:EvaluationReport')" :title="$t('trials:trials-panel:hirVisit:EvaluationReport')"
@click="handleCommand('showReport', scope.row)" @click="handleCommand('showReport', scope.row, 'evaluate')"
:disabled="scope.row.ReadingTaskState !== 2"
/>
<!--疗效评估报告-->
<el-button
circle
v-hasPermi="['trials:readTask:report']"
icon="el-icon-document"
:title="$t('trials:trials-panel:hirVisit:TumorReport')"
@click="handleCommand('showReport', scope.row, 'tumor')"
:disabled="scope.row.ReadingTaskState !== 2" :disabled="scope.row.ReadingTaskState !== 2"
/> />
<!--下载影像--> <!--下载影像-->
@ -660,7 +669,7 @@ import BaseContainer from '@/components/BaseContainer'
import Pagination from '@/components/Pagination' import Pagination from '@/components/Pagination'
import ChatForm from './components/ChatForm' import ChatForm from './components/ChatForm'
import { getToken } from '@/utils/auth' import { getToken } from '@/utils/auth'
import { showReadReport } from '@/api/export' import { showReadReport, showTumorReport } from '@/api/export'
import { downLoadFile } from '@/utils/stream.js' import { downLoadFile } from '@/utils/stream.js'
import { import {
getDownloadSubjectVisitStudyInfo, getDownloadSubjectVisitStudyInfo,
@ -754,11 +763,11 @@ export default {
}, },
methods: { methods: {
// //
handleCommand(command, item) { handleCommand(command, item, key) {
this[command](item) this[command](item, key)
}, },
// //
async showReport(item) { async showReport(item, key) {
if (this.reportFlag[item.Id]) return if (this.reportFlag[item.Id]) return
let data = { let data = {
VisitTaskId: item.Id, VisitTaskId: item.Id,
@ -770,7 +779,12 @@ export default {
if (!this.reportFlag[item.Id]) { if (!this.reportFlag[item.Id]) {
this.reportFlag[item.Id] = true this.reportFlag[item.Id] = true
} }
let res = await showReadReport(data) let res = null;
if(key === 'evaluate'){
res = await showReadReport(data);
}else{
res = await showTumorReport(data);
}
if (res.IsSuccess) { if (res.IsSuccess) {
let a = document.createElement('a') let a = document.createElement('a')
let href = this.OSSclientConfig.basePath + res.Result let href = this.OSSclientConfig.basePath + res.Result

View File

@ -281,12 +281,20 @@
@click="readResult(scope.row)" @click="readResult(scope.row)"
:disabled="scope.row.ReadingTaskState !== 2" :disabled="scope.row.ReadingTaskState !== 2"
/> />
<!--评估报告--> <!--肿瘤负荷报告-->
<el-button <el-button
circle circle
icon="el-icon-document" icon="el-icon-document"
:title="$t('trials:trials-panel:hirVisit:EvaluationReport')" :title="$t('trials:trials-panel:hirVisit:EvaluationReport')"
@click="handleCommand('showReport', scope.row)" @click="handleCommand('showReport', scope.row, 'evaluate')"
:disabled="scope.row.ReadingTaskState !== 2"
/>
<!--疗效评估报告-->
<el-button
circle
icon="el-icon-document"
:title="$t('trials:trials-panel:hirVisit:TumorReport')"
@click="handleCommand('showReport', scope.row, 'tumor')"
:disabled="scope.row.ReadingTaskState !== 2" :disabled="scope.row.ReadingTaskState !== 2"
/> />
<!--下载影像--> <!--下载影像-->
@ -331,7 +339,7 @@ import { getPatientVisitTaskList } from '@/api/readManagenent.js'
import { getToken } from '@/utils/auth' import { getToken } from '@/utils/auth'
// import { getSystemConfirmedCreiterionList } from "@/api/trials"; // import { getSystemConfirmedCreiterionList } from "@/api/trials";
import { getTrialCriterionList } from '@/api/trials/reading' import { getTrialCriterionList } from '@/api/trials/reading'
import { showReadReport } from '@/api/export' import { showReadReport, showTumorReport } from '@/api/export'
import { downLoadFile } from '@/utils/stream.js' import { downLoadFile } from '@/utils/stream.js'
import { import {
getDownloadSubjectVisitStudyInfo, getDownloadSubjectVisitStudyInfo,
@ -389,15 +397,15 @@ export default {
}, },
methods: { methods: {
// //
handleCommand(command, item) { handleCommand(command, item, key) {
this[command](item) this[command](item, key)
}, },
// //
handleExport() { handleExport() {
this.exportVisible = true this.exportVisible = true
}, },
// //
async showReport(item) { async showReport(item, key) {
if (this.reportFlag[item.Id]) return if (this.reportFlag[item.Id]) return
let data = { let data = {
VisitTaskId: item.Id, VisitTaskId: item.Id,
@ -409,7 +417,12 @@ export default {
if (!this.reportFlag[item.Id]) { if (!this.reportFlag[item.Id]) {
this.reportFlag[item.Id] = true this.reportFlag[item.Id] = true
} }
let res = await showReadReport(data) let res = null;
if(key === 'evaluate'){
res = await showReadReport(data);
}else{
res = await showTumorReport(data);
}
if (res.IsSuccess) { if (res.IsSuccess) {
let a = document.createElement('a') let a = document.createElement('a')
let href = this.OSSclientConfig.basePath + res.Result let href = this.OSSclientConfig.basePath + res.Result

View File

@ -179,7 +179,7 @@ export default {
// //
putActivate() { putActivate() {
this.activateVisible = true this.activateVisible = true
console.log(this.activateVisible) // console.log(this.activateVisible)
}, },
initForm() { initForm() {
this.formLoading = true this.formLoading = true