自定义标准完全随机阅片更改
continuous-integration/drone/push Build is passing Details

main
caiyiling 2026-07-10 13:12:44 +08:00
parent b8f96efa66
commit 9026b1d7fd
5 changed files with 39 additions and 17 deletions

View File

@ -1,7 +1,7 @@
<template> <template>
<div v-loading="loading" class="study-wrapper"> <div v-loading="loading" class="study-wrapper">
<div class="study-info" v-if="taskInfo && taskInfo.IsReadingShowSubjectInfo"> <div class="study-info">
<div :title="taskInfo.SubjectCode"> <div v-if="taskInfo && taskInfo.IsReadingShowSubjectInfo" :title="taskInfo.SubjectCode">
{{ taskInfo.SubjectCode }} {{ taskInfo.SubjectCode }}
</div> </div>
<div :title="visitTaskInfo.TaskBlindName"> <div :title="visitTaskInfo.TaskBlindName">
@ -329,7 +329,13 @@ export default {
margin: 0; margin: 0;
text-align: center; text-align: center;
background-color: #4c4c4c; background-color: #4c4c4c;
height: 50px; min-height: 50px;
height: auto;
flex-shrink: 0;
display: flex;
flex-direction: column;
justify-content: center;
word-break: break-word;
} }
.dicom-desc { .dicom-desc {

View File

@ -7,8 +7,8 @@
<svg-icon style="cursor: pointer;" icon-class="documentation" class="svg-icon" <svg-icon style="cursor: pointer;" icon-class="documentation" class="svg-icon"
@click.stop="viewCD(series.TaskInfo.VisitTaskId)" /> @click.stop="viewCD(series.TaskInfo.VisitTaskId)" />
</div> </div>
<h2 v-if="taskInfo.IsReadingShowSubjectInfo" class="subject-info"> <h2 class="subject-info">
{{ `${series.TaskInfo.SubjectCode} ${series.TaskInfo.TaskBlindName} ` }} {{ taskInfo.IsReadingShowSubjectInfo ? series.TaskInfo.SubjectCode + ' ' + series.TaskInfo.TaskBlindName : series.TaskInfo.TaskBlindName }}
</h2> </h2>
<div>Series: #{{ series.SeriesNumber }}</div> <div>Series: #{{ series.SeriesNumber }}</div>
<div v-if="series.Stack">Image: #{{ `${series.SliceIndex + 1}/${series.Stack.length}` }}</div> <div v-if="series.Stack">Image: #{{ `${series.SliceIndex + 1}/${series.Stack.length}` }}</div>

View File

@ -2,8 +2,10 @@
<div v-loading="loading" class="questionList-wrapper"> <div v-loading="loading" class="questionList-wrapper">
<div class="container"> <div class="container">
<div class="basic-info"> <div class="basic-info">
<h3 v-if="taskInfo && taskInfo.IsReadingShowSubjectInfo"> <h3>
<span v-if="visitInfo.SubjectCode">{{ visitInfo.SubjectCode }} </span> <span v-if="taskInfo && taskInfo.IsReadingShowSubjectInfo && visitInfo.SubjectCode">
{{ visitInfo.SubjectCode }}
</span>
<span style="margin-left:5px;">{{ visitInfo.TaskBlindName }}</span> <span style="margin-left:5px;">{{ visitInfo.TaskBlindName }}</span>
</h3> </h3>
<div v-if="readingTaskState < 2"> <div v-if="readingTaskState < 2">

View File

@ -192,8 +192,8 @@
<svg-icon style="cursor: pointer;" icon-class="documentation" class="svg-icon" <svg-icon style="cursor: pointer;" icon-class="documentation" class="svg-icon"
@click.stop="viewCD(v.taskInfo.VisitTaskId)" /> @click.stop="viewCD(v.taskInfo.VisitTaskId)" />
</div> </div>
<h2 v-if="taskInfo && taskInfo.IsReadingShowSubjectInfo && v.taskInfo" class="subject-info"> <h2 class="subject-info">
{{ `${taskInfo.SubjectCode} ${v.taskInfo.TaskBlindName} ` }} {{ taskInfo && taskInfo.IsReadingShowSubjectInfo && v.taskInfo ? taskInfo.SubjectCode + ' ' + v.taskInfo.TaskBlindName : v.taskInfo.TaskBlindName }}
</h2> </h2>
<div v-if="v.currentFileName">{{ v.currentFileName }}</div> <div v-if="v.currentFileName">{{ v.currentFileName }}</div>
</div> </div>

View File

@ -1,7 +1,7 @@
<template> <template>
<div v-loading="loading" class="study-wrapper"> <div v-loading="loading" class="study-wrapper">
<div class="study-info" v-if="taskInfo && taskInfo.IsReadingShowSubjectInfo"> <div class="study-info">
<div :title="taskInfo.SubjectCode"> <div v-if="taskInfo && taskInfo.IsReadingShowSubjectInfo" :title="taskInfo.SubjectCode">
{{ taskInfo.SubjectCode }} {{ taskInfo.SubjectCode }}
</div> </div>
<div :title="visitTaskInfo.TaskBlindName"> <div :title="visitTaskInfo.TaskBlindName">
@ -21,7 +21,7 @@
study.StudyName }}</span> study.StudyName }}</span>
</div> </div>
<div style="text-overflow: ellipsis;overflow: hidden;"> <div style="text-overflow: ellipsis;overflow: hidden;">
<span :title="study.BodyPart">{{ getBodyPart(study.BodyPart, study.BodyPartForEditOther) }}</span> <span :title="study.DisplayBodyPart">{{ study.DisplayBodyPart }}</span>
<span style="margin-left: 5px;" :title="study.Modality">{{ study.Modality }}</span> <span style="margin-left: 5px;" :title="study.Modality">{{ study.Modality }}</span>
</div> </div>
</div> </div>
@ -92,12 +92,12 @@ export default {
}, },
async mounted() { async mounted() {
this.taskInfo = JSON.parse(localStorage.getItem('taskInfo')) this.taskInfo = JSON.parse(localStorage.getItem('taskInfo'))
this.studyList = this.visitTaskInfo.StudyList this.BodyPart.Bodypart = await this.$getBodyPart(this.$route.query.trialId)
this.studyList = this.decorateStudyList(this.visitTaskInfo.StudyList || [])
if (this.studyList.length === 0) return if (this.studyList.length === 0) return
this.$nextTick(() => { this.$nextTick(() => {
this.activeStudy(this.studyList[0].Id) this.activeStudy(this.studyList[0].Id)
}) })
this.BodyPart.Bodypart = await this.$getBodyPart(this.$route.query.trialId)
}, },
watch: { watch: {
activeFileIndex() { activeFileIndex() {
@ -109,6 +109,12 @@ export default {
}, },
}, },
methods: { methods: {
decorateStudyList(studyList = []) {
return studyList.map(study => ({
...study,
DisplayBodyPart: this.getBodyPart(study.BodyPart, study.BodyPartForEditOther)
}))
},
scrollElementToTop(element, options = {}) { scrollElementToTop(element, options = {}) {
const container = this.$refs['studyBox_ps'] const container = this.$refs['studyBox_ps']
if (!container || !element) return if (!container || !element) return
@ -125,6 +131,7 @@ export default {
}, },
getBodyPart(bodyPart, other) { getBodyPart(bodyPart, other) {
if (!bodyPart && !other) return '' if (!bodyPart && !other) return ''
if (!bodyPart) return other || ''
var separator = ',' var separator = ','
if (bodyPart.indexOf('|') > -1) { if (bodyPart.indexOf('|') > -1) {
separator = '|' separator = '|'
@ -175,8 +182,9 @@ export default {
this.activeFileIndex = fIndex this.activeFileIndex = fIndex
}, },
activeStudy(id) { activeStudy(id) {
if (this.activeNames.indexOf(id) > -1) return const studyId = `${id}`
this.activeNames.push(id) if (this.activeNames.indexOf(studyId) > -1) return
this.activeNames.push(studyId)
}, },
handleChange(v) { handleChange(v) {
console.log(v) console.log(v)
@ -230,7 +238,13 @@ export default {
margin: 0; margin: 0;
text-align: center; text-align: center;
background-color: #4c4c4c; background-color: #4c4c4c;
height: 50px; min-height: 50px;
height: auto;
flex-shrink: 0;
display: flex;
flex-direction: column;
justify-content: center;
word-break: break-word;
} }
.dicom-desc { .dicom-desc {