Merge branch 'main' of https://gitea.frp.extimaging.com/XCKJ/irc_web into main
continuous-integration/drone/push Build is passing

This commit is contained in:
2024-09-06 11:19:28 +08:00
9 changed files with 1201 additions and 80 deletions
+11 -3
View File
@@ -8,11 +8,11 @@ export function requestPackageAndAnonymizImage(params) {
})
}
// 获取影像上传列表
export function getSubjectImageUploadList(params) {
export function getSubjectImageUploadList(data) {
return request({
url: '/DownloadAndUpload/getSubjectImageUploadList',
method: 'get',
params
method: 'post',
data
})
}
// 预上传
@@ -71,4 +71,12 @@ export function getIRUploadTaskNoneDicomStudyList(data) {
method: 'post',
data
})
}
// 校验上传影像
export function verifyIRStudyAllowUpload(data) {
return request({
url: '/DownloadAndUpload/verifyIRStudyAllowUpload',
method: 'post',
data
})
}
File diff suppressed because it is too large Load Diff
@@ -12,7 +12,12 @@
:label="$t('uploadDicomAndNonedicom:label:dicom')"
name="dicom"
>
<dicomFile />
<dicomFile
v-if="activeName === 'dicom'"
:SubjectId="SubjectId"
:SubjectCode="SubjectCode"
:Criterion="Criterion"
/>
</el-tab-pane>
<el-tab-pane
:label="$t('uploadDicomAndNonedicom:label:nonedicom')"
@@ -135,8 +135,10 @@
<!--预览--->
<el-button
circle
:disabled="scope.row.UploadedFileCount <= 0"
icon="el-icon-view"
:title="$t('upload:nonedicom:button:preview')"
@click.stop="handlePreviewNoneDicomFiles(scope.row)"
/>
<!--上传--->
<el-button
@@ -334,6 +336,7 @@ import {
} from '@/api/load.js'
import { preArchiveStudy, uploadNoneDicomFile } from '@/api/trials'
import store from '@/store'
import { getToken } from '@/utils/auth'
let defaultSearchData = () => {
return {
SubjectId: null,
@@ -377,6 +380,7 @@ export default {
btnLoading: false,
currentRow: {},
studyMonitorId: null,
open: null,
}
},
watch: {
@@ -404,7 +408,7 @@ export default {
store.dispatch('trials/setUnLock', this.btnLoading)
},
},
mounted() {
created() {
this.getList()
},
methods: {
@@ -534,10 +538,22 @@ export default {
// 预览文件
previewFile(row) {
// window.open(row.FullFilePath, '_blank')
this.imgObj.url = row.FullFilePath
this.imgObj.url = row.FullFilePath || row.Path
this.imgObj.loading = true
this.imgObj.visible = true
},
// 预览单个检查下非Dicom文件
handlePreviewNoneDicomFiles(row) {
if (this.open) {
this.open.close()
}
let trialId = this.$route.query.trialId
var token = getToken()
const routeData = this.$router.resolve({
path: `/showNoneDicoms?trialId=${trialId}&subjectVisitId=${row.SourceSubjectVisitId}&studyId=${row.Id}&TokenKey=${token}`,
})
this.open = window.open(routeData.href, '_blank')
},
// 删除
async remove(item) {
try {
+3 -3
View File
@@ -126,13 +126,13 @@ async function uploadFile({ s3, fileInformation, uploadId, bucket, changeStatus,
let timeList = Object.keys(bytesReceivedPerSecond).sort((a, b) => a - b);
let bytesTime = timeList.find(item => time - item < 1000);
if (bytesTime) {
bytesReceivedPerSecond[bytesTime] += fileInformation.file.size * percentage;
bytesReceivedPerSecond[bytesTime] += fileInformation.file.size * (percentage - lastPercentage);
} else {
console.log("未查询到时间")
if (timeList.length > 0) {
bytesReceivedPerSecond[timeList[timeList.length - 1]] += fileInformation.file.size * percentage;
bytesReceivedPerSecond[timeList[timeList.length - 1]] += fileInformation.file.size * (percentage - lastPercentage);
} else {
bytesReceivedPerSecond[time] = fileInformation.file.size * percentage;
bytesReceivedPerSecond[time] = fileInformation.file.size * (percentage - lastPercentage);
}
}
}
+4 -3
View File
@@ -57,13 +57,13 @@ async function multipartUpload(OSSclient, partSize, saveFileId, uploadFile, data
let timeList = Object.keys(bytesReceivedPerSecond).sort((a, b) => a - b);
let bytesTime = timeList.find(item => time - item < 1000);
if (bytesTime) {
bytesReceivedPerSecond[bytesTime] += data.file.size * percentage;
bytesReceivedPerSecond[bytesTime] += data.file.size * (percentage - checkData[saveFileId]);
} else {
console.log("未查询到时间")
if (timeList.length > 0) {
bytesReceivedPerSecond[timeList[timeList.length - 1]] += data.file.size * percentage;
bytesReceivedPerSecond[timeList[timeList.length - 1]] += data.file.size * (percentage - checkData[saveFileId]);
} else {
bytesReceivedPerSecond[time] = data.file.size * percentage;
bytesReceivedPerSecond[time] = data.file.size * (percentage - checkData[saveFileId]);
}
}
}
@@ -136,6 +136,7 @@ function initPage() {
function setTimer() {
if (timer) return false;
timer = setInterval(() => {
console.log(Object.assign({}, bytesReceivedPerSecond))
let timeList = Object.keys(bytesReceivedPerSecond).sort((a, b) => a - b);
if (timeList.length > 0) {
let totalBytes = timeList.reduce((sum, bytes) => sum + bytesReceivedPerSecond[bytes], 0) / (5 * 1024);
@@ -657,6 +657,13 @@
:criterion="trialCriterion"
:status="uploadStatus"
/> -->
<upload-dicom-and-nonedicom
v-if="uploadImageVisible"
:SubjectId="uploadSubjectId"
:SubjectCode="uploadSubjectCode"
:Criterion="uploadTrialCriterion"
:visible.sync="uploadImageVisible"
/>
<download-dicom-and-nonedicom
v-if="downloadImageVisible"
:SubjectId="uploadSubjectId"
@@ -688,6 +695,7 @@ import { mapGetters } from 'vuex'
import store from '@/store'
import { getDoctorShortcutKey, getUserWLTemplateList } from '@/api/user'
import uploadImage from '@/components/uploadImage'
import uploadDicomAndNonedicom from '@/components/uploadDicomAndNonedicom'
import downloadDicomAndNonedicom from '@/components/downloadDicomAndNonedicom'
import { getCriterionReadingInfo } from '@/api/trials'
export default {
@@ -702,6 +710,7 @@ export default {
MeasurementList,
'upload-image': uploadImage,
'download-dicom-and-nonedicom': downloadDicomAndNonedicom,
'upload-dicom-and-nonedicom': uploadDicomAndNonedicom,
},
props: {
isExistsClinicalData: {
@@ -1076,7 +1076,7 @@ export default {
// 按序列UUID本地归档
parseDicomFile(file) {
var scope = this
return new Promise(function (resolve, reject) {
return new Promise(function (resolve, reject) {
if (scope.scanState === 'cancelling') {
resolve()
return
@@ -1467,7 +1467,7 @@ export default {
name: `${data.SubjectCode}_${data.VisitName}_${this.$fd(
'IsDicom',
true
)}/${study.StudyCode}_${study.StudyTime}_${
)}/${study.StudyCode}_${study.StudyTime.split(" ")[0]}_${
series.Modality
}/${fileName}`,
url: this.OSSclientConfig.basePath + instance.Path,
@@ -1504,7 +1504,7 @@ export default {
name: `${data.SubjectCode}_${data.VisitName}_${this.$fd(
'IsDicom',
true
)}/${study.StudyCode}_${study.ImageDate}_${study.Modality}/${
)}/${study.StudyCode}_${study.ImageDate.split(" ")[0]}_${study.Modality}/${
item.FileName
}`,
url: this.OSSclientConfig.basePath + item.Path,