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