import { Types } from '@ohif/core'; /** * This hanging protocol has multiple stages, which are enabled when * there are enough display sets with images to fill the stage, and * are passive when there is at least one display set. * Enabled display sets are navigated to by default, while passive ones * are navigated to manually using the ctrl+end keyboard shortcut. */ const hpMN: Types.HangingProtocol.Protocol = { hasUpdatedPriorsInformation: false, id: '@ohif/hp-extension.mn', description: 'Has various hanging protocol layouts for use in testing', name: '2x2', protocolMatchingRules: [ { id: 'OneOrMoreSeries', weight: 1, attribute: 'numberOfDisplaySetsWithImages', constraint: { greaterThan: 1, }, }, ], toolGroupIds: ['default'], displaySetSelectors: { defaultDisplaySetId: { seriesMatchingRules: [ { attribute: 'numImageFrames', constraint: { greaterThan: { value: 0 }, }, }, ], }, }, defaultViewport: { viewportOptions: { viewportType: 'stack', toolGroupId: 'default', allowUnmatchedView: true, }, displaySets: [ { id: 'defaultDisplaySetId', matchedDisplaySetsIndex: -1, }, ], }, stages: [ { id: '2x2', stageActivation: { enabled: { minViewportsMatched: 4, }, }, viewportStructure: { layoutType: 'grid', properties: { rows: 2, columns: 2, }, }, viewports: [ { viewportOptions: { toolGroupId: 'default', allowUnmatchedView: true, }, displaySets: [ { id: 'defaultDisplaySetId', }, ], }, { viewportOptions: { toolGroupId: 'default', allowUnmatchedView: true, }, displaySets: [ { matchedDisplaySetsIndex: 1, id: 'defaultDisplaySetId', }, ], }, { viewportOptions: { toolGroupId: 'default', allowUnmatchedView: true, }, displaySets: [ { matchedDisplaySetsIndex: 2, id: 'defaultDisplaySetId', }, ], }, { viewportOptions: { toolGroupId: 'default', allowUnmatchedView: true, }, displaySets: [ { matchedDisplaySetsIndex: 3, id: 'defaultDisplaySetId', }, ], }, ], }, // 3x1 stage { id: '3x1', // Obsolete settings: requiredViewports: 1, preferredViewports: 3, // New equivalent: stageActivation: { enabled: { minViewportsMatched: 3, }, }, viewportStructure: { layoutType: 'grid', properties: { rows: 1, columns: 3, }, }, viewports: [ { viewportOptions: { toolGroupId: 'default', allowUnmatchedView: true, }, displaySets: [ { id: 'defaultDisplaySetId', reuseId: '0-0', }, ], }, { viewportOptions: { toolGroupId: 'default', allowUnmatchedView: true, }, displaySets: [ { matchedDisplaySetsIndex: 1, id: 'defaultDisplaySetId', reuseId: '1-0', }, ], }, { viewportOptions: { toolGroupId: 'default', allowUnmatchedView: true, }, displaySets: [ { matchedDisplaySetsIndex: 2, id: 'defaultDisplaySetId', reuseId: '0-1', }, ], }, ], }, // A 2x1 stage { id: '2x1', requiredViewports: 1, preferredViewports: 2, stageActivation: { enabled: { minViewportsMatched: 2, }, }, viewportStructure: { layoutType: 'grid', properties: { rows: 1, columns: 2, }, }, viewports: [ { viewportOptions: { toolGroupId: 'default', allowUnmatchedView: true, }, displaySets: [ { id: 'defaultDisplaySetId', }, ], }, { viewportOptions: { toolGroupId: 'default', allowUnmatchedView: true, }, displaySets: [ { matchedDisplaySetsIndex: 1, id: 'defaultDisplaySetId', }, ], }, ], }, // A 1x1 stage - should be automatically activated if there is only 1 viewable instance { id: '1x1', requiredViewports: 1, preferredViewports: 1, stageActivation: { enabled: { minViewportsMatched: 1, }, }, viewportStructure: { layoutType: 'grid', properties: { rows: 1, columns: 1, }, }, viewports: [ { viewportOptions: { toolGroupId: 'default', allowUnmatchedView: true, }, displaySets: [ { id: 'defaultDisplaySetId', }, ], }, ], }, ], numberOfPriorsReferenced: -1, }; export default hpMN;