完全随机IR阅片列表及阅片页面更改
continuous-integration/drone/push Build is pending Details

main
caiyiling 2026-07-09 14:17:02 +08:00
parent 447b74fa55
commit 1af9b48622
7 changed files with 39 additions and 22 deletions

View File

@ -27,7 +27,7 @@
class="study-wrapper">
<StudyList v-if="selectArr.includes(s.VisitTaskId)" :ref="s.VisitTaskId" :visit-task-id="s.VisitTaskId"
:trial-id="trialId" :subject-visit-id="s.VisitId" :task-blind-name="s.TaskBlindName"
:is-reading-show-subject-info="isReadingShowSubjectInfo" @loadImageStack="loadImageStack"
:is-reading-show-subject-info="isReadingShowSubjectInfo" :is-reading-task-view-in-order="isReadingTaskViewInOrder" @loadImageStack="loadImageStack"
@previewNoneDicoms="previewNoneDicoms" />
</div>
</div>

View File

@ -28,7 +28,7 @@
</div>
<div>
<span class="study-meta-line" :title="study.Modalities">
<span class="study-code" :title="study.StudyCode">{{ study.StudyCode }}</span>
<span v-if="isReadingTaskViewInOrder !== 0" class="study-code" :title="study.StudyCode">{{ study.StudyCode }}</span>
<span class="study-modality">{{ study.Modalities }}({{ study.SeriesCount }})</span>
<span class="patient-info" v-if="['PT、CT', 'CT、PT', 'PET-CT'].includes(study.Modalities)">
<el-popover placement="right-start" trigger="hover" popper-class="patient-info-popper">
@ -226,6 +226,10 @@ export default {
isReadingShowSubjectInfo: {
type: Boolean,
required: true
},
isReadingTaskViewInOrder: {
type: Number,
required: true
}
},
data() {
@ -340,7 +344,7 @@ export default {
}
})
var i = -1
var isReadingTaskViewInOrder = parseInt(this.$router.currentRoute.query.isReadingTaskViewInOrder)
var isReadingTaskViewInOrder = parseInt(this.isReadingTaskViewInOrder)
if (isReadingTaskViewInOrder === 2) {
//
i = res.length === 2 ? 1 : -1
@ -427,7 +431,7 @@ export default {
async getInitSeries() {
var seriesList = []
var isReadingTaskViewInOrder = parseInt(this.$router.currentRoute.query.isReadingTaskViewInOrder)
var isReadingTaskViewInOrder = parseInt(this.isReadingTaskViewInOrder)
var idx = this.visitTaskList.findIndex(i => i.VisitTaskId === this.visitTaskId)
this.studyList = this.visitTaskList[idx].StudyList
const studyList = this.visitTaskList[idx].StudyList.filter(i => i.IsDicom)

View File

@ -1,10 +1,10 @@
<template>
<div v-loading="loading" class="study-wrapper">
<div class="study-info">
<div v-if="taskInfo && taskInfo.IsReadingShowSubjectInfo" :title="taskInfo.SubjectCode">
<div class="study-info" v-if="taskInfo && taskInfo.IsReadingShowSubjectInfo">
<div :title="taskInfo.SubjectCode">
{{ taskInfo.SubjectCode }}
</div>
<div v-if="taskInfo && taskInfo.IsReadingShowSubjectInfo" :title="visitTaskInfo.TaskBlindName">
<div :title="visitTaskInfo.TaskBlindName">
{{ visitTaskInfo.TaskBlindName }}
</div>
</div>
@ -21,7 +21,7 @@
</div>
<div>
<span class="study-meta-line" :title="study.Modalities">
<span class="study-code" :title="study.StudyCode">{{ study.StudyCode }}</span>
<span v-if="taskInfo && taskInfo.IsReadingTaskViewInOrder !== 0" class="study-code" :title="study.StudyCode">{{ study.StudyCode }}</span>
<span class="study-modality">{{ `${study.Modalities}(${study.SeriesCount})` }}</span>
<span class="patient-info" v-if="['PT、CT', 'CT、PT', 'PET-CT'].includes(study.Modalities)">
<el-popover placement="right-start" trigger="hover" popper-class="patient-info-popper">

View File

@ -24,7 +24,7 @@
</el-select>
</el-form-item>
<!-- 受试者编号 -->
<el-form-item :label="$t('trials:medicalFeedback:table:subjectCode')">
<el-form-item v-if="otherInfo && otherInfo.IsReadingTaskViewInOrder !== 0" :label="$t('trials:medicalFeedback:table:subjectCode')">
<el-input
v-model="searchData.SubjectCode"
style="width:130px;"
@ -172,6 +172,7 @@
<!-- 受试者编号 -->
<el-table-column
v-if="otherInfo && otherInfo.IsReadingTaskViewInOrder !== 0"
prop="SubjectCode"
min-width="100"
:label="$t('trials:medicalFeedback:table:subjectCode')"
@ -409,7 +410,8 @@ export default {
chatForm: { visible: false, title: '' }, //
auditVisible: false,
trialCriterionList: [],
TrialReadingCriterionId: '0'
TrialReadingCriterionId: '0',
otherInfo: null
}
},
watch: {
@ -437,6 +439,7 @@ export default {
getIRMedicalFeedbackList(this.searchData).then(res => {
this.list = res.Result.CurrentPageData
this.total = res.Result.TotalCount
this.otherInfo = res.OtherInfo
this.loading = false
}).catch(() => { this.loading = false })
},
@ -454,7 +457,11 @@ export default {
},
handleReply(row) {
this.currentRow = { ...row }
this.chatForm.title = `${this.$t('trials:medicalFeedback:title:qaRecord')} (${row.SubjectCode} ${row.TaskBlindName})`
if (this.otherInfo && this.otherInfo.IsReadingTaskViewInOrder !== 0) {
this.chatForm.title = `${this.$t('trials:medicalFeedback:title:qaRecord')} (${row.SubjectCode} ${row.TaskBlindName})`
} else {
this.chatForm.title = `${this.$t('trials:medicalFeedback:title:qaRecord')} (${row.TaskBlindName})`
}
this.chatForm.visible = true
},
async nextTask(taskMedicalReviewId) {

View File

@ -13,7 +13,7 @@
</el-select>
</el-form-item>
<!-- 受试者编号 -->
<el-form-item :label="$t('trials:readTask:table:subjectCode')">
<el-form-item v-if="otherInfo && otherInfo.IsReadingTaskViewInOrder !== 0" :label="$t('trials:readTask:table:subjectCode')">
<el-input v-model="searchData.SubjectCode" style="width:130px;" clearable />
</el-form-item>
<!-- 任务状态 -->
@ -70,7 +70,7 @@
show-overflow-tooltip
/> -->
<!-- 受试者编号 -->
<el-table-column prop="SubjectCode" min-width="100" :label="$t('trials:readTask:table:subjectCode')"
<el-table-column v-if="otherInfo && otherInfo.IsReadingTaskViewInOrder !== 0" prop="SubjectCode" min-width="100" :label="$t('trials:readTask:table:subjectCode')"
sortable="custom" show-overflow-tooltip />
<!-- 盲态任务标识 -->
<el-table-column prop="TaskBlindName" min-width="100" :label="$t('trials:readTask:table:blindName')"
@ -177,7 +177,8 @@
custom-class="base-dialog-wrapper">
<el-form ref="reasonForm" :rules="rules" :model="ApplyforReasonForm" class="demo-ruleForm" size="small"
label-width="380px">
<p>{{ $t('trials:readTask:applyReread:title').replace('xxx', rowData.SubjectCode).replace('yyy', rowData.TaskBlindName) }}</p>
<p v-if="otherInfo && otherInfo.IsReadingTaskViewInOrder !== 0">{{ $t('trials:readTask:applyReread:title').replace('xxx', rowData.SubjectCode).replace('yyy', rowData.TaskBlindName) }}</p>
<p v-else>{{ $t('trials:readTask:applyReread:title2').replace('yyy', rowData.TaskBlindName) }}</p>
<!-- 申请原因 -->
<el-divider content-position="left">{{ $t('trials:readTask:title:applyReason') }}</el-divider>
<!-- 申请原因 -->
@ -229,7 +230,7 @@
<el-table-column prop="TrialSiteCode" :label="$t('trials:readTask:table:siteCode')" min-width="100"
show-overflow-tooltip />
<!-- 受试者编号 -->
<el-table-column prop="SubjectCode" :label="$t('trials:readTask:table:subjectCode')" min-width="120"
<el-table-column v-if="otherInfo && otherInfo.IsReadingTaskViewInOrder !== 0" prop="SubjectCode" :label="$t('trials:readTask:table:subjectCode')" min-width="120"
show-overflow-tooltip />
<!-- <el-table-column
prop="VisitTaskNum"
@ -366,7 +367,8 @@ export default {
},
trialCriterionList: [],
TrialReadingCriterionId: '0',
openWindow: null
openWindow: null,
otherInfo: null
}
},
watch: {
@ -413,6 +415,7 @@ export default {
getIRHaveReadTaskList(this.searchData).then(res => {
this.list = res.Result.CurrentPageData
this.total = res.Result.TotalCount
this.otherInfo = res.OtherInfo
this.loading = false
}).catch(() => { this.loading = false })
},

View File

@ -35,7 +35,7 @@
</el-select>
</el-form-item>
<!-- 受试者编号 -->
<el-form-item :label="$t('trials:rereadTask:table:subjectCode')">
<el-form-item v-if="otherInfo && otherInfo.IsReadingTaskViewInOrder !== 0" :label="$t('trials:rereadTask:table:subjectCode')">
<el-input v-model="searchData.SubjectCode" style="width:100px;" />
</el-form-item>
<!-- <el-form-item style="margin-bottom:10px" label="访视/阅片期名称">
@ -121,6 +121,7 @@
/>
<!-- 受试者编号 -->
<el-table-column
v-if="otherInfo && otherInfo.IsReadingTaskViewInOrder !== 0"
prop="OriginalReReadingTask.SubjectCode"
min-width="90"
:label="$t('trials:rereadTask:table:subjectCode')"
@ -330,7 +331,8 @@ export default {
},
ConfirmReReadingVisible: false,
trialCriterionList: [],
TrialReadingCriterionId: '0'
TrialReadingCriterionId: '0',
otherInfo: null
}
},
watch: {
@ -373,6 +375,7 @@ export default {
getIRReReadingTaskList(this.searchData).then(res => {
this.list = res.Result.CurrentPageData
this.total = res.Result.TotalCount
this.otherInfo = res.OtherInfo
this.loading = false
}).catch(() => { this.loading = false })
},

View File

@ -1,10 +1,10 @@
<template>
<div v-loading="loading" class="study-wrapper">
<div class="study-info">
<div v-if="taskInfo && taskInfo.IsReadingShowSubjectInfo" :title="taskInfo.SubjectCode">
<div class="study-info" v-if="taskInfo && taskInfo.IsReadingShowSubjectInfo">
<div :title="taskInfo.SubjectCode">
{{ taskInfo.SubjectCode }}
</div>
<div v-if="taskInfo && taskInfo.IsReadingShowSubjectInfo" :title="visitTaskInfo.TaskBlindName">
<div :title="visitTaskInfo.TaskBlindName">
{{ visitTaskInfo.TaskBlindName }}
</div>
</div>
@ -15,7 +15,7 @@
<div v-if="!study.IsCriticalSequence" class="dicom-desc">
<!-- <div v-if="taskInfo && taskInfo.IsShowStudyName">{{ study.StudyName }}</div> -->
<div style="text-overflow: ellipsis;overflow: hidden;">
<span :title="study.CodeView">{{ study.CodeView }}</span>
<span v-if="taskInfo && taskInfo.IsReadingTaskViewInOrder !== 0" :title="study.CodeView">{{ study.CodeView }}</span>
<span v-if="taskInfo && taskInfo.IsShowStudyName" :title="study.StudyName" style="margin-left: 5px;">{{
study.StudyName }}</span>
</div>