质控页面注册自定义metaDataProvider逻辑更改
parent
cbd860a35e
commit
4e5c9aaf38
|
|
@ -80,7 +80,7 @@
|
||||||
import * as cornerstone from 'cornerstone-core'
|
import * as cornerstone from 'cornerstone-core'
|
||||||
import * as cornerstoneMath from 'cornerstone-math'
|
import * as cornerstoneMath from 'cornerstone-math'
|
||||||
import * as cornerstoneTools from 'cornerstone-tools'
|
import * as cornerstoneTools from 'cornerstone-tools'
|
||||||
import metaDataProvider from '@/utils/metaDataProvider'
|
import metaDataProvider, { registerImageSharedCacheKey, unregisterImageSharedCacheKeys } from '@/utils/metaDataProvider'
|
||||||
|
|
||||||
const scroll = cornerstoneTools.import('util/scrollToIndex')
|
const scroll = cornerstoneTools.import('util/scrollToIndex')
|
||||||
import Hammer from 'hammerjs'
|
import Hammer from 'hammerjs'
|
||||||
|
|
@ -211,6 +211,9 @@ export default {
|
||||||
this.stackScrollCallback
|
this.stackScrollCallback
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
|
beforeDestroy() {
|
||||||
|
unregisterImageSharedCacheKeys(this.stack?.imageIds)
|
||||||
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
loadImageStack(dicomSeries, text = '') {
|
loadImageStack(dicomSeries, text = '') {
|
||||||
|
|
@ -400,6 +403,10 @@ export default {
|
||||||
},
|
},
|
||||||
onNewImage(e) {
|
onNewImage(e) {
|
||||||
e.detail.enabledElement.options = {}
|
e.detail.enabledElement.options = {}
|
||||||
|
registerImageSharedCacheKey(
|
||||||
|
e.detail.image?.imageId,
|
||||||
|
e.detail.image?.sharedCacheKey
|
||||||
|
)
|
||||||
var data = e.detail.image.data
|
var data = e.detail.image.data
|
||||||
this.dicomInfo.hospital = data.string('x00080080')
|
this.dicomInfo.hospital = data.string('x00080080')
|
||||||
// let instanceInfo = this.series.instanceInfoList.find(item => item.ImageId === e.detail.image.imageId)
|
// let instanceInfo = this.series.instanceInfoList.find(item => item.ImageId === e.detail.image.imageId)
|
||||||
|
|
|
||||||
|
|
@ -119,6 +119,25 @@ function parseImageId(imageId) {
|
||||||
|
|
||||||
return { scheme, url, frame };
|
return { scheme, url, frame };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const imageIdToSharedCacheKey = new Map();
|
||||||
|
|
||||||
|
export function registerImageSharedCacheKey(imageId, sharedCacheKey) {
|
||||||
|
if (!imageId || !sharedCacheKey) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
imageIdToSharedCacheKey.set(imageId, sharedCacheKey);
|
||||||
|
}
|
||||||
|
export function unregisterImageSharedCacheKeys(imageIds) {
|
||||||
|
if (!Array.isArray(imageIds) || imageIds.length === 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
imageIds.forEach((imageId) => {
|
||||||
|
if (imageId) {
|
||||||
|
imageIdToSharedCacheKey.delete(imageId);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
function getNumberValues(dataSet, tag, minimumLength) {
|
function getNumberValues(dataSet, tag, minimumLength) {
|
||||||
const values = [];
|
const values = [];
|
||||||
const valueAsString = dataSet.string(tag);
|
const valueAsString = dataSet.string(tag);
|
||||||
|
|
@ -257,10 +276,20 @@ function getSpacingBetweenSlices(dataSet) {
|
||||||
}
|
}
|
||||||
function metaDataProvider(type, imageId) {
|
function metaDataProvider(type, imageId) {
|
||||||
const parsedImageId = parseImageId(imageId);
|
const parsedImageId = parseImageId(imageId);
|
||||||
const dataSet = cornerstoneWADOImageLoader.wadouri.dataSetCacheManager.get(
|
let dataSet = cornerstoneWADOImageLoader.wadouri.dataSetCacheManager.get(
|
||||||
parsedImageId.url
|
parsedImageId.url
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if (!dataSet) {
|
||||||
|
const sharedCacheKey = imageIdToSharedCacheKey.get(imageId);
|
||||||
|
|
||||||
|
if (sharedCacheKey) {
|
||||||
|
dataSet = cornerstoneWADOImageLoader.wadouri.dataSetCacheManager.get(
|
||||||
|
sharedCacheKey
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!dataSet) {
|
if (!dataSet) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -421,7 +450,6 @@ function metaDataProvider(type, imageId) {
|
||||||
let columnPixelSpacing = null;
|
let columnPixelSpacing = null;
|
||||||
|
|
||||||
let rowPixelSpacing = null;
|
let rowPixelSpacing = null;
|
||||||
|
|
||||||
if (pixelSpacing) {
|
if (pixelSpacing) {
|
||||||
rowPixelSpacing = pixelSpacing[0];
|
rowPixelSpacing = pixelSpacing[0];
|
||||||
columnPixelSpacing = pixelSpacing[1];
|
columnPixelSpacing = pixelSpacing[1];
|
||||||
|
|
|
||||||
|
|
@ -133,7 +133,7 @@ import { mapGetters } from 'vuex'
|
||||||
import Contextmenu from 'vue-contextmenujs'
|
import Contextmenu from 'vue-contextmenujs'
|
||||||
Vue.use(Contextmenu)
|
Vue.use(Contextmenu)
|
||||||
import * as cornerstone from 'cornerstone-core'
|
import * as cornerstone from 'cornerstone-core'
|
||||||
import metaDataProvider from '@/utils/metaDataProvider'
|
import metaDataProvider, { registerImageSharedCacheKey, unregisterImageSharedCacheKeys } from '@/utils/metaDataProvider'
|
||||||
|
|
||||||
import * as cornerstoneMath from 'cornerstone-math'
|
import * as cornerstoneMath from 'cornerstone-math'
|
||||||
import * as cornerstoneTools from 'cornerstone-tools'
|
import * as cornerstoneTools from 'cornerstone-tools'
|
||||||
|
|
@ -480,6 +480,7 @@ export default {
|
||||||
},
|
},
|
||||||
beforeDestroy() {
|
beforeDestroy() {
|
||||||
// Store.$off('getMeasureData')
|
// Store.$off('getMeasureData')
|
||||||
|
unregisterImageSharedCacheKeys(this.stack?.imageIds)
|
||||||
DicomEvent.$off('setReadingState')
|
DicomEvent.$off('setReadingState')
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
@ -1279,6 +1280,7 @@ export default {
|
||||||
this.resetHideMeasureArr()
|
this.resetHideMeasureArr()
|
||||||
}
|
}
|
||||||
const { image } = e.detail
|
const { image } = e.detail
|
||||||
|
registerImageSharedCacheKey(image?.imageId, image?.sharedCacheKey)
|
||||||
const ToolStateManager = cornerstoneTools.globalImageIdSpecificToolStateManager
|
const ToolStateManager = cornerstoneTools.globalImageIdSpecificToolStateManager
|
||||||
const imageId = image.imageId
|
const imageId = image.imageId
|
||||||
ToolStateManager.clearImageIdToolState(imageId)
|
ToolStateManager.clearImageIdToolState(imageId)
|
||||||
|
|
|
||||||
|
|
@ -126,7 +126,7 @@ import { mapGetters } from 'vuex'
|
||||||
import Contextmenu from 'vue-contextmenujs'
|
import Contextmenu from 'vue-contextmenujs'
|
||||||
Vue.use(Contextmenu)
|
Vue.use(Contextmenu)
|
||||||
import * as cornerstone from 'cornerstone-core'
|
import * as cornerstone from 'cornerstone-core'
|
||||||
import metaDataProvider from '@/utils/metaDataProvider'
|
import metaDataProvider, { registerImageSharedCacheKey, unregisterImageSharedCacheKeys } from '@/utils/metaDataProvider'
|
||||||
|
|
||||||
import * as cornerstoneMath from 'cornerstone-math'
|
import * as cornerstoneMath from 'cornerstone-math'
|
||||||
import * as cornerstoneTools from 'cornerstone-tools'
|
import * as cornerstoneTools from 'cornerstone-tools'
|
||||||
|
|
@ -473,6 +473,7 @@ export default {
|
||||||
},
|
},
|
||||||
beforeDestroy() {
|
beforeDestroy() {
|
||||||
// Store.$off('getMeasureData')
|
// Store.$off('getMeasureData')
|
||||||
|
unregisterImageSharedCacheKeys(this.stack?.imageIds)
|
||||||
DicomEvent.$off('setReadingState')
|
DicomEvent.$off('setReadingState')
|
||||||
DicomEvent.$off('updateImage')
|
DicomEvent.$off('updateImage')
|
||||||
},
|
},
|
||||||
|
|
@ -1186,6 +1187,7 @@ export default {
|
||||||
this.resetHideMeasureArr()
|
this.resetHideMeasureArr()
|
||||||
}
|
}
|
||||||
const { image } = e.detail
|
const { image } = e.detail
|
||||||
|
registerImageSharedCacheKey(image?.imageId, image?.sharedCacheKey)
|
||||||
const ToolStateManager = cornerstoneTools.globalImageIdSpecificToolStateManager
|
const ToolStateManager = cornerstoneTools.globalImageIdSpecificToolStateManager
|
||||||
const imageId = image.imageId
|
const imageId = image.imageId
|
||||||
ToolStateManager.clearImageIdToolState(imageId)
|
ToolStateManager.clearImageIdToolState(imageId)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue