PET-CT临床数据的上传与临床数据采集Tab的的显示关系

uat_us
wangxiaoshuang 2024-04-12 17:45:42 +08:00
parent 4ca0f35cad
commit c02ce4b350
6 changed files with 3342 additions and 1635 deletions

View File

@ -1,21 +1,34 @@
<template>
<div class="previous-files-wrapper">
<!-- 多文件上传 -->
<form id="inputForm" ref="uploadForm">
<!-- 必须是PDF格式 -->
<!-- <el-divider content-position="left">{{ $t('trials:attachment:message:pdf') }}</el-divider>-->
<!-- <el-divider content-position="left">{{ $t('trials:attachment:message:pdf') }}</el-divider>-->
<div class="form-group">
<div id="directoryInputWrapper" class="btn btn-link" style="position: relative;overflow: hidden;display: inline-block;">
<el-button size="small">{{ $t('trials:uploadClinicalData:button:selectFile') }}</el-button>
<div
id="directoryInputWrapper"
class="btn btn-link"
style="position: relative; overflow: hidden; display: inline-block"
>
<el-button size="small">{{
$t("trials:uploadClinicalData:button:selectFile")
}}</el-button>
<input
type="file"
name="file"
multiple
style="position: absolute;top: 0;left: 0;width: 100%;height: 100%;opacity: 0;cursor: pointer;"
style="
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
opacity: 0;
cursor: pointer;
"
:accept="faccept.join(',')"
@change="beginScanFiles($event)"
>
/>
<!-- <span>共扫描了符合要求的有</span> -->
</div>
</div>
@ -28,17 +41,14 @@
height="300"
@selection-change="handleSelectionChange"
>
<el-table-column
type="selection"
width="55"
/>
<el-table-column type="selection" width="55" />
<el-table-column
prop="name"
:label="$t('trials:uploadClinicalData:table:fileName')"
min-width="180"
/>
</el-table>
<div style="text-align:right;padding: 10px 0px">
<div style="text-align: right; padding: 10px 0px">
<!-- 上传 -->
<el-button
size="small"
@ -47,66 +57,93 @@
:loading="btnLoading"
@click="handleUploadFile"
>
{{ $t('trials:uploadClinicalData:button:uploadFile') }}
{{ $t("trials:uploadClinicalData:button:uploadFile") }}
</el-button>
</div>
</div>
</template>
<script>
// import { uploadVisitClinicalData } from '@/api/trials'
import { addOrUpdateReadingClinicalData, uploadClinicalData } from '@/api/trials'
import {
addOrUpdateReadingClinicalData,
uploadClinicalData,
} from "@/api/trials";
export default {
props: {
data: {
type: Object,
default() { return {} }
default() {
return {};
},
},
subjectVisitId: {
type: String,
required: true
}
required: true,
},
studyData: {
type: Object,
default() {
return {};
},
},
},
data() {
return {
fileList: [],
btnLoading: false,
// faccept: ['.pdf', '.png', 'jpg', 'jpeg'],
faccept: ['.pdf'],
faccept: [".pdf"],
trialId: this.$route.query.trialId,
selectArr: [],
addFileList: []
}
addFileList: [],
};
},
methods: {
beginScanFiles(e) {
var files = e.target.files
var files = e.target.files;
for (var i = 0; i < files.length; ++i) {
const fileName = files[i].name
var extendName = fileName.substring(fileName.lastIndexOf('.')).toLocaleLowerCase()
const fileName = files[i].name;
var extendName = fileName
.substring(fileName.lastIndexOf("."))
.toLocaleLowerCase();
if (this.faccept.indexOf(extendName) !== -1) {
this.fileList.push(files[i])
this.fileList.push(files[i]);
}
}
this.$nextTick(() => {
this.handleAllSelect();
});
},
//
handleAllSelect() {
this.$refs.filesTable.toggleAllSelection();
},
//
handleSelectionChange(selection) {
this.selectArr = selection
this.selectArr = selection;
},
async handleUploadFile() {
this.btnLoading = true
this.addFileList = []
this.btnLoading = true;
this.addFileList = [];
for (var i = 0; i < this.selectArr.length; ++i) {
const file = await this.fileToBlob(this.selectArr[i])
var timestamp = Date.now()
const res = await this.OSSclient.put(`/${this.trialId}/ClinicalData/${timestamp}_${this.selectArr[i].name}`, file)
this.addFileList.push({ fileName: this.selectArr[i].name, path: this.$getObjectName(res.url), url: this.$getObjectName(res.url) })
const file = await this.fileToBlob(this.selectArr[i]);
var timestamp = Date.now();
const res = await this.OSSclient.put(
`/${this.trialId}/ClinicalData/${timestamp}_${this.selectArr[i].name}`,
file
);
this.addFileList.push({
fileName: this.selectArr[i].name,
path: this.$getObjectName(res.url),
url: this.$getObjectName(res.url),
});
}
this.saveClinicalData()
this.btnLoading = false
this.saveClinicalData();
this.btnLoading = false;
},
saveClinicalData() {
this.btnLoading = true
this.btnLoading = true;
var param = {
id: this.data.Id,
trialId: this.trialId,
@ -115,18 +152,25 @@ export default {
clinicalDataTrialSetId: this.data.ClinicalDataTrialSetId,
isVisit: true,
deleteFileIds: [],
addFileList: this.addFileList
addFileList: this.addFileList,
};
if (this.studyData.StudyId) {
param.StudyId = this.studyData.StudyId;
}
addOrUpdateReadingClinicalData(param).then(response => {
this.btnLoading = false
//
this.$emit('closeUpDialog')
this.$emit('refresh')
this.$message.success(this.$t('trials:uploadClinicalData:message:uploadSuccessfully'))
}).catch(() => {
this.btnLoading = false
})
}
}
}
addOrUpdateReadingClinicalData(param)
.then((response) => {
this.btnLoading = false;
//
this.$emit("closeUpDialog");
this.$emit("refresh");
this.$message.success(
this.$t("trials:uploadClinicalData:message:uploadSuccessfully")
);
})
.catch(() => {
this.btnLoading = false;
});
},
},
};
</script>

