* fix: Some residual issues with hanging protocol after state sync fix: Some issues introduced by the state syncing changes * fix: PR fixes, mostly code cleanup * Improve a race condition in an automated test * Remove obsolete code * PR fixes
258 lines
5.6 KiB
TypeScript
258 lines
5.6 KiB
TypeScript
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;
|