All files / extensions/default/src getSopClassHandlerModule.test.js

0% Statements 0/22
100% Branches 0/0
0% Functions 0/11
0% Lines 0/17

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 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75                                                                                                                                                     
jest.mock('./getDisplaySetMessages', () => jest.fn(() => ({ addMessage: jest.fn() })));
jest.mock('./getDisplaySetsFromUnsupportedSeries', () => jest.fn());
 
import getSopClassHandlerModule from './getSopClassHandlerModule';
 
const makeInstance = () => ({
  imageId: 'dicomfile:blob://local-multiframe',
  url: 'dicomfile:blob://local-multiframe',
  NumberOfFrames: 4,
  Rows: 2,
  Columns: 2,
  PixelSpacing: [1, 1],
  SliceThickness: 1,
  ImageOrientationPatient: [1, 0, 0, 0, 1, 0],
  ImagePositionPatient: [0, 0, 0],
  FrameOfReferenceUID: 'frame-of-reference',
  StudyInstanceUID: 'study',
  SeriesInstanceUID: 'series',
  SOPInstanceUID: 'sop',
  SOPClassUID: '1.2.840.10008.5.1.4.1.1.2.1',
  Modality: 'CT',
  SeriesDescription: 'Local multiframe CT',
  SeriesNumber: 1,
});
 
describe('getSopClassHandlerModule', () => {
  it('checks dynamic volume grouping with generated multiframe imageIds', () => {
    const frameImageIds = [
      'dicomfile:blob://local-multiframe&frame=1',
      'dicomfile:blob://local-multiframe&frame=2',
      'dicomfile:blob://local-multiframe&frame=3',
      'dicomfile:blob://local-multiframe&frame=4',
    ];
    const getDynamicVolumeInfo = jest.fn(() => ({
      isDynamicVolume: false,
      timePoints: [frameImageIds],
      splittingTag: null,
    }));
    const dataSource = {
      getImageIdsForDisplaySet: jest.fn(() => frameImageIds),
      retrieve: {
        getGetThumbnailSrc: jest.fn(),
      },
    };
    const customizationService = {
      getCustomization: jest.fn(() => ({
        sortFunctions: {},
        defaultSortFunctionName: 'default',
      })),
    };
    const appContext = {
      appConfig: {},
      extensionManager: {
        getActiveDataSource: jest.fn(() => [dataSource]),
        getModuleEntry: jest.fn(() => ({
          exports: {
            getDynamicVolumeInfo,
          },
        })),
      },
      servicesManager: {
        services: {
          customizationService,
        },
      },
    };
 
    const stackHandler = getSopClassHandlerModule(appContext)[0];
 
    stackHandler.getDisplaySetsFromSeries([makeInstance()]);
 
    expect(getDynamicVolumeInfo).toHaveBeenCalledWith(frameImageIds);
  });
});