Files
ohif-viewer/extensions/test-extension/src/hpTestSwitch.ts
2025-03-07 13:47:44 +07:00

240 lines
4.7 KiB
TypeScript

import { Types } from '@ohif/core';
const viewport0a = {
viewportOptions: {
viewportId: 'viewportA',
toolGroupId: 'default',
allowUnmatchedView: true,
},
displaySets: [
{
id: 'defaultDisplaySetId',
},
],
};
const viewport1b = {
viewportOptions: {
viewportId: 'viewportB',
toolGroupId: 'default',
allowUnmatchedView: true,
},
displaySets: [
{
matchedDisplaySetsIndex: 1,
id: 'defaultDisplaySetId',
},
],
};
const viewport2c = {
viewportOptions: {
viewportId: 'viewportC',
toolGroupId: 'default',
allowUnmatchedView: true,
},
displaySets: [
{
matchedDisplaySetsIndex: 2,
id: 'defaultDisplaySetId',
},
],
};
const viewport3d = {
viewportOptions: {
viewportId: 'viewportD',
toolGroupId: 'default',
allowUnmatchedView: true,
},
displaySets: [
{
matchedDisplaySetsIndex: 3,
id: 'defaultDisplaySetId',
},
],
};
const viewport4e = {
viewportOptions: {
viewportId: 'viewportE',
toolGroupId: 'default',
allowUnmatchedView: true,
},
displaySets: [
{
matchedDisplaySetsIndex: 4,
id: 'defaultDisplaySetId',
},
],
};
const viewport5f = {
viewportOptions: {
viewportId: 'viewportF',
toolGroupId: 'default',
allowUnmatchedView: true,
},
displaySets: [
{
matchedDisplaySetsIndex: 5,
id: 'defaultDisplaySetId',
},
],
};
const viewport3a = {
viewportOptions: {
viewportId: 'viewportA',
toolGroupId: 'default',
allowUnmatchedView: true,
},
displaySets: [
{
matchedDisplaySetsIndex: 3,
id: 'defaultDisplaySetId',
},
],
};
const viewport2b = {
viewportOptions: {
viewportId: 'viewportB',
toolGroupId: 'default',
allowUnmatchedView: true,
},
displaySets: [
{
matchedDisplaySetsIndex: 2,
id: 'defaultDisplaySetId',
},
],
};
const viewport1c = {
viewportOptions: {
viewportId: 'viewportC',
toolGroupId: 'default',
allowUnmatchedView: true,
},
displaySets: [
{
matchedDisplaySetsIndex: 1,
id: 'defaultDisplaySetId',
},
],
};
const viewport0d = {
viewportOptions: {
viewportId: 'viewportD',
toolGroupId: 'default',
allowUnmatchedView: true,
},
displaySets: [
{
matchedDisplaySetsIndex: 0,
id: 'defaultDisplaySetId',
},
],
};
const viewportStructure = {
layoutType: 'grid',
properties: {
rows: 2,
columns: 2,
},
};
const viewportStructure32 = {
layoutType: 'grid',
properties: {
rows: 2,
columns: 3,
},
};
/**
* This hanging protocol is a test hanging protocol used to apply various
* layouts in different positions for display, re-using earlier names in
* various orders.
*/
const hpTestSwitch: Types.HangingProtocol.Protocol = {
hasUpdatedPriorsInformation: false,
id: '@ohif/mnTestSwitch',
description: 'Has various hanging protocol grid layouts',
name: 'Test Switch',
protocolMatchingRules: [
{
id: 'OneOrMoreSeries',
weight: 25,
attribute: 'numberOfDisplaySetsWithImages',
constraint: {
greaterThan: 0,
},
},
],
toolGroupIds: ['default'],
displaySetSelectors: {
defaultDisplaySetId: {
seriesMatchingRules: [
{
attribute: 'numImageFrames',
constraint: {
greaterThan: { value: 0 },
},
},
// This display set will select the specified items by preference
// It has no affect if nothing is specified in the URL.
{
attribute: 'isDisplaySetFromUrl',
weight: 10,
constraint: {
equals: true,
},
},
],
},
},
defaultViewport: {
viewportOptions: {
viewportType: 'stack',
toolGroupId: 'default',
allowUnmatchedView: true,
},
displaySets: [
{
id: 'defaultDisplaySetId',
matchedDisplaySetsIndex: -1,
},
],
},
stages: [
{
name: '2x2 0a1b2c3d',
viewportStructure,
viewports: [viewport0a, viewport1b, viewport2c, viewport3d],
},
{
name: '3x2 0a1b4e2c3d5f',
viewportStructure: viewportStructure32,
// Note the following structure simply preserves the viewportId for
// a given screen position
viewports: [viewport0a, viewport1b, viewport4e, viewport2c, viewport3d, viewport5f],
},
{
name: '2x2 1c0d3a2b',
viewportStructure,
viewports: [viewport1c, viewport0d, viewport3a, viewport2b],
},
{
name: '2x2 3a2b1c0d',
viewportStructure,
viewports: [viewport3a, viewport2b, viewport1c, viewport0d],
},
],
numberOfPriorsReferenced: -1,
};
export default hpTestSwitch;