feat(studyPrefetcher): Study Prefetcher (#4206)
This commit is contained in:
1 parent
257cc477cd
commit
2048b19484
24 files changed
+992
-98
No files matched your search
@@ -25,6 +25,7 @@ import initCornerstoneTools from './initCornerstoneTools';
|
||||
|
||||
import { connectToolsToMeasurementService } from './initMeasurementService';
|
||||
import initCineService from './initCineService';
|
||||
import initStudyPrefetcherService from './initStudyPrefetcherService';
|
||||
import interleaveCenterLoader from './utils/interleaveCenterLoader';
|
||||
import nthLoader from './utils/nthLoader';
|
||||
import interleaveTopToBottom from './utils/interleaveTopToBottom';
|
||||
@@ -98,6 +99,7 @@ export default async function init({
|
||||
hangingProtocolService,
|
||||
viewportGridService,
|
||||
stateSyncService,
|
||||
studyPrefetcherService
|
||||
} = servicesManager.services;
|
||||
|
||||
window.services = servicesManager.services;
|
||||
@@ -190,6 +192,7 @@ export default async function init({
|
||||
this.measurementServiceSource = connectToolsToMeasurementService(servicesManager);
|
||||
|
||||
initCineService(servicesManager);
|
||||
initStudyPrefetcherService(servicesManager);
|
||||
|
||||
// When a custom image load is performed, update the relevant viewports
|
||||
hangingProtocolService.subscribe(
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
import { cache, imageLoadPoolManager, imageLoader, Enums, eventTarget, EVENTS as csEvents } from '@cornerstonejs/core';
|
||||
|
||||
function initStudyPrefetcherService(servicesManager: AppTypes.ServicesManager) {
|
||||
const { studyPrefetcherService } = servicesManager.services;
|
||||
|
||||
studyPrefetcherService.requestType = Enums.RequestType.Prefetch;
|
||||
studyPrefetcherService.imageLoadPoolManager = imageLoadPoolManager;
|
||||
studyPrefetcherService.imageLoader = imageLoader;
|
||||
|
||||
studyPrefetcherService.cache = {
|
||||
isImageCached(imageId: string): boolean {
|
||||
return !!cache.getImageLoadObject(imageId);
|
||||
}
|
||||
}
|
||||
|
||||
studyPrefetcherService.imageLoadEventsManager = {
|
||||
addEventListeners(onImageLoaded, onImageLoadFailed) {
|
||||
eventTarget.addEventListener(csEvents.IMAGE_LOADED, onImageLoaded);
|
||||
eventTarget.addEventListener(csEvents.IMAGE_LOAD_FAILED, onImageLoadFailed);
|
||||
|
||||
return [
|
||||
{
|
||||
unsubscribe: () => eventTarget.removeEventListener(csEvents.IMAGE_LOADED, onImageLoaded)
|
||||
},
|
||||
{
|
||||
unsubscribe: () => eventTarget.removeEventListener(csEvents.IMAGE_LOAD_FAILED, onImageLoadFailed)
|
||||
},
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default initStudyPrefetcherService;
|
||||
Reference in new issue
Block a user