Merge branch 'main' of https://gitea.frp.extimaging.com/XCKJ/irc_web into main
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
commit
10bac01371
|
|
@ -4468,9 +4468,10 @@ export function updateReadModuleClinicalData(data) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getTrialUnreadVisitList(trialId) {
|
export function getTrialUnreadVisitList(params) {
|
||||||
return request({
|
return request({
|
||||||
url: `/DownloadAndUpload/getTrialUnreadVisitList?trialId=${trialId}`,
|
url: `/DownloadAndUpload/getTrialUnreadVisitList`,
|
||||||
method: 'get'
|
method: 'get',
|
||||||
|
params,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
@ -329,21 +329,15 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 注射时间 HHMMSS-->
|
<!-- 注射时间 HHMMSS-->
|
||||||
<el-form-item :label="$t('trials:ptData:label:injectTime')" prop="RadiopharmaceuticalStartTime">
|
<el-form-item :label="$t('trials:ptData:label:injectTime')" prop="RadiopharmaceuticalStartTime">
|
||||||
<el-input
|
<el-input v-model.trim="formData.RadiopharmaceuticalStartTime" :placeholder="$t('trials:injectTime:eg')"
|
||||||
v-model.trim="formData.RadiopharmaceuticalStartTime"
|
@blur="handleTimeBlur('RadiopharmaceuticalStartTime')" maxlength="6" style="width: 100%"
|
||||||
:placeholder="$t('trials:injectTime:eg')"
|
@input="computeTimeRelation" :disabled="!isEdit"></el-input>
|
||||||
@blur="handleTimeBlur('RadiopharmaceuticalStartTime')"
|
|
||||||
maxlength="6"
|
|
||||||
style="width: 100%" @input="computeTimeRelation" :disabled="!isEdit"></el-input>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 成像时间 HHMMSS-->
|
<!-- 成像时间 HHMMSS-->
|
||||||
<el-form-item :label="$t('trials:ptData:label:acquisitionTime')" prop="AcquisitionTime">
|
<el-form-item :label="$t('trials:ptData:label:acquisitionTime')" prop="AcquisitionTime">
|
||||||
<el-input
|
<el-input v-model.trim="formData.AcquisitionTime" @blur="handleTimeBlur('AcquisitionTime')" maxlength="6"
|
||||||
v-model.trim="formData.AcquisitionTime"
|
:placeholder="$t('trials:injectTime:eg')" style="width: 100%" @input="computeTimeRelation"
|
||||||
@blur="handleTimeBlur('AcquisitionTime')"
|
:disabled="!isEdit"></el-input>
|
||||||
maxlength="6"
|
|
||||||
:placeholder="$t('trials:injectTime:eg')"
|
|
||||||
style="width: 100%" @input="computeTimeRelation" :disabled="!isEdit"></el-input>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- 时间一致性检查 -->
|
<!-- 时间一致性检查 -->
|
||||||
<!-- <el-form-item :label="$t('trials:ptData:label:timeCheck')">
|
<!-- <el-form-item :label="$t('trials:ptData:label:timeCheck')">
|
||||||
|
|
@ -590,7 +584,11 @@ export default {
|
||||||
let res = await this.studyUndoMaskImage(data)
|
let res = await this.studyUndoMaskImage(data)
|
||||||
if (!res) return false
|
if (!res) return false
|
||||||
this.$emit("update:loading", true)
|
this.$emit("update:loading", true)
|
||||||
if (instanceInfo.NumberOfFrames && instanceInfo.NumberOfFrames > 1) isAll = true
|
let isMultiple = false
|
||||||
|
if (instanceInfo.NumberOfFrames && instanceInfo.NumberOfFrames > 1 && isAll === false) {
|
||||||
|
isAll = true;
|
||||||
|
isMultiple = true;
|
||||||
|
}
|
||||||
if (!isAll) {
|
if (!isAll) {
|
||||||
let strs = image.imageId.split("?")
|
let strs = image.imageId.split("?")
|
||||||
let newImageId = `wadouri:${localStorage.getItem('location') !== 'USA' ? this.OSSclientConfig.basePath : this.OSSclientConfig.basePath}${res[0].Path}?${strs[1]}`
|
let newImageId = `wadouri:${localStorage.getItem('location') !== 'USA' ? this.OSSclientConfig.basePath : this.OSSclientConfig.basePath}${res[0].Path}?${strs[1]}`
|
||||||
|
|
@ -605,36 +603,49 @@ export default {
|
||||||
this.series.imageIds.splice(index, 1, newImageId)
|
this.series.imageIds.splice(index, 1, newImageId)
|
||||||
await this.$refs[`dicomCanvas0`].reloadImage(newImageId)
|
await this.$refs[`dicomCanvas0`].reloadImage(newImageId)
|
||||||
} else {
|
} else {
|
||||||
let arr = []
|
// let arr = []
|
||||||
this.series.instanceInfoList.forEach(item => {
|
// this.series.instanceInfoList.forEach(item => {
|
||||||
let strs = item.ImageId.split("?")
|
// let strs = item.ImageId.split("?")
|
||||||
let info = res.find(i => item.Id === i.Id)
|
// let info = res.find(i => item.Id === i.Id)
|
||||||
let newImageId = `wadouri:${localStorage.getItem('location') !== 'USA' ? this.OSSclientConfig.basePath : this.OSSclientConfig.basePath}${info.Path}?${strs[1]}`
|
// if (info) {
|
||||||
if (instanceInfo.NumberOfFrames && instanceInfo.NumberOfFrames > 1) {
|
// let newImageId = `wadouri:${localStorage.getItem('location') !== 'USA' ? this.OSSclientConfig.basePath : this.OSSclientConfig.basePath}${info.Path}?${strs[1]}`
|
||||||
for (let j = 0; j < instanceInfo.NumberOfFrames; j++) {
|
// this.series.imageIds.forEach(i => {
|
||||||
let strList = strs[1].split("&")
|
// let is = i.split("?")
|
||||||
let s = ''
|
// if (is[0] === strs[0]) {
|
||||||
strList.forEach(item => {
|
// arr.push(newImageId)
|
||||||
if (item.includes('frame=')) {
|
// } else {
|
||||||
s += `frame=${j}`
|
// if (isMultiple) {
|
||||||
} else {
|
// arr.push(i)
|
||||||
s += `&${item}`
|
// }
|
||||||
}
|
// }
|
||||||
})
|
// })
|
||||||
arr.push(`wadouri:${localStorage.getItem('location') !== 'USA' ? this.OSSclientConfig.basePath : this.OSSclientConfig.basePath}${info.Path}?${s}`)
|
// // if (instanceInfo.NumberOfFrames && instanceInfo.NumberOfFrames > 1) {
|
||||||
}
|
// // for (let j = 0; j < instanceInfo.NumberOfFrames; j++) {
|
||||||
} else {
|
// // let strList = strs[1].split("&")
|
||||||
arr.push(newImageId)
|
// // let s = ''
|
||||||
}
|
// // strList.forEach(item => {
|
||||||
item.ImageId = newImageId
|
// // if (item.includes('frame=')) {
|
||||||
item.IsMasked = false
|
// // s += `frame=${j}`
|
||||||
})
|
// // } else {
|
||||||
this.series.imageIds = arr
|
// // s += `&${item}`
|
||||||
// this.loadImageStack(this.series)
|
// // }
|
||||||
this.$refs[`dicomCanvas0`].loadImageStack(this.series)
|
// // })
|
||||||
|
// // arr.push(`wadouri:${localStorage.getItem('location') !== 'USA' ? this.OSSclientConfig.basePath : this.OSSclientConfig.basePath}${info.Path}?${s}`)
|
||||||
|
// // }
|
||||||
|
// // } else {
|
||||||
|
// // arr.push(newImageId)
|
||||||
|
// // }
|
||||||
|
// item.ImageId = newImageId
|
||||||
|
// item.IsMasked = false
|
||||||
|
// }
|
||||||
|
|
||||||
|
// })
|
||||||
|
// this.series.imageIds = arr
|
||||||
|
// // this.loadImageStack(this.series)
|
||||||
|
// this.$refs[`dicomCanvas0`].loadImageStack(this.series)
|
||||||
}
|
}
|
||||||
|
this.$emit('loadStudy', this.series.seriesId)
|
||||||
this.$emit("update:loading", false)
|
this.$emit("update:loading", false)
|
||||||
this.$emit('loadStudy', false)
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
anonymousImage(isAll = false) {
|
anonymousImage(isAll = false) {
|
||||||
|
|
@ -679,7 +690,11 @@ export default {
|
||||||
let res = await this.studyMaskImage(data)
|
let res = await this.studyMaskImage(data)
|
||||||
if (!res || res.length <= 0) return this.$confirm(this.$t("DicomViewer:anonymous:studyMaskImageFail"))
|
if (!res || res.length <= 0) return this.$confirm(this.$t("DicomViewer:anonymous:studyMaskImageFail"))
|
||||||
this.$emit("update:loading", true)
|
this.$emit("update:loading", true)
|
||||||
if (instanceInfo.NumberOfFrames && instanceInfo.NumberOfFrames > 1) isAll = true
|
let isMultiple = false
|
||||||
|
if (instanceInfo.NumberOfFrames && instanceInfo.NumberOfFrames > 1 && isAll === false) {
|
||||||
|
isAll = true;
|
||||||
|
isMultiple = true;
|
||||||
|
}
|
||||||
if (!isAll) {
|
if (!isAll) {
|
||||||
let strs = image.imageId.split("?")
|
let strs = image.imageId.split("?")
|
||||||
let newImageId = `wadouri:${localStorage.getItem('location') !== 'USA' ? this.OSSclientConfig.basePath : this.OSSclientConfig.basePath}${res[0].Path}?${strs[1]}`
|
let newImageId = `wadouri:${localStorage.getItem('location') !== 'USA' ? this.OSSclientConfig.basePath : this.OSSclientConfig.basePath}${res[0].Path}?${strs[1]}`
|
||||||
|
|
@ -695,35 +710,50 @@ export default {
|
||||||
await this.$refs[`dicomCanvas0`].reloadImage(newImageId)
|
await this.$refs[`dicomCanvas0`].reloadImage(newImageId)
|
||||||
} else {
|
} else {
|
||||||
let arr = []
|
let arr = []
|
||||||
this.series.instanceInfoList.forEach(item => {
|
// this.series.instanceInfoList.forEach(item => {
|
||||||
let strs = item.ImageId.split("?")
|
// let strs = item.ImageId.split("?")
|
||||||
let info = res.find(i => item.Id === i.Id)
|
// let info = res.find(i => item.Id === i.Id)
|
||||||
let newImageId = `wadouri:${localStorage.getItem('location') !== 'USA' ? this.OSSclientConfig.basePath : this.OSSclientConfig.basePath}${info.Path}?${strs[1]}`
|
// if (info) {
|
||||||
if (instanceInfo.NumberOfFrames && instanceInfo.NumberOfFrames > 1) {
|
// let newImageId = `wadouri:${localStorage.getItem('location') !== 'USA' ? this.OSSclientConfig.basePath : this.OSSclientConfig.basePath}${info.Path}?${strs[1]}`
|
||||||
for (let j = 0; j < instanceInfo.NumberOfFrames; j++) {
|
// this.series.imageIds.forEach(i => {
|
||||||
let strList = strs[1].split("&")
|
// let is = i.split("?")
|
||||||
let s = ''
|
// if (is[0] === strs[0]) {
|
||||||
strList.forEach(item => {
|
// arr.push(newImageId)
|
||||||
if (item.includes('frame=')) {
|
// } else {
|
||||||
s += `frame=${j}`
|
// if (isMultiple) {
|
||||||
} else {
|
// arr.push(i)
|
||||||
s += `&${item}`
|
// }
|
||||||
}
|
// }
|
||||||
})
|
|
||||||
arr.push(`wadouri:${localStorage.getItem('location') !== 'USA' ? this.OSSclientConfig.basePath : this.OSSclientConfig.basePath}${info.Path}?${s}`)
|
// })
|
||||||
}
|
// item.ImageId = newImageId
|
||||||
} else {
|
// item.IsMasked = true
|
||||||
arr.push(newImageId)
|
// }
|
||||||
}
|
// // if (instanceInfo.NumberOfFrames && instanceInfo.NumberOfFrames > 1) {
|
||||||
item.ImageId = newImageId
|
|
||||||
item.IsMasked = true
|
// // for (let j = 0; j < instanceInfo.NumberOfFrames; j++) {
|
||||||
})
|
// // let strList = strs[1].split("&")
|
||||||
this.series.imageIds = arr
|
// // let s = ''
|
||||||
// this.loadImageStack(this.series)
|
// // strList.forEach(item => {
|
||||||
this.$refs[`dicomCanvas0`].loadImageStack(this.series)
|
// // if (item.includes('frame=')) {
|
||||||
|
// // s += `frame=${j}`
|
||||||
|
// // } else {
|
||||||
|
// // s += `&${item}`
|
||||||
|
// // }
|
||||||
|
// // })
|
||||||
|
// // arr.push(`wadouri:${localStorage.getItem('location') !== 'USA' ? this.OSSclientConfig.basePath : this.OSSclientConfig.basePath}${info.Path}?${s}`)
|
||||||
|
// // }
|
||||||
|
// // } else {
|
||||||
|
// // arr.push(newImageId)
|
||||||
|
// // }
|
||||||
|
// })
|
||||||
|
// this.series.imageIds = arr
|
||||||
|
// console.log(this.series, 'series')
|
||||||
|
// // this.loadImageStack(this.series)
|
||||||
|
// this.$refs[`dicomCanvas0`].loadImageStack(this.series)
|
||||||
}
|
}
|
||||||
|
this.$emit('loadStudy', this.series.seriesId)
|
||||||
this.$emit("update:loading", false)
|
this.$emit("update:loading", false)
|
||||||
this.$emit('loadStudy', false)
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
openAnonymous() {
|
openAnonymous() {
|
||||||
|
|
|
||||||
|
|
@ -308,7 +308,7 @@ export default {
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
async loadStudy(isJump = true) {
|
async loadStudy(seriesId = null) {
|
||||||
let params = {}
|
let params = {}
|
||||||
if (this.isPacs) {
|
if (this.isPacs) {
|
||||||
params.IsPacs = true
|
params.IsPacs = true
|
||||||
|
|
@ -328,7 +328,7 @@ export default {
|
||||||
isReading = `?IsPacs=true`
|
isReading = `?IsPacs=true`
|
||||||
}
|
}
|
||||||
const url = `/series/list/${this.studyId}${isReading}`
|
const url = `/series/list/${this.studyId}${isReading}`
|
||||||
this.getSeriesList(url, isJump)
|
this.getSeriesList(url, seriesId)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
async loadPatientStudy() {
|
async loadPatientStudy() {
|
||||||
|
|
@ -393,7 +393,7 @@ export default {
|
||||||
console.log(err)
|
console.log(err)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
async getSeriesList(url, isJump = true) {
|
async getSeriesList(url, seriesId = null) {
|
||||||
try {
|
try {
|
||||||
const data = await getSeriesList(url)
|
const data = await getSeriesList(url)
|
||||||
if (data.IsSuccess) {
|
if (data.IsSuccess) {
|
||||||
|
|
@ -432,12 +432,12 @@ export default {
|
||||||
isDeleted: item.IsDeleted,
|
isDeleted: item.IsDeleted,
|
||||||
previewImageUrl: item.ImageResizePath ? this.OSSclientConfig.basePath + item.ImageResizePath : `/api/series/preview/${item.Id}`,
|
previewImageUrl: item.ImageResizePath ? this.OSSclientConfig.basePath + item.ImageResizePath : `/api/series/preview/${item.Id}`,
|
||||||
instanceCount: item.InstanceCount,
|
instanceCount: item.InstanceCount,
|
||||||
prefetchInstanceCount: !isJump ? item.InstanceInfoList.length * 100 : 0,
|
prefetchInstanceCount: seriesId ? item.InstanceInfoList.length * 100 : 0,
|
||||||
hasLabel: item.HasLabel,
|
hasLabel: item.HasLabel,
|
||||||
keySeries: item.KeySeries,
|
keySeries: item.KeySeries,
|
||||||
tpCode: this.tpCode,
|
tpCode: this.tpCode,
|
||||||
loadStatus: false,
|
loadStatus: false,
|
||||||
imageloadedArr: [],
|
imageloadedArr: seriesId ? imageIds : [],
|
||||||
isExistMutiFrames: item.IsExistMutiFrames,
|
isExistMutiFrames: item.IsExistMutiFrames,
|
||||||
isShowPopper: false,
|
isShowPopper: false,
|
||||||
subjectCode: item.SubjectCode,
|
subjectCode: item.SubjectCode,
|
||||||
|
|
@ -447,10 +447,12 @@ export default {
|
||||||
this.seriesList = seriesList
|
this.seriesList = seriesList
|
||||||
if (this.seriesList.length > 0) {
|
if (this.seriesList.length > 0) {
|
||||||
this.loadAllImages()
|
this.loadAllImages()
|
||||||
if (isJump) {
|
let index = 0;
|
||||||
this.$refs.dicomViewer.loadImageStack(this.seriesList[0], this.labels[this.tpCode])
|
if (seriesId) {
|
||||||
this.firstInstanceId = this.seriesList[0].imageIds[0]
|
index = this.seriesList.findIndex(item => item.seriesId === seriesId)
|
||||||
}
|
}
|
||||||
|
this.$refs.dicomViewer.loadImageStack(this.seriesList[index], this.labels[this.tpCode])
|
||||||
|
this.firstInstanceId = this.seriesList[index].imageIds[0]
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<el-input v-model="input" placeholder="" clearable></el-input>
|
<el-input v-model="input" placeholder="" clearable></el-input>
|
||||||
|
<el-input v-model="pageIndex" placeholder="" clearable></el-input>
|
||||||
|
<el-input v-model="pageSize" placeholder="" clearable></el-input>
|
||||||
<el-button type="primary" size="small" :disabled="!input" @click.stop="getTrialUnreadVisitList">下载</el-button>
|
<el-button type="primary" size="small" :disabled="!input" @click.stop="getTrialUnreadVisitList">下载</el-button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -14,12 +16,19 @@ export default {
|
||||||
// },
|
// },
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
input: '08deab4a-f842-a7a4-0242-0a0001000000'
|
input: '08deab4a-f842-a7a4-0242-0a0001000000',
|
||||||
|
pageIndex: 1,
|
||||||
|
pageSize: 250
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
async getTrialUnreadVisitList() {
|
async getTrialUnreadVisitList() {
|
||||||
let res = await getTrialUnreadVisitList(this.input)
|
let params = {
|
||||||
|
TrialId: this.input,
|
||||||
|
PageIndex: this.pageIndex,
|
||||||
|
PageSize: this.pageSize,
|
||||||
|
}
|
||||||
|
let res = await getTrialUnreadVisitList(params)
|
||||||
if (res.IsSuccess) {
|
if (res.IsSuccess) {
|
||||||
let arr = res.Result
|
let arr = res.Result
|
||||||
this.LoopDownload(arr, 0)
|
this.LoopDownload(arr, 0)
|
||||||
|
|
@ -118,7 +127,7 @@ export default {
|
||||||
noneDicomStudy.FileList.forEach(file => {
|
noneDicomStudy.FileList.forEach(file => {
|
||||||
let time = noneDicomStudy.ImageDate.split(' ')[0]
|
let time = noneDicomStudy.ImageDate.split(' ')[0]
|
||||||
let obj = {
|
let obj = {
|
||||||
name: `${visit.TrialSiteCode}/${visit.SubjectCode}/${visit.VisitName}/${noneDicomStudy.StudyCode}_${time}_${noneDicomStudy.Modality}/${file.FileName}`,
|
name: `${noneDicomStudy.StudyCode}_${time}_${noneDicomStudy.Modality}/${file.FileName}`,
|
||||||
url: this.OSSclientConfig.basePath + file.Path,
|
url: this.OSSclientConfig.basePath + file.Path,
|
||||||
}
|
}
|
||||||
files.push(obj)
|
files.push(obj)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue