阅片跟踪列表调整及阅片页面更改
continuous-integration/drone/push Build is passing Details

uat_us
caiyiling 2024-05-28 13:54:57 +08:00
parent 7758671f89
commit f8d921d9e5
5 changed files with 65 additions and 12 deletions

View File

@ -8,7 +8,6 @@
style="width:100%;height:100%;position:relative;" style="width:100%;height:100%;position:relative;"
class="cornerstone-element" class="cornerstone-element"
@contextmenu.prevent="onContextmenu" @contextmenu.prevent="onContextmenu"
@mousemove="sliderMousemove"
@mouseup="sliderMouseup" @mouseup="sliderMouseup"
> >
<div v-show="dicomInfo.series" class="info-series"> <div v-show="dicomInfo.series" class="info-series">
@ -54,7 +53,7 @@
<!-- <div v-show="dicomInfo.acc">ACC {{ dicomInfo.acc }}</div> --> <!-- <div v-show="dicomInfo.acc">ACC {{ dicomInfo.acc }}</div> -->
<!-- <div>{{ dicomInfo.time }}</div> --> <!-- <div>{{ dicomInfo.time }}</div> -->
</div> </div>
<div ref="sliderBox" class="my_slider_box" style="position: absolute;right: 1px;height: calc(100% - 100px);transform: translateY(-50%);top: calc(50% - 30px);width: 10px;background: #333;cursor: pointer"> <div ref="sliderBox" class="my_slider_box" style="position: absolute;right: 1px;height: calc(100% - 100px);transform: translateY(-50%);top: calc(50% - 30px);width: 10px;background: #333;cursor: pointer" @click.stop="goViewer($event)">
<div :style="{top: height + '%'}" style="z-index:10;background: #9e9e9e;height: 20px;width: 100%;position: absolute;top: 0;cursor: move" @mousedown="sliderMousedown($event)" /> <div :style="{top: height + '%'}" style="z-index:10;background: #9e9e9e;height: 20px;width: 100%;position: absolute;top: 0;cursor: move" @mousedown="sliderMousedown($event)" />
</div> </div>
<div style="position: absolute;left: 50%;top: 15px;color: #f44336;"> <div style="position: absolute;left: 50%;top: 15px;color: #f44336;">
@ -186,6 +185,9 @@ export default {
document.addEventListener('mouseup', () => { document.addEventListener('mouseup', () => {
this.sliderMouseup() this.sliderMouseup()
}) })
document.addEventListener('mousemove', (e) => {
this.sliderMousemove(e)
})
this.canvas.addEventListener('cornerstonetoolsstackscroll', this.stackScrollCallback) this.canvas.addEventListener('cornerstonetoolsstackscroll', this.stackScrollCallback)
}, },
@ -356,6 +358,12 @@ export default {
if (this.dicomInfo.thick) { if (this.dicomInfo.thick) {
this.dicomInfo.thick = this.dicomInfo.thick.toFixed(2) this.dicomInfo.thick = this.dicomInfo.thick.toFixed(2)
} }
let newImageIdIndex = this.stack.imageIds.findIndex(i=>i===e.detail.image.imageId)
if(newImageIdIndex === -1) return
this.stack.currentImageIdIndex = newImageIdIndex
this.stack.imageIdIndex = newImageIdIndex
this.series.imageIdIndex = newImageIdIndex
this.height = (this.stack.currentImageIdIndex) * 100 / (this.stack.imageIds.length - 1)
}, },
stackScrollCallback(e) { stackScrollCallback(e) {
const { detail } = e const { detail } = e
@ -438,10 +446,10 @@ export default {
} }
}, },
onImageLoaded(e) { onImageLoaded(e) {
var image = e.detail.image // var image = e.detail.image
// var seriesIndex = -1 // // var seriesIndex = -1
var seriesUid = image.data.string('x0020000e') // var seriesUid = image.data.string('x0020000e')
console.log(seriesUid) // console.log(seriesUid)
}, },
getToolForElement(toolName) { getToolForElement(toolName) {
var isExist = false var isExist = false
@ -521,6 +529,9 @@ export default {
this.sliderInfo.oldB = parseInt(e.srcElement.style.top) * boxHeight / 100 this.sliderInfo.oldB = parseInt(e.srcElement.style.top) * boxHeight / 100
this.sliderInfo.oldM = e.clientY this.sliderInfo.oldM = e.clientY
this.sliderInfo.isMove = true this.sliderInfo.isMove = true
e.stopImmediatePropagation()
e.stopPropagation()
e.preventDefault()
}, },
sliderMousemove(e) { sliderMousemove(e) {
if (!this.sliderInfo.isMove) return if (!this.sliderInfo.isMove) return
@ -540,6 +551,13 @@ export default {
sliderMouseup(e) { sliderMouseup(e) {
this.sliderInfo.isMove = false this.sliderInfo.isMove = false
}, },
goViewer(e) {
// console.log(this.$refs['sliderBox'].clientHeight)
var height = e.offsetY * 100 / this.$refs['sliderBox'].clientHeight
this.height = height
var index = Math.trunc(this.stack.imageIds.length * this.height / 100)
scroll(this.canvas, index)
},
onClipStopped() { onClipStopped() {
this.toolState.clipPlaying = false this.toolState.clipPlaying = false
}, },

View File

@ -1243,6 +1243,12 @@ export default {
if (this.dicomInfo.thick) { if (this.dicomInfo.thick) {
this.dicomInfo.thick = this.dicomInfo.thick.toFixed(2) this.dicomInfo.thick = this.dicomInfo.thick.toFixed(2)
} }
let newImageIdIndex = this.stack.imageIds.findIndex(i=>i===imageId)
if(newImageIdIndex === -1) return
this.stack.currentImageIdIndex = newImageIdIndex
this.stack.imageIdIndex = newImageIdIndex
this.series.imageIdIndex = newImageIdIndex
this.height = (this.stack.currentImageIdIndex) * 100 / (this.stack.imageIds.length - 1)
}, },
getScreenshots() { getScreenshots() {
const canvas = this.canvas.querySelector('canvas') const canvas = this.canvas.querySelector('canvas')

View File

@ -799,7 +799,7 @@ export default {
} }
}, },
stackScrollCallback(e) { stackScrollCallback(e) {
console.log('stackScrollCallback') // console.log('stackScrollCallback')
const { detail } = e const { detail } = e
if (this.isScrollSync && this.currentDicomCanvasIndex === this.canvasIndex) { if (this.isScrollSync && this.currentDicomCanvasIndex === this.canvasIndex) {
this.scrollSyncInfo.canvasIndex = this.canvasIndex this.scrollSyncInfo.canvasIndex = this.canvasIndex
@ -1181,7 +1181,7 @@ export default {
}) })
}, },
onNewImage(e) { onNewImage(e) {
console.log('cornerstonenewimage') // console.log('cornerstonenewimage')
if (this.isCurrentTask && this.readingTaskState < 2) { if (this.isCurrentTask && this.readingTaskState < 2) {
this.resetHideMeasureArr() this.resetHideMeasureArr()
} }
@ -1218,6 +1218,12 @@ export default {
if (this.dicomInfo.thick) { if (this.dicomInfo.thick) {
this.dicomInfo.thick = this.dicomInfo.thick.toFixed(2) this.dicomInfo.thick = this.dicomInfo.thick.toFixed(2)
} }
let newImageIdIndex = this.stack.imageIds.findIndex(i=>i===imageId)
if(newImageIdIndex === -1) return
this.stack.currentImageIdIndex = newImageIdIndex
this.stack.imageIdIndex = newImageIdIndex
this.series.imageIdIndex = newImageIdIndex
this.height = (this.stack.currentImageIdIndex) * 100 / (this.stack.imageIds.length - 1)
}, },
getScreenshots() { getScreenshots() {
const canvas = this.canvas.querySelector('canvas') const canvas = this.canvas.querySelector('canvas')

View File

@ -557,7 +557,8 @@ export default {
trialId: this.$route.query.trialId, trialId: this.$route.query.trialId,
reReadingOrBackVisible: false, reReadingOrBackVisible: false,
loading2: false, loading2: false,
influenceTaskList: [] influenceTaskList: [],
openWindow: null,
} }
}, },
mounted() { mounted() {
@ -566,6 +567,11 @@ export default {
this.getDoctorUserSelectList() this.getDoctorUserSelectList()
this.getTrialCriterionList() this.getTrialCriterionList()
}, },
beforeDestroy() {
if (this.openWindow) {
this.openWindow.close()
}
},
methods: { methods: {
getList() { getList() {
this.searchData.TrialId = this.$route.query.trialId this.searchData.TrialId = this.$route.query.trialId
@ -600,6 +606,23 @@ export default {
this.trialCriterionList = res.Result this.trialCriterionList = res.Result
}).catch(() => {}) }).catch(() => {})
}, },
//
lookReadingResults(row) {
if (this.openWindow) {
this.openWindow.close()
}
var token = getToken()
var path
if (row.ReadingTool === 0) {
path = `/readingDicoms?TrialReadingCriterionId=${row.TrialReadingCriterionId}&trialId=${this.trialId}&subjectCode=${row.SubjectCode}&subjectId=${row.SubjectId}&visitTaskId=${row.Id}&isReadingTaskViewInOrder=${row.IsReadingTaskViewInOrder}&criterionType=${row.CriterionType}&readingTool=${row.ReadingTool}&TokenKey=${token}`
} else {
path = `/noneDicomReading?TrialReadingCriterionId=${row.TrialReadingCriterionId}&trialId=${this.trialId}&subjectCode=${row.SubjectCode}&subjectId=${row.SubjectId}&visitTaskId=${row.Id}&isReadingTaskViewInOrder=${row.IsReadingTaskViewInOrder}&criterionType=${row.CriterionType}&readingTool=${row.ReadingTool}&TokenKey=${token}`
}
// const routeData = this.$router.resolve({
// path: `/readingPage?subjectId=${row.SubjectId}&trialId=${row.TrialId}&visitTaskId=${row.Id}&TokenKey=${token}`
// })
this.openWindow = window.open(path, '_blank')
},
changeTimeList() { changeTimeList() {
if (this.timeList) { if (this.timeList) {
this.searchData.BeginAllocateDate = this.timeList[0] this.searchData.BeginAllocateDate = this.timeList[0]

View File

@ -349,7 +349,7 @@
<el-table-column <el-table-column
fixed="right" fixed="right"
:label="$t('common:action:action')" :label="$t('common:action:action')"
width="260" width="220"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<!-- 查看阅片结果 --> <!-- 查看阅片结果 -->
@ -387,13 +387,13 @@
@click="openReReadingOrBackList(scope.row)" @click="openReReadingOrBackList(scope.row)"
/> />
<!-- 退回已影响任务列表 --> <!-- 退回已影响任务列表 -->
<el-button <!-- <el-button
:disabled="!scope.row.IsPMSetBack" :disabled="!scope.row.IsPMSetBack"
icon="el-icon-document-copy" icon="el-icon-document-copy"
circle circle
:title="$t('trials:reviewTrack:action:backToTaskList')" :title="$t('trials:reviewTrack:action:backToTaskList')"
@click="getInfluencedTaskList(scope.row)" @click="getInfluencedTaskList(scope.row)"
/> /> -->
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>