影像浏览页面-关联访视,左侧的影像列表按照访视-检查-序列的层级展示;点击单个序列时,自动下载当前序列影像
continuous-integration/drone/push Build encountered an error
Details
continuous-integration/drone/push Build encountered an error
Details
parent
51a94ad89e
commit
17737d901c
|
@ -152,92 +152,106 @@
|
||||||
<el-tab-pane v-show="!visitTaskId" :label="$t('trials:dicom-show:relatedVisit')" name="relation-study"
|
<el-tab-pane v-show="!visitTaskId" :label="$t('trials:dicom-show:relatedVisit')" name="relation-study"
|
||||||
class="pane-relation-wrapper">
|
class="pane-relation-wrapper">
|
||||||
<div class="viewerSidethumbinner">
|
<div class="viewerSidethumbinner">
|
||||||
<el-collapse v-model="relationActiveName" @change="handelRelationActiveChange">
|
|
||||||
<el-collapse-item v-for="(study, studyIndex) in relationStudyList" :key="`${study.StudyId}`"
|
|
||||||
:name="`${study.StudyId}`">
|
|
||||||
<template slot="title">
|
|
||||||
|
|
||||||
<div class="text-desc">
|
<el-collapse v-model="relationActiveName" @change="handelRelationActiveChange">
|
||||||
{{ study.StudyCode }}
|
<template v-for="item in relationStudyListByVisitName">
|
||||||
|
<div :key="`${item.VisitName}`">
|
||||||
|
<div v-show="item.VisitName" class="text-desc" style="background-color: #1f1f1f;">
|
||||||
|
{{ item.VisitName }}
|
||||||
</div>
|
</div>
|
||||||
<!-- <div v-show="study.Description" class="text-desc">
|
<template v-for="(study, studyIndex) in relationStudyList">
|
||||||
|
<el-collapse-item :key="`${study.StudyId}`" :name="`${study.StudyId}`"
|
||||||
|
v-if="study.VisitName === item.VisitName">
|
||||||
|
<template slot="title">
|
||||||
|
|
||||||
|
<div class="text-desc">
|
||||||
|
{{ study.StudyCode }}
|
||||||
|
</div>
|
||||||
|
<!-- <div v-show="study.Description" class="text-desc">
|
||||||
{{ study.Description }}
|
{{ study.Description }}
|
||||||
</div> -->
|
</div> -->
|
||||||
|
|
||||||
<div v-show="study.SeriesCount" class="text-desc">
|
<div v-show="study.SeriesCount" class="text-desc">
|
||||||
{{ study.Modalities }} : {{ study.SeriesCount }} Series
|
{{ study.Modalities }} : {{ study.SeriesCount }} Series
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
<div v-show="study.Description" class="text-desc" style="background-color: #1f1f1f;">
|
|
||||||
{{ study.Description }}
|
|
||||||
</div>
|
|
||||||
<div class="viewerSidethumbs ps" style="position: relative;">
|
|
||||||
<div class="viewerSidethumbinner">
|
|
||||||
<div v-for="(seriesItem, index) in study.seriesList" :key="seriesItem.seriesId">
|
|
||||||
<div class="viewernavigatorwrapper" style="position: relative;border:1px solid #434343;"
|
|
||||||
series-type="relation"
|
|
||||||
@click="showRelationSeriesImage($event, seriesItem, studyIndex, index)">
|
|
||||||
<img class="image-preview" :src="seriesItem.previewImageUrl" crossorigin="anonymous"
|
|
||||||
alt="" style="width: 85px;height:85px;" fit="fill">
|
|
||||||
|
|
||||||
<div class="viewernavitextwrapper">
|
|
||||||
<div style="padding: 1px 5px 1px 1px;display: flex;justify-content: space-between;">
|
|
||||||
<div v-if="seriesItem.keySeries" style="color:red">
|
|
||||||
Key Images
|
|
||||||
</div>
|
|
||||||
<div v-else>#{{ seriesItem.seriesNumber }}</div>
|
|
||||||
<div v-if="seriesItem.isExistMutiFrames && seriesItem.instanceCount > 1">
|
|
||||||
<el-popover placement="right-start" trigger="click"
|
|
||||||
popper-class="instance_frame_wrapper">
|
|
||||||
<div class="frame_list">
|
|
||||||
<div v-for="(instance, idx) in seriesItem.instanceInfoList" :key="instance.Id"
|
|
||||||
class="frame_content"
|
|
||||||
:style="{ 'margin-bottom': idx < seriesItem.instanceInfoList.length - 1 ? '5px' : '0px' }"
|
|
||||||
@click="showMultiFrames(studyIndex, seriesItem, index, instance)">
|
|
||||||
<div>
|
|
||||||
<div>{{ instance.InstanceNumber }}</div>
|
|
||||||
<div>{{ `${instance.NumberOfFrames > 0 ? instance.NumberOfFrames : 1} frame`
|
|
||||||
}}</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<i slot="reference" class="el-icon-connection"
|
|
||||||
style="font-size: 15px;cursor: pointer;" />
|
|
||||||
</el-popover>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div v-show="seriesItem.instanceCount" style="padding: 1px;">
|
|
||||||
{{ seriesItem.modality }}: {{ seriesItem.instanceCount }} image
|
|
||||||
</div>
|
|
||||||
<div v-show="seriesItem.sliceThickness" style="padding: 1px;">
|
|
||||||
T: {{ seriesItem.sliceThickness }}
|
|
||||||
</div>
|
|
||||||
<el-tooltip v-show="seriesItem.description" class="item" effect="dark"
|
|
||||||
:content="seriesItem.description" placement="bottom">
|
|
||||||
<div v-show="seriesItem.description"
|
|
||||||
style="width: 120px;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;padding: 1x;">
|
|
||||||
{{ seriesItem.description }}
|
|
||||||
</div>
|
|
||||||
</el-tooltip>
|
|
||||||
</div>
|
</div>
|
||||||
|
</template>
|
||||||
|
<div v-show="study.Description" class="text-desc" style="background-color: #1f1f1f;">
|
||||||
|
{{ study.Description }}
|
||||||
</div>
|
</div>
|
||||||
<!-- <el-image
|
<div class="viewerSidethumbs ps" style="position: relative;">
|
||||||
|
<div class="viewerSidethumbinner">
|
||||||
|
<div v-for="(seriesItem, index) in study.seriesList" :key="seriesItem.seriesId">
|
||||||
|
<div class="viewernavigatorwrapper"
|
||||||
|
style="position: relative;border:1px solid #434343;" series-type="relation"
|
||||||
|
@click="showRelationSeriesImage($event, seriesItem, studyIndex, index)">
|
||||||
|
<img class="image-preview" :src="seriesItem.previewImageUrl" crossorigin="anonymous"
|
||||||
|
alt="" style="width: 85px;height:85px;" fit="fill">
|
||||||
|
|
||||||
|
<div class="viewernavitextwrapper">
|
||||||
|
<div
|
||||||
|
style="padding: 1px 5px 1px 1px;display: flex;justify-content: space-between;">
|
||||||
|
<div v-if="seriesItem.keySeries" style="color:red">
|
||||||
|
Key Images
|
||||||
|
</div>
|
||||||
|
<div v-else>#{{ seriesItem.seriesNumber }}</div>
|
||||||
|
<div v-if="seriesItem.isExistMutiFrames && seriesItem.instanceCount > 1">
|
||||||
|
<el-popover placement="right-start" trigger="click"
|
||||||
|
popper-class="instance_frame_wrapper">
|
||||||
|
<div class="frame_list">
|
||||||
|
<div v-for="(instance, idx) in seriesItem.instanceInfoList"
|
||||||
|
:key="instance.Id" class="frame_content"
|
||||||
|
:style="{ 'margin-bottom': idx < seriesItem.instanceInfoList.length - 1 ? '5px' : '0px' }"
|
||||||
|
@click="showMultiFrames(studyIndex, seriesItem, index, instance)">
|
||||||
|
<div>
|
||||||
|
<div>{{ instance.InstanceNumber }}</div>
|
||||||
|
<div>{{ `${instance.NumberOfFrames > 0 ? instance.NumberOfFrames : 1}
|
||||||
|
frame`
|
||||||
|
}}</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<i slot="reference" class="el-icon-connection"
|
||||||
|
style="font-size: 15px;cursor: pointer;" />
|
||||||
|
</el-popover>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div v-show="seriesItem.instanceCount" style="padding: 1px;">
|
||||||
|
{{ seriesItem.modality }}: {{ seriesItem.instanceCount }} image
|
||||||
|
</div>
|
||||||
|
<div v-show="seriesItem.sliceThickness" style="padding: 1px;">
|
||||||
|
T: {{ seriesItem.sliceThickness }}
|
||||||
|
</div>
|
||||||
|
<el-tooltip v-show="seriesItem.description" class="item" effect="dark"
|
||||||
|
:content="seriesItem.description" placement="bottom">
|
||||||
|
<div v-show="seriesItem.description"
|
||||||
|
style="width: 120px;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;padding: 1x;">
|
||||||
|
{{ seriesItem.description }}
|
||||||
|
</div>
|
||||||
|
</el-tooltip>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- <el-image
|
||||||
class="image-preview"
|
class="image-preview"
|
||||||
style="height:72px;width:72px;"
|
style="height:72px;width:72px;"
|
||||||
:src="seriesItem.previewImageUrl"
|
:src="seriesItem.previewImageUrl"
|
||||||
fit="fill"
|
fit="fill"
|
||||||
/> -->
|
/> -->
|
||||||
<div
|
<div
|
||||||
v-if="seriesItem.prefetchInstanceCount > 0 && seriesItem.prefetchInstanceCount < seriesItem.instanceCount * 100">
|
v-if="seriesItem.prefetchInstanceCount > 0 && seriesItem.prefetchInstanceCount < seriesItem.instanceCount * 100">
|
||||||
<el-progress
|
<el-progress
|
||||||
:percentage="parseInt((seriesItem.prefetchInstanceCount / seriesItem.instanceCount).toFixed(2))" />
|
:percentage="parseInt((seriesItem.prefetchInstanceCount / seriesItem.instanceCount).toFixed(2))" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</el-collapse-item>
|
||||||
</div>
|
</template>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</el-collapse-item>
|
</template>
|
||||||
|
|
||||||
</el-collapse>
|
</el-collapse>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@ -293,6 +307,7 @@ export default {
|
||||||
visitInfo: '',
|
visitInfo: '',
|
||||||
activeName: 'current-study',
|
activeName: 'current-study',
|
||||||
relationStudyList: [],
|
relationStudyList: [],
|
||||||
|
relationStudyListByVisitName: [],
|
||||||
cachedImages: [],
|
cachedImages: [],
|
||||||
isReading: null,
|
isReading: null,
|
||||||
isStartLoad: false,
|
isStartLoad: false,
|
||||||
|
@ -692,7 +707,20 @@ export default {
|
||||||
const res = await getAllRelationStudyList(this.subjectVisitId)
|
const res = await getAllRelationStudyList(this.subjectVisitId)
|
||||||
loading.close()
|
loading.close()
|
||||||
this.relationStudyList = res.Result
|
this.relationStudyList = res.Result
|
||||||
|
this.relationStudyListByVisitName = []
|
||||||
|
res.Result.forEach(item => {
|
||||||
|
let index = this.relationStudyListByVisitName.findIndex(d => d.VisitName === item.VisitName)
|
||||||
|
if (index < 0) {
|
||||||
|
this.relationStudyListByVisitName.push({
|
||||||
|
VisitName: item.VisitName,
|
||||||
|
series: [item]
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
this.relationStudyListByVisitName[index].series.push(item)
|
||||||
|
}
|
||||||
|
})
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
console.log(e)
|
||||||
loading.close()
|
loading.close()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -798,6 +826,9 @@ export default {
|
||||||
this.imageList.push({ imageId: imageId, seriesId: series.seriesId, priority })
|
this.imageList.push({ imageId: imageId, seriesId: series.seriesId, priority })
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
if (this.imageList.length > 0) {
|
||||||
|
this.loopLoad()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
loadAllImages() {
|
loadAllImages() {
|
||||||
|
|
Loading…
Reference in New Issue