All files / core/src/RenderingEngine/GenericViewport/WSI DefaultWSIDataProvider.ts

0% Statements 0/11
0% Branches 0/6
0% Functions 0/2
0% Lines 0/11

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54                                                                                                           
import {
  addWSIMiniNavigationOverlayCss,
  loadWSIData,
} from '../../../utilities/WSIUtilities';
import type { LoadedData } from '../ViewportArchitectureTypes';
import { getGenericViewportWSIDisplaySet } from '../genericViewportDisplaySetAccess';
import type {
  WSIDataProvider,
  WSIPayload,
  WSIRegisteredDataSet,
} from './WSIViewportTypes';
 
export class DefaultWSIDataProvider implements WSIDataProvider {
  async load(dataId: string): Promise<LoadedData<WSIPayload>> {
    const dataSet = this.getDataSet(dataId);
 
    if (!dataSet) {
      throw new Error(
        `[WSIViewport] No registered WSI dataset metadata for ${dataId}`
      );
    }
 
    if (dataSet.options.miniNavigationOverlay !== false) {
      addWSIMiniNavigationOverlayCss();
    }
 
    const loadedData = await loadWSIData({
      imageIds: dataSet.imageIds,
      client: dataSet.options.webClient,
    });
    return {
      id: dataId,
      type: 'wsi',
      imageIds: dataSet.imageIds,
      client: dataSet.options.webClient,
      volumeImages: loadedData.volumeImages,
      metadataDicomweb: loadedData.metadataDicomweb,
      metadata: loadedData.metadata,
      frameOfReferenceUID: loadedData.frameOfReferenceUID,
      imageURISet: loadedData.imageURISet,
    };
  }
 
  private getDataSet(dataId: string): WSIRegisteredDataSet | undefined {
    const registered = getGenericViewportWSIDisplaySet(dataId);
 
    if (!registered) {
      return;
    }
 
    return registered;
  }
}