View File

@ -0,0 +1,723 @@
<template>
<div v-loading="loading" class="clinical-data-wrapper">
<el-tabs type="border-card">
<el-tab-pane
v-for="cd in clinicalDatas"
:key="cd.ClinicalDataTrialSetId"
:label="
$i18n.locale === 'zh'
? cd.ClinicalDataSetName
: cd.ClinicalDataSetEnName
"
>
<!-- 格式化录入 -->
<div v-if="cd.ClinicalUploadType === 0">
<!-- 既往放疗史 -->
<h4>{{ $t("trials:uploadClinicalData:title:pastTreatment") }}</h4>
<div v-if="allowAddOrEdit" style="text-align: right">
<!-- 新增 -->
<el-button
type="primary"
icon="el-icon-plus"
size="small"
@click.native.prevent="
addPreviousHistory(cd.ClinicalDataTrialSetId)
"
>
{{ $t("common:button:new") }}
</el-button>
</div>
<el-table
:data="cd.ClinicalTableData.PreviousHistoryList"
style="width: 100%"
>
<el-table-column type="index" width="50" />
<!-- 放疗部位 -->
<el-table-column
prop="Position"
:label="$t('trials:uploadClinicalData:table:bodyPart')"
/>
<!-- 开始日期 -->
<el-table-column
prop="StartTime"
:label="$t('trials:uploadClinicalData:table:beginDate')"
>
<template slot-scope="scope">
{{
scope.row.StartTime
? moment(scope.row.StartTime).format("YYYY-MM-DD")
: ""
}}
</template>
</el-table-column>
<!-- 结束日期 -->
<el-table-column
prop="EndTime"
:label="$t('trials:uploadClinicalData:table:endDate')"
>
<template slot-scope="scope">
{{
scope.row.EndTime
? moment(scope.row.EndTime).format("YYYY-MM-DD")
: ""
}}
</template>
</el-table-column>
<!-- 病灶是否PD -->
<el-table-column
prop="IsPD"
:label="$t('trials:uploadClinicalData:table:isPD')"
>
<template slot-scope="scope">
{{ $fd("IsPdEnum", scope.row.IsPD) }}
</template>
</el-table-column>
<el-table-column
v-if="allowAddOrEdit"
:label="$t('common:action:action')"
min-width="120"
>
<template slot-scope="scope">
<!-- 编辑 -->
<el-button
v-if="allowAddOrEdit"
icon="el-icon-edit-outline"
circle
:title="$t('common:button:edit')"
size="small"
@click.native.prevent="editRow(scope.row, 1)"
/>
<!-- 移除 -->
<el-button
v-if="
data.SubmitState * 1 < 2 ||
(data.SubmitState === 2 && data.IsQCConfirmedReupload)
"
icon="el-icon-delete"
circle
:title="$t('common:button:delete')"
size="small"
@click.native.prevent="deletePreviousHistory(scope.row)"
/>
</template>
</el-table-column>
</el-table>
<!-- 既往手术史 -->
<h4>{{ $t("trials:uploadClinicalData:title:pastSurgery") }}</h4>
<div v-if="allowAddOrEdit" style="text-align: right">
<el-button
type="primary"
icon="el-icon-plus"
size="small"
@click="addPreviousSurgery(cd.ClinicalDataTrialSetId)"
>
{{ $t("common:button:new") }}
</el-button>
</div>
<el-table
:data="cd.ClinicalTableData.PreviousSurgeryList"
style="width: 100%"
>
<el-table-column type="index" width="50" />
<!-- 手术名称 -->
<el-table-column
prop="OperationName"
:label="$t('trials:uploadClinicalData:table:surgeryName')"
/>
<!-- 手术日期 -->
<el-table-column
prop="OperationTime"
:label="$t('trials:uploadClinicalData:table:surgeryDate')"
>
<template slot-scope="scope">
{{
scope.row.OperationTime
? moment(scope.row.OperationTime).format("YYYY-MM-DD")
: ""
}}
</template>
</el-table-column>
<el-table-column
v-if="allowAddOrEdit"
:label="$t('common:action:action')"
min-width="200"
>
<template slot-scope="scope">
<!-- 编辑 -->
<el-button
v-if="allowAddOrEdit"
icon="el-icon-edit-outline"
circle
:title="$t('common:button:edit')"
size="small"
@click.native.prevent="editRow(scope.row, 2)"
/>
<!-- 移除 -->
<el-button
v-if="
data.SubmitState * 1 < 2 ||
(data.SubmitState === 2 && data.IsQCConfirmedReupload)
"
icon="el-icon-delete"
circle
:title="$t('common:button:delete')"
size="small"
@click.native.prevent="deletePreviousSurgery(scope.row)"
/>
</template>
</el-table-column>
</el-table>
<!-- 既往其他治疗史 -->
<h4>{{ $t("trials:uploadClinicalData:title:others") }}</h4>
<div v-if="allowAddOrEdit" style="text-align: right">
<!-- 新增 -->
<el-button
type="primary"
icon="el-icon-plus"
size="small"
@click="addPreviousOther(cd.ClinicalDataTrialSetId)"
>
{{ $t("common:button:new") }}
</el-button>
</div>
<el-table
:data="cd.ClinicalTableData.PreviousOtherList"
style="width: 100%"
>
<el-table-column type="index" width="50" />
<!-- 治疗类型 -->
<el-table-column
prop="TreatmentType"
:label="$t('trials:uploadClinicalData:table:treatmentType')"
/>
<!-- 开始日期 -->
<el-table-column
prop="StartTime"
:label="$t('trials:uploadClinicalData:table:treatmentbeginDate')"
>
<template slot-scope="scope">
{{
scope.row.StartTime
? moment(scope.row.StartTime).format("YYYY-MM-DD")
: ""
}}
</template>
</el-table-column>
<!-- 结束日期 -->
<el-table-column
prop="EndTime"
:label="$t('trials:uploadClinicalData:table:treatmentendDate')"
>
<template slot-scope="scope">
{{
scope.row.EndTime
? moment(scope.row.EndTime).format("YYYY-MM-DD")
: ""
}}
</template>
</el-table-column>
<el-table-column
v-if="allowAddOrEdit"
:label="$t('common:action:action')"
min-width="200"
>
<template slot-scope="scope">
<!-- 编辑 -->
<el-button
v-if="allowAddOrEdit"
icon="el-icon-edit-outline"
circle
:title="$t('common:button:edit')"
size="small"
@click.native.prevent="editRow(scope.row, 3)"
/>
<!-- 移除 -->
<el-button
v-if="
data.SubmitState * 1 < 2 ||
(data.SubmitState === 2 && data.IsQCConfirmedReupload)
"
icon="el-icon-delete"
circle
:title="$t('common:button:delete')"
size="small"
@click.native.prevent="deletePreviousOther(scope.row)"
/>
</template>
</el-table-column>
</el-table>
</div>
<!-- PDF录入 -->
<div v-if="cd.ClinicalUploadType === 1">
<div v-if="allowAddOrEdit" style="text-align: right">
<!-- 下载模板 -->
<el-button
v-if="cd.Path"
type="primary"
icon="el-icon-download"
size="small"
:loading="downloadLoading"
@click.native.prevent="handleDownloadTpl(cd)"
>
{{ $t("trials:uploadClinicalData:button:downloadTemplate") }}
</el-button>
<!-- 新增 -->
<el-button
icon="el-icon-plus"
type="primary"
size="small"
@click.native.prevent="addFile(cd.Id, cd.ClinicalDataTrialSetId)"
>
{{ $t("common:button:new") }}
</el-button>
</div>
<el-table :data="cd.PDFFileList" style="width: 100%" height="300">
<el-table-column type="index" width="50" />
<!-- 文件名称 -->
<el-table-column
prop="FileName"
:label="$t('trials:uploadClinicalData:table:fileName')"
width="250"
/>
<!-- 上传时间 -->
<el-table-column
prop="CreateTime"
:label="$t('trials:uploadClinicalData:table:uploadedTime')"
width="200"
/>
<el-table-column :label="$t('common:action:action')" width="200">
<template slot-scope="scope">
<!-- 预览 -->
<el-button
icon="el-icon-view"
circle
:title="$t('trials:uploadClinicalData:action:preview')"
size="small"
@click.native.prevent="preview(scope.row)"
/>
<!-- 移除 -->
<el-button
v-if="allowAddOrEdit"
icon="el-icon-delete"
circle
:title="$t('common:button:delete')"
size="small"
@click.native.prevent="deleteFile(scope.row.Id)"
/>
</template>
</el-table-column>
</el-table>
</div>
<!-- PDF录入 -->
<div v-if="cd.ClinicalUploadType === 2">
<clinicalDataQuestions
v-if="cd.ClinicalFromList.length > 0"
:data="cd"
:trial-clinical-id="cd.ClinicalDataTrialSetId"
:is-viewer="false"
:visit-id="subjectVisitId"
:subject-id="data.SubjectId"
:trial-id="trialId"
:clinical-form-id="cd.ClinicalFromList[0].ClinicalFormId"
:open-type="allowAddOrEdit ? 'edit' : 'look'"
@close="getClinicalData"
/>
<clinicalDataQuestions
v-else
:data="cd"
:trial-clinical-id="cd.ClinicalDataTrialSetId"
:is-viewer="!allowAddOrEdit"
:visit-id="subjectVisitId"
:subject-id="data.SubjectId"
:trial-id="trialId"
:open-type="'add'"
@close="getClinicalData"
/>
</div>
</el-tab-pane>
</el-tabs>
<!-- 既往放疗史 -->
<el-dialog
v-if="prVisible"
:visible.sync="prVisible"
:close-on-click-modal="false"
:title="$t('trials:uploadClinicalData:title:pastTreatment')"
width="600px"
append-to-body
custom-class="base-dialog-wrapper"
>
<PreviousRadiotherapy
v-if="prVisible"
:data="currentRow"
:subject-visit-id="subjectVisitId"
@closePRDialog="closePRDialog"
@refresh="refresh"
/>
</el-dialog>
<!-- 既往手术史 -->
<el-dialog
v-if="psVisible"
:visible.sync="psVisible"
:close-on-click-modal="false"
:title="$t('trials:uploadClinicalData:title:pastSurgery')"
width="600px"
append-to-body
custom-class="base-dialog-wrapper"
>
<PreviousSurgery
v-if="psVisible"
:data="currentRow"
:parent-data="data"
:subject-visit-id="subjectVisitId"
@closePSDialog="closePSDialog"
@refresh="refresh"
/>
</el-dialog>
<!-- 既往其他治疗史 -->
<el-dialog
v-if="poVisible"
:visible.sync="poVisible"
:close-on-click-modal="false"
:title="$t('trials:uploadClinicalData:title:others')"
width="600px"
append-to-body
custom-class="base-dialog-wrapper"
>
<PreviousOther
v-if="poVisible"
:data="currentRow"
:parent-data="data"
:subject-visit-id="subjectVisitId"
@closePODialog="closePODialog"
@refresh="refresh"
/>
</el-dialog>
<!-- 上传文件 -->
<el-dialog
v-if="upVisible"
:visible.sync="upVisible"
:close-on-click-modal="false"
:title="$t('trials:uploadClinicalData:title:uploadFile')"
width="600px"
append-to-body
custom-class="base-dialog-wrapper"
>
<PreviousFiles
v-if="upVisible"
:data="currentRow"
:parent-data="data"
:subject-visit-id="subjectVisitId"
:studyData="studyData"
@closeUpDialog="closeUpDialog"
@refresh="refresh"
/>
</el-dialog>
<!-- 预览文件 -->
<el-dialog
v-if="previewObj.visible"
:visible.sync="previewObj.visible"
:title="previewObj.fileName"
:fullscreen="true"
append-to-body
custom-class="base-dialog-wrapper"
>
<div
class="base-modal-body"
style="border: 2px solid #ccc; padding: 10px"
>
<PreviewFile
v-if="previewObj.visible"
:file-path="previewObj.filePath"
:file-type="previewObj.fileType"
/>
</div>
</el-dialog>
</div>
</template>
<script>
import {
deleteReadingClinicalDataPDF,
deletePreviousHistory,
deletePreviousOther,
deletePreviousSurgery,
} from "@/api/trials";
import { getCRCClinicalData } from "@/api/trials";
import PreviousRadiotherapy from "./previousRadiotherapy";
import PreviousSurgery from "./previousSurgery";
import PreviousOther from "./previousOther";
import PreviousFiles from "./previousFiles";
import clinicalDataQuestions from "@/components/clinicalDataQuestions";
import PreviewFile from "@/components/PreviewFile/index";
import moment from "moment";
export default {
name: "uploadPetClinicalData",
components: {
PreviousRadiotherapy,
PreviousSurgery,
PreviousOther,
PreviousFiles,
clinicalDataQuestions,
PreviewFile,
},
props: {
data: {
type: Object,
default() {
return {};
},
},
studyData: {
required: true,
type: Object,
default() {
return {};
},
},
subjectVisitId: {
type: String,
required: true,
},
enumType: {
type: Number,
default: 0,
},
allowAddOrEdit: {
type: Boolean,
default: false,
},
},
data() {
return {
isShow: false,
userTypeEnumInt: zzSessionStorage.getItem("userTypeEnumInt") * 1,
loading: false,
PreviousHistoryList: [],
PreviousSurgeryList: [],
PreviousOtherList: [],
PreviousPDFList: [],
fileList: [],
currentRow: {},
prVisible: false,
psVisible: false,
poVisible: false,
upVisible: false,
trialId: this.$route.query.trialId,
moment,
downloadLoading: false,
clinicalDatas: [],
previewObj: { visible: false, filePath: "", fileType: "" },
};
},
mounted() {
this.getClinicalData();
},
methods: {
getClinicalData() {
this.loading = true;
this.data.TrialId = this.$route.query.trialId;
var param = {
StudyId: this.studyData.StudyId,
};
getCRCClinicalData(param)
.then((res) => {
this.clinicalDatas = res.Result;
this.loading = false;
})
.catch(() => {
this.loading = false;
});
},
//
editRow(row, type) {
if (type === 1) {
this.prVisible = true;
} else if (type === 2) {
this.psVisible = true;
} else if (type === 3) {
this.poVisible = true;
}
this.currentRow = { ...row };
this.currentRow.TrialId = this.$route.query.trialId;
},
// ID
deletePreviousHistory(row) {
this.$confirm(this.$t("trials:uploadedDicoms:message:deleteMes"), {
type: "warning",
distinguishCancelAndClose: true,
}).then(() => {
this.loading = true;
deletePreviousHistory(
this.$route.query.trialId,
this.subjectVisitId,
row.Id
)
.then((res) => {
this.loading = false;
if (res.IsSuccess) {
this.getClinicalData();
this.$message.success(
this.$t("trials:uploadedDicoms:message:deleteSuccessfully")
);
this.$emit("getStudyInfo");
}
})
.catch(() => {
this.loading = false;
});
});
},
// ID
deletePreviousSurgery(row) {
console.log(this.$route.query.trialId);
this.$confirm(this.$t("trials:uploadedDicoms:message:deleteMes"), {
type: "warning",
distinguishCancelAndClose: true,
}).then(() => {
// row.Type = ''
this.loading = true;
deletePreviousSurgery(
this.$route.query.trialId,
this.subjectVisitId,
row.Id
)
.then((res) => {
this.loading = false;
if (res.IsSuccess) {
this.getClinicalData();
this.$message.success(
this.$t("trials:uploadedDicoms:message:deleteSuccessfully")
);
this.$emit("getStudyInfo");
}
})
.catch(() => {
this.loading = false;
});
});
},
// ID
deletePreviousOther(row) {
this.$confirm(this.$t("trials:uploadedDicoms:message:deleteMes"), {
type: "warning",
distinguishCancelAndClose: true,
}).then(() => {
// row.Type = ''
this.loading = true;
deletePreviousOther(
this.$route.query.trialId,
this.subjectVisitId,
row.Id
)
.then((res) => {
this.loading = false;
if (res.IsSuccess) {
this.getClinicalData();
this.$message.success(
this.$t("trials:uploadedDicoms:message:deleteSuccessfully")
);
this.$emit("getStudyInfo");
}
})
.catch(() => {
this.loading = false;
});
});
},
//
preview(row) {
if (!row.Path) return;
this.previewObj.fileName = row.FileName;
this.previewObj.filePath = row.Path;
this.previewObj.fileType = "pdf";
this.previewObj.visible = true;
// window.open(this.OSSclientConfig.basePath + path, '_blank')
},
addPreviousHistory(clinicalDataTrialSetId) {
console.log(clinicalDataTrialSetId);
this.currentRow = { ClinicalDataTrialSetId: clinicalDataTrialSetId };
this.currentRow.TrialId = this.$route.query.trialId;
this.prVisible = true;
},
addPreviousSurgery(clinicalDataTrialSetId) {
this.currentRow = { ClinicalDataTrialSetId: clinicalDataTrialSetId };
this.currentRow.TrialId = this.$route.query.trialId;
this.psVisible = true;
},
addPreviousOther(clinicalDataTrialSetId) {
this.currentRow = { ClinicalDataTrialSetId: clinicalDataTrialSetId };
this.currentRow.TrialId = this.$route.query.trialId;
this.poVisible = true;
},
//
closePRDialog() {
this.prVisible = false;
this.currentRow.TrialId = this.$route.query.trialId;
},
closePSDialog() {
this.psVisible = false;
this.currentRow.TrialId = this.$route.query.trialId;
},
closePODialog() {
this.poVisible = false;
this.currentRow.TrialId = this.$route.query.trialId;
},
closeUpDialog() {
this.upVisible = false;
this.currentRow.TrialId = this.$route.query.trialId;
},
refresh() {
this.getClinicalData();
this.$emit("getStudyInfo");
},
//
addFile(id, clinicalDataTrialSetId) {
this.currentRow = {
Id: id,
ClinicalDataTrialSetId: clinicalDataTrialSetId,
SubjectId: this.data.SubjectId,
};
this.currentRow.TrialId = this.$route.query.trialId;
this.upVisible = true;
},
//
deleteFile(id) {
this.$confirm(this.$t("trials:uploadedDicoms:message:deleteMes"), {
type: "warning",
distinguishCancelAndClose: true,
}).then(() => {
this.loading = true;
deleteReadingClinicalDataPDF(id)
.then((res) => {
this.loading = false;
if (res.IsSuccess) {
this.getClinicalData();
this.$emit("getStudyInfo");
this.$message.success(
this.$t("trials:uploadedDicoms:message:deleteSuccessfully")
);
}
})
.catch(() => {
this.loading = false;
});
});
},
handleDownloadTpl(cd) {
window.open(this.OSSclientConfig.basePath + cd.Path);
},
},
};
</script>
<style lang="scss">
.clinical-data-wrapper {
.box-title {
padding: 12px;
margin-bottom: 10px;
background-color: #dcdfe6;
}
}
</style>

View File

@ -572,16 +572,16 @@
<UploadNonDicomFiles v-if="rowData.Id" :data="rowData" :subject-visit-id="rowData.Id" :body-parts="otherInfo.BodyPartTypes" :modalities="otherInfo.Modalitys" :allow-add-or-edit="false" @getList="getList"/>
</el-card>
<!-- 临床数据 -->
<h4 v-if="rowData.IsBaseLine && otherInfo.ClinicalInformationTransmissionEnum > 0 && otherInfo.IsHaveSubjectClinicalData" class="box-title" style="margin-top:10px;">
<h4 v-if="rowData.IsBaseLine && (otherInfo.IsHaveSubjectClinicalData||otherInfo.IsHaveVisitClinicalData)" class="box-title" style="margin-top:10px;">
{{ $t('trials:crcUpload:label:clinicalData') }}
</h4>
<el-card v-if="rowData.IsBaseLine && otherInfo.ClinicalInformationTransmissionEnum > 0 && otherInfo.IsHaveSubjectClinicalData" class="box-card">
<el-card v-if="rowData.IsBaseLine && (otherInfo.IsHaveSubjectClinicalData||otherInfo.IsHaveVisitClinicalData)" class="box-card">
<UploadClinicalData v-if="rowData.Id && rowData.IsBaseLine" :enum-type="otherInfo.ClinicalInformationTransmissionEnum" :allow-add-or-edit="false" :data="rowData" :subject-visit-id="rowData.Id" @getList="getList" />
</el-card>
<h4 v-if="!rowData.IsBaseLine && otherInfo.ClinicalInformationTransmissionEnum > 0 && otherInfo.IsHaveVisitClinicalData" class="box-title" style="margin-top:10px;">
<h4 v-if="!rowData.IsBaseLine && otherInfo.IsHaveVisitClinicalData" class="box-title" style="margin-top:10px;">
{{ $t('trials:crcUpload:label:clinicalData') }}
</h4>
<el-card v-if="!rowData.IsBaseLine && otherInfo.ClinicalInformationTransmissionEnum > 0 && otherInfo.IsHaveVisitClinicalData" class="box-card">
<el-card v-if="!rowData.IsBaseLine && otherInfo.IsHaveVisitClinicalData" class="box-card">
<UploadClinicalData v-if="rowData.Id" :enum-type="otherInfo.ClinicalInformationTransmissionEnum" :allow-add-or-edit="false" :data="rowData" :subject-visit-id="rowData.Id" @getList="getList" />
</el-card>
</div>

View File

@ -581,10 +581,10 @@
</el-card>
</div>
<div v-if="OtherInfo.ClinicalInformationTransmissionEnum > 0">
<div>
<!-- 临床数据 -->
<h4 class="box-title" style="margin-top:10px;">{{ $t('trials:audit:tab:clinicalData') }}</h4>
<el-card v-if="OtherInfo.ClinicalInformationTransmissionEnum > 0" class="box-card">
<el-card class="box-card">
<UploadClinicalData v-if="rowData.Id" :enum-type="OtherInfo.ClinicalInformationTransmissionEnum" :data="rowData" :subject-visit-id="rowData.Id" :allow-add-or-edit="false" />
</el-card>
</div>