影像质控风险管理
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
4e46bbac84
commit
363ffa58b3
|
|
@ -83,33 +83,36 @@
|
||||||
{{ item.description }}
|
{{ item.description }}
|
||||||
</div>
|
</div>
|
||||||
<div v-if="!item.keySeries" style="padding: 1px;">
|
<div v-if="!item.keySeries" style="padding: 1px;">
|
||||||
{{ series.imageloadedArr.length <= series.instanceCount ? series.imageloadedArr.length : series.instanceCount }}/{{ item.instanceCount }}
|
{{ series.imageloadedArr.length <= series.instanceCount ? series.imageloadedArr.length :
|
||||||
|
series.instanceCount }}/{{ item.instanceCount }} </div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div v-if="showDelete" style="display: flex;flex-direction: row;justify-content: space-between;"
|
||||||
<div v-if="showDelete" style="display: flex;flex-direction: row;justify-content: space-between;"
|
@click.stop="">
|
||||||
@click.stop="">
|
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<span style="font-size: 12px;margin-right: 5px">{{ $t('trials:audit:table:isReading')
|
<span style="font-size: 12px;margin-right: 5px">{{ $t('trials:audit:table:isReading')
|
||||||
}}</span>
|
}}</span>
|
||||||
<el-switch v-model="item.isReading" size="mini" @change="changeReadingStatus($event, item)" />
|
<el-switch v-model="item.isReading" size="mini"
|
||||||
|
@change="changeReadingStatus($event, item)" />
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<span style="font-size: 12px;margin-right: 5px">{{ $t('trials:audit:table:isDelete')
|
||||||
|
}}</span>
|
||||||
|
<el-switch v-model="item.isDeleted" size="mini"
|
||||||
|
@change="changeDeleteStatus($event, item)" />
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div
|
||||||
<span style="font-size: 12px;margin-right: 5px">{{ $t('trials:audit:table:isDelete') }}</span>
|
v-if="item.prefetchInstanceCount > 0 && item.prefetchInstanceCount < item.instanceCount * 100">
|
||||||
<el-switch v-model="item.isDeleted" size="mini" @change="changeDeleteStatus($event, item)" />
|
<el-progress
|
||||||
|
:percentage="parseInt((item.prefetchInstanceCount / item.instanceCount).toFixed(2))" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
v-if="item.prefetchInstanceCount > 0 && item.prefetchInstanceCount < item.instanceCount * 100">
|
|
||||||
<el-progress
|
|
||||||
:percentage="parseInt((item.prefetchInstanceCount / item.instanceCount).toFixed(2))" />
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -891,6 +894,7 @@ export default {
|
||||||
// 设置当前序列状态为已下载完成
|
// 设置当前序列状态为已下载完成
|
||||||
this.seriesList[seriesIndex].loadStatus = true
|
this.seriesList[seriesIndex].loadStatus = true
|
||||||
workSpeedclose()
|
workSpeedclose()
|
||||||
|
localStorage.setItem("QCRiskControl", 1)
|
||||||
if (!this.isFromCRCUpload) {
|
if (!this.isFromCRCUpload) {
|
||||||
this.loadAllImages()
|
this.loadAllImages()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -113,35 +113,35 @@
|
||||||
</div>
|
</div>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
<div style="padding: 1px;">
|
<div style="padding: 1px;">
|
||||||
{{ series.imageloadedArr.length <= series.instanceCount ? series.imageloadedArr.length : series.instanceCount }}/{{ series.instanceCount }}
|
{{ series.imageloadedArr.length <= series.instanceCount ? series.imageloadedArr.length :
|
||||||
|
series.instanceCount }}/{{ series.instanceCount }} </div>
|
||||||
|
<div />
|
||||||
</div>
|
</div>
|
||||||
<div />
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div v-if="showDelete"
|
||||||
<div v-if="showDelete"
|
style="display: flex;flex-direction: row;justify-content: space-between;" @click.stop="">
|
||||||
style="display: flex;flex-direction: row;justify-content: space-between;" @click.stop="">
|
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<span style="font-size: 12px;">{{ $t('trials:audit:table:isReading') }}</span>
|
<span style="font-size: 12px;">{{ $t('trials:audit:table:isReading') }}</span>
|
||||||
<el-switch v-model="series.isReading" size="mini"
|
<el-switch v-model="series.isReading" size="mini"
|
||||||
@change="changeReadingStatus($event, series)" />
|
@change="changeReadingStatus($event, series)" />
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<span style="font-size: 12px;">{{ $t('trials:audit:table:isDelete') }}</span>
|
||||||
|
<el-switch v-model="series.isDeleted" size="mini"
|
||||||
|
@change="changeDeleteStatus($event, series)" />
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<!-- <div style="position: absolute;bottom: -10px;left: 0;width: 100%;">
|
||||||
<span style="font-size: 12px;">{{ $t('trials:audit:table:isDelete') }}</span>
|
|
||||||
<el-switch v-model="series.isDeleted" size="mini"
|
|
||||||
@change="changeDeleteStatus($event, series)" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- <div style="position: absolute;bottom: -10px;left: 0;width: 100%;">
|
|
||||||
<el-progress v-if="series.prefetchInstanceCount>0 && series.prefetchInstanceCount<series.instanceCount" :percentage="Number(series.prefetchInstanceCount/series.instanceCount)*100" />
|
<el-progress v-if="series.prefetchInstanceCount>0 && series.prefetchInstanceCount<series.instanceCount" :percentage="Number(series.prefetchInstanceCount/series.instanceCount)*100" />
|
||||||
</div> -->
|
</div> -->
|
||||||
<div
|
<div
|
||||||
v-if="series.prefetchInstanceCount > 0 && series.prefetchInstanceCount < series.instanceCount * 100">
|
v-if="series.prefetchInstanceCount > 0 && series.prefetchInstanceCount < series.instanceCount * 100">
|
||||||
<el-progress
|
<el-progress
|
||||||
:percentage="parseInt((series.prefetchInstanceCount / series.instanceCount).toFixed(2))" />
|
:percentage="parseInt((series.prefetchInstanceCount / series.instanceCount).toFixed(2))" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</el-collapse-item>
|
</el-collapse-item>
|
||||||
|
|
||||||
</el-collapse>
|
</el-collapse>
|
||||||
|
|
@ -937,6 +937,7 @@ export default {
|
||||||
this.loadAllImages()
|
this.loadAllImages()
|
||||||
}
|
}
|
||||||
workSpeedclose()
|
workSpeedclose()
|
||||||
|
localStorage.setItem("QCRiskControl", 1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1100,6 +1100,8 @@ export default {
|
||||||
SecondReviewTime: '',
|
SecondReviewTime: '',
|
||||||
IsSecondPass: false,
|
IsSecondPass: false,
|
||||||
userId: zzSessionStorage.getItem('userId'),
|
userId: zzSessionStorage.getItem('userId'),
|
||||||
|
|
||||||
|
QCRiskControl: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
async mounted() {
|
async mounted() {
|
||||||
|
|
@ -1314,6 +1316,7 @@ export default {
|
||||||
this.SecondReviewTime = this.secondReviewList[0].SecondReviewTime
|
this.SecondReviewTime = this.secondReviewList[0].SecondReviewTime
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
this.QCRiskControl = res.Result.QCRiskControl
|
||||||
this.existsManual = res.Result.ExistsManual
|
this.existsManual = res.Result.ExistsManual
|
||||||
this.qCQuestionAnswerList = res.Result.QCQuestionAnswerList
|
this.qCQuestionAnswerList = res.Result.QCQuestionAnswerList
|
||||||
this.IsHaveStudyClinicalData = res.Result.IsHaveStudyClinicalData
|
this.IsHaveStudyClinicalData = res.Result.IsHaveStudyClinicalData
|
||||||
|
|
@ -1929,6 +1932,7 @@ export default {
|
||||||
this.auditState = auditState
|
this.auditState = auditState
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
if (localStorage.getItem('QCRiskControl') <= 0 && this.QCRiskControl) return this.$confirm(this.$t('trials:qcQuality:title:noViewImage'))
|
||||||
if (auditState === 8) {
|
if (auditState === 8) {
|
||||||
var isgo = true
|
var isgo = true
|
||||||
var hasStudyName = true,
|
var hasStudyName = true,
|
||||||
|
|
@ -2421,6 +2425,7 @@ export default {
|
||||||
if (this.open) {
|
if (this.open) {
|
||||||
this.open.close()
|
this.open.close()
|
||||||
}
|
}
|
||||||
|
localStorage.setItem("QCRiskControl", 1)
|
||||||
// this.previewAllNoneDicomVisible = true
|
// this.previewAllNoneDicomVisible = true
|
||||||
let trialId = this.$route.query.trialId
|
let trialId = this.$route.query.trialId
|
||||||
var token = getToken()
|
var token = getToken()
|
||||||
|
|
@ -2438,6 +2443,7 @@ export default {
|
||||||
if (this.open) {
|
if (this.open) {
|
||||||
this.open.close()
|
this.open.close()
|
||||||
}
|
}
|
||||||
|
localStorage.setItem("QCRiskControl", 1)
|
||||||
let trialId = this.$route.query.trialId
|
let trialId = this.$route.query.trialId
|
||||||
var token = getToken()
|
var token = getToken()
|
||||||
const routeData = this.$router.resolve({
|
const routeData = this.$router.resolve({
|
||||||
|
|
|
||||||
|
|
@ -880,6 +880,7 @@ export default {
|
||||||
// 初审
|
// 初审
|
||||||
handlePrimaryQC(row) {
|
handlePrimaryQC(row) {
|
||||||
if (!this.OtherInfo.IsQCQuestionConfirmed) return this.$alert(this.$t("trials:qcCheck:alert:questionNoConfirm"))
|
if (!this.OtherInfo.IsQCQuestionConfirmed) return this.$alert(this.$t("trials:qcCheck:alert:questionNoConfirm"))
|
||||||
|
localStorage.setItem("QCRiskControl", 0)
|
||||||
this.loading = true
|
this.loading = true
|
||||||
isQCCanOpt(row.Id)
|
isQCCanOpt(row.Id)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue