crc上传DICOM影像页上传临床数据流程简化
continuous-integration/drone/push Build is passing Details

uat_us
DESKTOP-6C3NK6N\WXS 2024-08-14 14:31:36 +08:00
parent 7d634fb2e5
commit a549341d3b
1 changed files with 122 additions and 2 deletions

View File

@ -265,14 +265,44 @@
{{ $t("trials:uploadClinicalData:button:downloadTemplate") }} {{ $t("trials:uploadClinicalData:button:downloadTemplate") }}
</el-button> </el-button>
<!-- 新增 --> <!-- 新增 -->
<el-button <!-- <el-button
icon="el-icon-plus" icon="el-icon-plus"
type="primary" type="primary"
size="small" size="small"
@click.native.prevent="addFile(cd.Id, cd.ClinicalDataTrialSetId)" @click.native.prevent="addFile(cd.Id, cd.ClinicalDataTrialSetId)"
> >
{{ $t("common:button:new") }} {{ $t("common:button:new") }}
</el-button> -->
<!-- 新增 -->
<el-button
icon="el-icon-plus"
type="primary"
size="small"
:disabled="btnLoading"
:loading="btnLoading"
>
{{ $t("common:button:new") }}
</el-button> </el-button>
<input
type="file"
name="file"
multiple
ref="addFile"
style="
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
opacity: 0;
cursor: pointer;
"
:accept="faccept.join(',')"
@change="
($event) =>
beginScanFiles($event, cd.Id, cd.ClinicalDataTrialSetId)
"
/>
</div> </div>
<el-table :data="cd.PDFFileList" style="width: 100%" height="300"> <el-table :data="cd.PDFFileList" style="width: 100%" height="300">
<el-table-column type="index" width="50" /> <el-table-column type="index" width="50" />
@ -444,8 +474,9 @@ import {
deletePreviousHistory, deletePreviousHistory,
deletePreviousOther, deletePreviousOther,
deletePreviousSurgery, deletePreviousSurgery,
getCRCClinicalData,
addOrUpdateReadingClinicalData,
} from "@/api/trials"; } from "@/api/trials";
import { getCRCClinicalData } from "@/api/trials";
import PreviousRadiotherapy from "./previousRadiotherapy"; import PreviousRadiotherapy from "./previousRadiotherapy";
import PreviousSurgery from "./previousSurgery"; import PreviousSurgery from "./previousSurgery";
import PreviousOther from "./previousOther"; import PreviousOther from "./previousOther";
@ -492,9 +523,11 @@ export default {
}, },
data() { data() {
return { return {
faccept: [".pdf"],
isShow: false, isShow: false,
userTypeEnumInt: zzSessionStorage.getItem("userTypeEnumInt") * 1, userTypeEnumInt: zzSessionStorage.getItem("userTypeEnumInt") * 1,
loading: false, loading: false,
btnLoading: false,
PreviousHistoryList: [], PreviousHistoryList: [],
PreviousSurgeryList: [], PreviousSurgeryList: [],
PreviousOtherList: [], PreviousOtherList: [],
@ -516,6 +549,93 @@ export default {
this.getClinicalData(); this.getClinicalData();
}, },
methods: { methods: {
beginScanFiles(e, id, clinicalDataTrialSetId) {
this.currentRow = {
Id: id,
ClinicalDataTrialSetId: clinicalDataTrialSetId,
SubjectId: this.data.SubjectId,
};
this.currentRow.TrialId = this.$route.query.trialId;
var files = e.target.files;
this.fileList = [];
for (var i = 0; i < files.length; ++i) {
const fileName = files[i].name;
var extendName = fileName
.substring(fileName.lastIndexOf("."))
.toLocaleLowerCase();
if (this.faccept.indexOf(extendName) !== -1) {
let obj = {
size: files[i].size,
type: extendName.split(".")[1],
file: files[i],
};
this.fileList.push(obj);
}
}
this.handleUploadFile();
this.$refs.addFile.forEach((item) => {
item.value = null;
});
},
async handleUploadFile() {
this.btnLoading = true;
this.loading = true;
this.addFileList = [];
try {
for (var i = 0; i < this.fileList.length; ++i) {
const file = await this.fileToBlob(this.fileList[i].file);
var timestamp = Date.now();
const res = await this.OSSclient.put(
`/${this.trialId}/ClinicalData/${timestamp}_${this.fileList[i].file.name}`,
file
);
this.addFileList.push({
fileName: this.fileList[i].file.name,
path: this.$getObjectName(res.url),
url: this.$getObjectName(res.url),
type: this.fileList[i].type,
size: this.fileList[i].size,
});
}
this.saveClinicalData();
} catch (err) {
console.log(err);
this.btnLoading = false;
this.loading = false;
}
},
saveClinicalData() {
this.btnLoading = true;
this.loading = true;
var param = {
id: this.currentRow.Id,
trialId: this.currentRow.TrialId,
subjectId: this.currentRow.SubjectId,
readingId: this.subjectVisitId,
clinicalDataTrialSetId: this.currentRow.ClinicalDataTrialSetId,
isVisit: true,
deleteFileIds: [],
addFileList: this.addFileList,
};
if (this.studyData.StudyId) {
param.StudyId = this.studyData.StudyId;
}
addOrUpdateReadingClinicalData(param)
.then((response) => {
this.btnLoading = false;
this.loading = false;
//
this.getClinicalData();
this.$message.success(
this.$t("trials:uploadClinicalData:message:uploadSuccessfully")
);
this.$emit("getStudyInfo");
})
.catch(() => {
this.btnLoading = false;
this.loading = false;
});
},
getClinicalData() { getClinicalData() {
this.loading = true; this.loading = true;
this.data.TrialId = this.$route.query.trialId; this.data.TrialId = this.$route.query.trialId;