feat(HP): Added new 3D hanging protocols to be used in the new layout selector (#3844)
This commit is contained in:
parent
78d4bea04d
commit
59576d695d
@ -1,295 +1,10 @@
|
|||||||
import { Types } from '@ohif/core';
|
import { fourUp } from './hps/fourUp';
|
||||||
|
import { main3D } from './hps/main3D';
|
||||||
const mpr: Types.HangingProtocol.Protocol = {
|
import { mpr } from './hps/mpr';
|
||||||
id: 'mpr',
|
import { mprAnd3DVolumeViewport } from './hps/mprAnd3DVolumeViewport';
|
||||||
name: 'Multi-Planar Reconstruction',
|
import { only3D } from './hps/only3D';
|
||||||
locked: true,
|
import { primary3D } from './hps/primary3D';
|
||||||
createdDate: '2021-02-23',
|
import { primaryAxial } from './hps/primaryAxial';
|
||||||
modifiedDate: '2023-08-15',
|
|
||||||
availableTo: {},
|
|
||||||
editableBy: {},
|
|
||||||
// Unknown number of priors referenced - so just match any study
|
|
||||||
numberOfPriorsReferenced: 0,
|
|
||||||
protocolMatchingRules: [],
|
|
||||||
imageLoadStrategy: 'nth',
|
|
||||||
callbacks: {
|
|
||||||
// Switches out of MPR mode when the layout change button is used
|
|
||||||
onLayoutChange: [
|
|
||||||
{
|
|
||||||
commandName: 'toggleHangingProtocol',
|
|
||||||
commandOptions: { protocolId: 'mpr' },
|
|
||||||
context: 'DEFAULT',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
// Turns off crosshairs when switching out of MPR mode
|
|
||||||
onProtocolExit: [
|
|
||||||
{
|
|
||||||
commandName: 'cleanUpCrosshairs',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
displaySetSelectors: {
|
|
||||||
activeDisplaySet: {
|
|
||||||
seriesMatchingRules: [
|
|
||||||
{
|
|
||||||
weight: 1,
|
|
||||||
attribute: 'isReconstructable',
|
|
||||||
constraint: {
|
|
||||||
equals: {
|
|
||||||
value: true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
required: true,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
stages: [
|
|
||||||
{
|
|
||||||
name: 'MPR 1x3',
|
|
||||||
viewportStructure: {
|
|
||||||
layoutType: 'grid',
|
|
||||||
properties: {
|
|
||||||
rows: 1,
|
|
||||||
columns: 3,
|
|
||||||
layoutOptions: [
|
|
||||||
{
|
|
||||||
x: 0,
|
|
||||||
y: 0,
|
|
||||||
width: 1 / 3,
|
|
||||||
height: 1,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
x: 1 / 3,
|
|
||||||
y: 0,
|
|
||||||
width: 1 / 3,
|
|
||||||
height: 1,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
x: 2 / 3,
|
|
||||||
y: 0,
|
|
||||||
width: 1 / 3,
|
|
||||||
height: 1,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
viewports: [
|
|
||||||
{
|
|
||||||
viewportOptions: {
|
|
||||||
viewportId: 'mpr-axial',
|
|
||||||
toolGroupId: 'mpr',
|
|
||||||
viewportType: 'volume',
|
|
||||||
orientation: 'axial',
|
|
||||||
initialImageOptions: {
|
|
||||||
preset: 'middle',
|
|
||||||
},
|
|
||||||
syncGroups: [
|
|
||||||
{
|
|
||||||
type: 'voi',
|
|
||||||
id: 'mpr',
|
|
||||||
source: true,
|
|
||||||
target: true,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
displaySets: [
|
|
||||||
{
|
|
||||||
id: 'activeDisplaySet',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
viewportOptions: {
|
|
||||||
viewportId: 'mpr-sagittal',
|
|
||||||
toolGroupId: 'mpr',
|
|
||||||
viewportType: 'volume',
|
|
||||||
orientation: 'sagittal',
|
|
||||||
initialImageOptions: {
|
|
||||||
preset: 'middle',
|
|
||||||
},
|
|
||||||
syncGroups: [
|
|
||||||
{
|
|
||||||
type: 'voi',
|
|
||||||
id: 'mpr',
|
|
||||||
source: true,
|
|
||||||
target: true,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
displaySets: [
|
|
||||||
{
|
|
||||||
id: 'activeDisplaySet',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
viewportOptions: {
|
|
||||||
viewportId: 'mpr-coronal',
|
|
||||||
toolGroupId: 'mpr',
|
|
||||||
viewportType: 'volume',
|
|
||||||
orientation: 'coronal',
|
|
||||||
initialImageOptions: {
|
|
||||||
preset: 'middle',
|
|
||||||
},
|
|
||||||
syncGroups: [
|
|
||||||
{
|
|
||||||
type: 'voi',
|
|
||||||
id: 'mpr',
|
|
||||||
source: true,
|
|
||||||
target: true,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
displaySets: [
|
|
||||||
{
|
|
||||||
id: 'activeDisplaySet',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
};
|
|
||||||
|
|
||||||
const mprAnd3DVolumeViewport = {
|
|
||||||
id: 'mprAnd3DVolumeViewport',
|
|
||||||
locked: true,
|
|
||||||
name: 'mpr',
|
|
||||||
createdDate: '2023-03-15T10:29:44.894Z',
|
|
||||||
modifiedDate: '2023-03-15T10:29:44.894Z',
|
|
||||||
availableTo: {},
|
|
||||||
editableBy: {},
|
|
||||||
protocolMatchingRules: [],
|
|
||||||
imageLoadStrategy: 'interleaveCenter',
|
|
||||||
displaySetSelectors: {
|
|
||||||
mprDisplaySet: {
|
|
||||||
seriesMatchingRules: [
|
|
||||||
{
|
|
||||||
weight: 1,
|
|
||||||
attribute: 'isReconstructable',
|
|
||||||
constraint: {
|
|
||||||
equals: {
|
|
||||||
value: true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
required: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
attribute: 'Modality',
|
|
||||||
constraint: {
|
|
||||||
equals: {
|
|
||||||
value: 'CT',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
required: true,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
stages: [
|
|
||||||
{
|
|
||||||
id: 'mpr3Stage',
|
|
||||||
name: 'mpr',
|
|
||||||
viewportStructure: {
|
|
||||||
layoutType: 'grid',
|
|
||||||
properties: {
|
|
||||||
rows: 2,
|
|
||||||
columns: 2,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
viewports: [
|
|
||||||
{
|
|
||||||
viewportOptions: {
|
|
||||||
toolGroupId: 'mpr',
|
|
||||||
viewportType: 'volume',
|
|
||||||
orientation: 'axial',
|
|
||||||
initialImageOptions: {
|
|
||||||
preset: 'middle',
|
|
||||||
},
|
|
||||||
syncGroups: [
|
|
||||||
{
|
|
||||||
type: 'voi',
|
|
||||||
id: 'mpr',
|
|
||||||
source: true,
|
|
||||||
target: true,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
displaySets: [
|
|
||||||
{
|
|
||||||
id: 'mprDisplaySet',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
viewportOptions: {
|
|
||||||
toolGroupId: 'volume3d',
|
|
||||||
viewportType: 'volume3d',
|
|
||||||
orientation: 'coronal',
|
|
||||||
customViewportProps: {
|
|
||||||
hideOverlays: true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
displaySets: [
|
|
||||||
{
|
|
||||||
id: 'mprDisplaySet',
|
|
||||||
options: {
|
|
||||||
displayPreset: 'CT-Bone',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
viewportOptions: {
|
|
||||||
toolGroupId: 'mpr',
|
|
||||||
viewportType: 'volume',
|
|
||||||
orientation: 'coronal',
|
|
||||||
initialImageOptions: {
|
|
||||||
preset: 'middle',
|
|
||||||
},
|
|
||||||
syncGroups: [
|
|
||||||
{
|
|
||||||
type: 'voi',
|
|
||||||
id: 'mpr',
|
|
||||||
source: true,
|
|
||||||
target: true,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
displaySets: [
|
|
||||||
{
|
|
||||||
id: 'mprDisplaySet',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
viewportOptions: {
|
|
||||||
toolGroupId: 'mpr',
|
|
||||||
viewportType: 'volume',
|
|
||||||
orientation: 'sagittal',
|
|
||||||
initialImageOptions: {
|
|
||||||
preset: 'middle',
|
|
||||||
},
|
|
||||||
syncGroups: [
|
|
||||||
{
|
|
||||||
type: 'voi',
|
|
||||||
id: 'mpr',
|
|
||||||
source: true,
|
|
||||||
target: true,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
displaySets: [
|
|
||||||
{
|
|
||||||
id: 'mprDisplaySet',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
};
|
|
||||||
|
|
||||||
function getHangingProtocolModule() {
|
function getHangingProtocolModule() {
|
||||||
return [
|
return [
|
||||||
@ -301,6 +16,26 @@ function getHangingProtocolModule() {
|
|||||||
name: mprAnd3DVolumeViewport.id,
|
name: mprAnd3DVolumeViewport.id,
|
||||||
protocol: mprAnd3DVolumeViewport,
|
protocol: mprAnd3DVolumeViewport,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: fourUp.id,
|
||||||
|
protocol: fourUp,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: main3D.id,
|
||||||
|
protocol: main3D,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: primaryAxial.id,
|
||||||
|
protocol: primaryAxial,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: only3D.id,
|
||||||
|
protocol: only3D,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: primary3D.id,
|
||||||
|
protocol: primary3D,
|
||||||
|
},
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
130
extensions/cornerstone/src/hps/fourUp.ts
Normal file
130
extensions/cornerstone/src/hps/fourUp.ts
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
export const fourUp = {
|
||||||
|
id: 'fourUp',
|
||||||
|
locked: true,
|
||||||
|
name: 'fourUp',
|
||||||
|
createdDate: '2023-03-15T10:29:44.894Z',
|
||||||
|
modifiedDate: '2023-03-15T10:29:44.894Z',
|
||||||
|
availableTo: {},
|
||||||
|
editableBy: {},
|
||||||
|
protocolMatchingRules: [],
|
||||||
|
imageLoadStrategy: 'interleaveCenter',
|
||||||
|
displaySetSelectors: {
|
||||||
|
mprDisplaySet: {
|
||||||
|
seriesMatchingRules: [
|
||||||
|
{
|
||||||
|
weight: 1,
|
||||||
|
attribute: 'isReconstructable',
|
||||||
|
constraint: {
|
||||||
|
equals: {
|
||||||
|
value: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
stages: [
|
||||||
|
{
|
||||||
|
id: 'fourUpStage',
|
||||||
|
name: 'fourUp',
|
||||||
|
viewportStructure: {
|
||||||
|
layoutType: 'grid',
|
||||||
|
properties: {
|
||||||
|
rows: 2,
|
||||||
|
columns: 2,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
viewports: [
|
||||||
|
{
|
||||||
|
viewportOptions: {
|
||||||
|
toolGroupId: 'mpr',
|
||||||
|
viewportType: 'volume',
|
||||||
|
orientation: 'axial',
|
||||||
|
initialImageOptions: {
|
||||||
|
preset: 'middle',
|
||||||
|
},
|
||||||
|
syncGroups: [
|
||||||
|
{
|
||||||
|
type: 'voi',
|
||||||
|
id: 'mpr',
|
||||||
|
source: true,
|
||||||
|
target: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
displaySets: [
|
||||||
|
{
|
||||||
|
id: 'mprDisplaySet',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
viewportOptions: {
|
||||||
|
toolGroupId: 'volume3d',
|
||||||
|
viewportType: 'volume3d',
|
||||||
|
orientation: 'coronal',
|
||||||
|
customViewportProps: {
|
||||||
|
hideOverlays: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
displaySets: [
|
||||||
|
{
|
||||||
|
id: 'mprDisplaySet',
|
||||||
|
options: {
|
||||||
|
// ToDo: choose appropriate preset
|
||||||
|
displayPreset: 'CT-Bone',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
viewportOptions: {
|
||||||
|
toolGroupId: 'mpr',
|
||||||
|
viewportType: 'volume',
|
||||||
|
orientation: 'coronal',
|
||||||
|
initialImageOptions: {
|
||||||
|
preset: 'middle',
|
||||||
|
},
|
||||||
|
syncGroups: [
|
||||||
|
{
|
||||||
|
type: 'voi',
|
||||||
|
id: 'mpr',
|
||||||
|
source: true,
|
||||||
|
target: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
displaySets: [
|
||||||
|
{
|
||||||
|
id: 'mprDisplaySet',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
viewportOptions: {
|
||||||
|
toolGroupId: 'mpr',
|
||||||
|
viewportType: 'volume',
|
||||||
|
orientation: 'sagittal',
|
||||||
|
initialImageOptions: {
|
||||||
|
preset: 'middle',
|
||||||
|
},
|
||||||
|
syncGroups: [
|
||||||
|
{
|
||||||
|
type: 'voi',
|
||||||
|
id: 'mpr',
|
||||||
|
source: true,
|
||||||
|
target: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
displaySets: [
|
||||||
|
{
|
||||||
|
id: 'mprDisplaySet',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
156
extensions/cornerstone/src/hps/main3D.ts
Normal file
156
extensions/cornerstone/src/hps/main3D.ts
Normal file
@ -0,0 +1,156 @@
|
|||||||
|
export const main3D = {
|
||||||
|
id: 'main3D',
|
||||||
|
locked: true,
|
||||||
|
name: 'main3D',
|
||||||
|
createdDate: '2023-03-15T10:29:44.894Z',
|
||||||
|
modifiedDate: '2023-03-15T10:29:44.894Z',
|
||||||
|
availableTo: {},
|
||||||
|
editableBy: {},
|
||||||
|
protocolMatchingRules: [],
|
||||||
|
imageLoadStrategy: 'interleaveCenter',
|
||||||
|
displaySetSelectors: {
|
||||||
|
mprDisplaySet: {
|
||||||
|
seriesMatchingRules: [
|
||||||
|
{
|
||||||
|
weight: 1,
|
||||||
|
attribute: 'isReconstructable',
|
||||||
|
constraint: {
|
||||||
|
equals: {
|
||||||
|
value: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
stages: [
|
||||||
|
{
|
||||||
|
id: 'main3DStage',
|
||||||
|
name: 'main3D',
|
||||||
|
viewportStructure: {
|
||||||
|
layoutType: 'grid',
|
||||||
|
properties: {
|
||||||
|
rows: 2,
|
||||||
|
columns: 3,
|
||||||
|
layoutOptions: [
|
||||||
|
{
|
||||||
|
x: 0,
|
||||||
|
y: 0,
|
||||||
|
width: 1,
|
||||||
|
height: 1 / 2,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
x: 0,
|
||||||
|
y: 1 / 2,
|
||||||
|
width: 1 / 3,
|
||||||
|
height: 1 / 2,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
x: 1 / 3,
|
||||||
|
y: 1 / 2,
|
||||||
|
width: 1 / 3,
|
||||||
|
height: 1 / 2,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
x: 2 / 3,
|
||||||
|
y: 1 / 2,
|
||||||
|
width: 1 / 3,
|
||||||
|
height: 1 / 2,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
viewports: [
|
||||||
|
{
|
||||||
|
viewportOptions: {
|
||||||
|
toolGroupId: 'volume3d',
|
||||||
|
viewportType: 'volume3d',
|
||||||
|
orientation: 'coronal',
|
||||||
|
customViewportProps: {
|
||||||
|
hideOverlays: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
displaySets: [
|
||||||
|
{
|
||||||
|
id: 'mprDisplaySet',
|
||||||
|
options: {
|
||||||
|
// ToDo: choose appropriate preset
|
||||||
|
displayPreset: 'CT-Bone',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
viewportOptions: {
|
||||||
|
toolGroupId: 'mpr',
|
||||||
|
viewportType: 'volume',
|
||||||
|
orientation: 'axial',
|
||||||
|
initialImageOptions: {
|
||||||
|
preset: 'middle',
|
||||||
|
},
|
||||||
|
syncGroups: [
|
||||||
|
{
|
||||||
|
type: 'voi',
|
||||||
|
id: 'mpr',
|
||||||
|
source: true,
|
||||||
|
target: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
displaySets: [
|
||||||
|
{
|
||||||
|
id: 'mprDisplaySet',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
viewportOptions: {
|
||||||
|
toolGroupId: 'mpr',
|
||||||
|
viewportType: 'volume',
|
||||||
|
orientation: 'coronal',
|
||||||
|
initialImageOptions: {
|
||||||
|
preset: 'middle',
|
||||||
|
},
|
||||||
|
syncGroups: [
|
||||||
|
{
|
||||||
|
type: 'voi',
|
||||||
|
id: 'mpr',
|
||||||
|
source: true,
|
||||||
|
target: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
displaySets: [
|
||||||
|
{
|
||||||
|
id: 'mprDisplaySet',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
viewportOptions: {
|
||||||
|
toolGroupId: 'mpr',
|
||||||
|
viewportType: 'volume',
|
||||||
|
orientation: 'sagittal',
|
||||||
|
initialImageOptions: {
|
||||||
|
preset: 'middle',
|
||||||
|
},
|
||||||
|
syncGroups: [
|
||||||
|
{
|
||||||
|
type: 'voi',
|
||||||
|
id: 'mpr',
|
||||||
|
source: true,
|
||||||
|
target: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
displaySets: [
|
||||||
|
{
|
||||||
|
id: 'mprDisplaySet',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
153
extensions/cornerstone/src/hps/mpr.ts
Normal file
153
extensions/cornerstone/src/hps/mpr.ts
Normal file
@ -0,0 +1,153 @@
|
|||||||
|
import { Types } from '@ohif/core';
|
||||||
|
|
||||||
|
export const mpr: Types.HangingProtocol.Protocol = {
|
||||||
|
id: 'mpr',
|
||||||
|
name: 'Multi-Planar Reconstruction',
|
||||||
|
locked: true,
|
||||||
|
createdDate: '2021-02-23',
|
||||||
|
modifiedDate: '2023-08-15',
|
||||||
|
availableTo: {},
|
||||||
|
editableBy: {},
|
||||||
|
// Unknown number of priors referenced - so just match any study
|
||||||
|
numberOfPriorsReferenced: 0,
|
||||||
|
protocolMatchingRules: [],
|
||||||
|
imageLoadStrategy: 'nth',
|
||||||
|
callbacks: {
|
||||||
|
// Switches out of MPR mode when the layout change button is used
|
||||||
|
onLayoutChange: [
|
||||||
|
{
|
||||||
|
commandName: 'toggleHangingProtocol',
|
||||||
|
commandOptions: { protocolId: 'mpr' },
|
||||||
|
context: 'DEFAULT',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
// Turns off crosshairs when switching out of MPR mode
|
||||||
|
onProtocolExit: [
|
||||||
|
{
|
||||||
|
commandName: 'cleanUpCrosshairs',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
displaySetSelectors: {
|
||||||
|
activeDisplaySet: {
|
||||||
|
seriesMatchingRules: [
|
||||||
|
{
|
||||||
|
weight: 1,
|
||||||
|
attribute: 'isReconstructable',
|
||||||
|
constraint: {
|
||||||
|
equals: {
|
||||||
|
value: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
stages: [
|
||||||
|
{
|
||||||
|
name: 'MPR 1x3',
|
||||||
|
viewportStructure: {
|
||||||
|
layoutType: 'grid',
|
||||||
|
properties: {
|
||||||
|
rows: 1,
|
||||||
|
columns: 3,
|
||||||
|
layoutOptions: [
|
||||||
|
{
|
||||||
|
x: 0,
|
||||||
|
y: 0,
|
||||||
|
width: 1 / 3,
|
||||||
|
height: 1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
x: 1 / 3,
|
||||||
|
y: 0,
|
||||||
|
width: 1 / 3,
|
||||||
|
height: 1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
x: 2 / 3,
|
||||||
|
y: 0,
|
||||||
|
width: 1 / 3,
|
||||||
|
height: 1,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
viewports: [
|
||||||
|
{
|
||||||
|
viewportOptions: {
|
||||||
|
viewportId: 'mpr-axial',
|
||||||
|
toolGroupId: 'mpr',
|
||||||
|
viewportType: 'volume',
|
||||||
|
orientation: 'axial',
|
||||||
|
initialImageOptions: {
|
||||||
|
preset: 'middle',
|
||||||
|
},
|
||||||
|
syncGroups: [
|
||||||
|
{
|
||||||
|
type: 'voi',
|
||||||
|
id: 'mpr',
|
||||||
|
source: true,
|
||||||
|
target: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
displaySets: [
|
||||||
|
{
|
||||||
|
id: 'activeDisplaySet',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
viewportOptions: {
|
||||||
|
viewportId: 'mpr-sagittal',
|
||||||
|
toolGroupId: 'mpr',
|
||||||
|
viewportType: 'volume',
|
||||||
|
orientation: 'sagittal',
|
||||||
|
initialImageOptions: {
|
||||||
|
preset: 'middle',
|
||||||
|
},
|
||||||
|
syncGroups: [
|
||||||
|
{
|
||||||
|
type: 'voi',
|
||||||
|
id: 'mpr',
|
||||||
|
source: true,
|
||||||
|
target: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
displaySets: [
|
||||||
|
{
|
||||||
|
id: 'activeDisplaySet',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
viewportOptions: {
|
||||||
|
viewportId: 'mpr-coronal',
|
||||||
|
toolGroupId: 'mpr',
|
||||||
|
viewportType: 'volume',
|
||||||
|
orientation: 'coronal',
|
||||||
|
initialImageOptions: {
|
||||||
|
preset: 'middle',
|
||||||
|
},
|
||||||
|
syncGroups: [
|
||||||
|
{
|
||||||
|
type: 'voi',
|
||||||
|
id: 'mpr',
|
||||||
|
source: true,
|
||||||
|
target: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
displaySets: [
|
||||||
|
{
|
||||||
|
id: 'activeDisplaySet',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
138
extensions/cornerstone/src/hps/mprAnd3DVolumeViewport.ts
Normal file
138
extensions/cornerstone/src/hps/mprAnd3DVolumeViewport.ts
Normal file
@ -0,0 +1,138 @@
|
|||||||
|
export const mprAnd3DVolumeViewport = {
|
||||||
|
id: 'mprAnd3DVolumeViewport',
|
||||||
|
locked: true,
|
||||||
|
name: 'mpr',
|
||||||
|
createdDate: '2023-03-15T10:29:44.894Z',
|
||||||
|
modifiedDate: '2023-03-15T10:29:44.894Z',
|
||||||
|
availableTo: {},
|
||||||
|
editableBy: {},
|
||||||
|
protocolMatchingRules: [],
|
||||||
|
imageLoadStrategy: 'interleaveCenter',
|
||||||
|
displaySetSelectors: {
|
||||||
|
mprDisplaySet: {
|
||||||
|
seriesMatchingRules: [
|
||||||
|
{
|
||||||
|
weight: 1,
|
||||||
|
attribute: 'isReconstructable',
|
||||||
|
constraint: {
|
||||||
|
equals: {
|
||||||
|
value: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
attribute: 'Modality',
|
||||||
|
constraint: {
|
||||||
|
equals: {
|
||||||
|
value: 'CT',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
stages: [
|
||||||
|
{
|
||||||
|
id: 'mpr3Stage',
|
||||||
|
name: 'mpr',
|
||||||
|
viewportStructure: {
|
||||||
|
layoutType: 'grid',
|
||||||
|
properties: {
|
||||||
|
rows: 2,
|
||||||
|
columns: 2,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
viewports: [
|
||||||
|
{
|
||||||
|
viewportOptions: {
|
||||||
|
toolGroupId: 'mpr',
|
||||||
|
viewportType: 'volume',
|
||||||
|
orientation: 'axial',
|
||||||
|
initialImageOptions: {
|
||||||
|
preset: 'middle',
|
||||||
|
},
|
||||||
|
syncGroups: [
|
||||||
|
{
|
||||||
|
type: 'voi',
|
||||||
|
id: 'mpr',
|
||||||
|
source: true,
|
||||||
|
target: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
displaySets: [
|
||||||
|
{
|
||||||
|
id: 'mprDisplaySet',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
viewportOptions: {
|
||||||
|
toolGroupId: 'volume3d',
|
||||||
|
viewportType: 'volume3d',
|
||||||
|
orientation: 'coronal',
|
||||||
|
customViewportProps: {
|
||||||
|
hideOverlays: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
displaySets: [
|
||||||
|
{
|
||||||
|
id: 'mprDisplaySet',
|
||||||
|
options: {
|
||||||
|
displayPreset: 'CT-Bone',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
viewportOptions: {
|
||||||
|
toolGroupId: 'mpr',
|
||||||
|
viewportType: 'volume',
|
||||||
|
orientation: 'coronal',
|
||||||
|
initialImageOptions: {
|
||||||
|
preset: 'middle',
|
||||||
|
},
|
||||||
|
syncGroups: [
|
||||||
|
{
|
||||||
|
type: 'voi',
|
||||||
|
id: 'mpr',
|
||||||
|
source: true,
|
||||||
|
target: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
displaySets: [
|
||||||
|
{
|
||||||
|
id: 'mprDisplaySet',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
viewportOptions: {
|
||||||
|
toolGroupId: 'mpr',
|
||||||
|
viewportType: 'volume',
|
||||||
|
orientation: 'sagittal',
|
||||||
|
initialImageOptions: {
|
||||||
|
preset: 'middle',
|
||||||
|
},
|
||||||
|
syncGroups: [
|
||||||
|
{
|
||||||
|
type: 'voi',
|
||||||
|
id: 'mpr',
|
||||||
|
source: true,
|
||||||
|
target: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
displaySets: [
|
||||||
|
{
|
||||||
|
id: 'mprDisplaySet',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
61
extensions/cornerstone/src/hps/only3D.ts
Normal file
61
extensions/cornerstone/src/hps/only3D.ts
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
export const only3D = {
|
||||||
|
id: 'only3D',
|
||||||
|
locked: true,
|
||||||
|
name: 'only3D',
|
||||||
|
createdDate: '2023-03-15T10:29:44.894Z',
|
||||||
|
modifiedDate: '2023-03-15T10:29:44.894Z',
|
||||||
|
availableTo: {},
|
||||||
|
editableBy: {},
|
||||||
|
protocolMatchingRules: [],
|
||||||
|
imageLoadStrategy: 'interleaveCenter',
|
||||||
|
displaySetSelectors: {
|
||||||
|
mprDisplaySet: {
|
||||||
|
seriesMatchingRules: [
|
||||||
|
{
|
||||||
|
weight: 1,
|
||||||
|
attribute: 'isReconstructable',
|
||||||
|
constraint: {
|
||||||
|
equals: {
|
||||||
|
value: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
stages: [
|
||||||
|
{
|
||||||
|
id: 'only3DStage',
|
||||||
|
name: 'only3D',
|
||||||
|
viewportStructure: {
|
||||||
|
layoutType: 'grid',
|
||||||
|
properties: {
|
||||||
|
rows: 1,
|
||||||
|
columns: 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
viewports: [
|
||||||
|
{
|
||||||
|
viewportOptions: {
|
||||||
|
toolGroupId: 'volume3d',
|
||||||
|
viewportType: 'volume3d',
|
||||||
|
orientation: 'coronal',
|
||||||
|
customViewportProps: {
|
||||||
|
hideOverlays: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
displaySets: [
|
||||||
|
{
|
||||||
|
id: 'mprDisplaySet',
|
||||||
|
options: {
|
||||||
|
// ToDo: choose appropriate preset
|
||||||
|
displayPreset: 'CT-Bone',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
156
extensions/cornerstone/src/hps/primary3D.ts
Normal file
156
extensions/cornerstone/src/hps/primary3D.ts
Normal file
@ -0,0 +1,156 @@
|
|||||||
|
export const primary3D = {
|
||||||
|
id: 'primary3D',
|
||||||
|
locked: true,
|
||||||
|
name: 'primary3D',
|
||||||
|
createdDate: '2023-03-15T10:29:44.894Z',
|
||||||
|
modifiedDate: '2023-03-15T10:29:44.894Z',
|
||||||
|
availableTo: {},
|
||||||
|
editableBy: {},
|
||||||
|
protocolMatchingRules: [],
|
||||||
|
imageLoadStrategy: 'interleaveCenter',
|
||||||
|
displaySetSelectors: {
|
||||||
|
mprDisplaySet: {
|
||||||
|
seriesMatchingRules: [
|
||||||
|
{
|
||||||
|
weight: 1,
|
||||||
|
attribute: 'isReconstructable',
|
||||||
|
constraint: {
|
||||||
|
equals: {
|
||||||
|
value: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
stages: [
|
||||||
|
{
|
||||||
|
id: 'primary3DStage',
|
||||||
|
name: 'primary3D',
|
||||||
|
viewportStructure: {
|
||||||
|
layoutType: 'grid',
|
||||||
|
properties: {
|
||||||
|
rows: 3,
|
||||||
|
columns: 3,
|
||||||
|
layoutOptions: [
|
||||||
|
{
|
||||||
|
x: 0,
|
||||||
|
y: 0,
|
||||||
|
width: 2 / 3,
|
||||||
|
height: 1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
x: 2 / 3,
|
||||||
|
y: 0,
|
||||||
|
width: 1 / 3,
|
||||||
|
height: 1 / 3,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
x: 2 / 3,
|
||||||
|
y: 1 / 3,
|
||||||
|
width: 1 / 3,
|
||||||
|
height: 1 / 3,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
x: 2 / 3,
|
||||||
|
y: 2 / 3,
|
||||||
|
width: 1 / 3,
|
||||||
|
height: 1 / 3,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
viewports: [
|
||||||
|
{
|
||||||
|
viewportOptions: {
|
||||||
|
toolGroupId: 'volume3d',
|
||||||
|
viewportType: 'volume3d',
|
||||||
|
orientation: 'coronal',
|
||||||
|
customViewportProps: {
|
||||||
|
hideOverlays: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
displaySets: [
|
||||||
|
{
|
||||||
|
id: 'mprDisplaySet',
|
||||||
|
options: {
|
||||||
|
// ToDo: choose appropriate preset
|
||||||
|
displayPreset: 'CT-Bone',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
viewportOptions: {
|
||||||
|
toolGroupId: 'mpr',
|
||||||
|
viewportType: 'volume',
|
||||||
|
orientation: 'axial',
|
||||||
|
initialImageOptions: {
|
||||||
|
preset: 'middle',
|
||||||
|
},
|
||||||
|
syncGroups: [
|
||||||
|
{
|
||||||
|
type: 'voi',
|
||||||
|
id: 'mpr',
|
||||||
|
source: true,
|
||||||
|
target: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
displaySets: [
|
||||||
|
{
|
||||||
|
id: 'mprDisplaySet',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
viewportOptions: {
|
||||||
|
toolGroupId: 'mpr',
|
||||||
|
viewportType: 'volume',
|
||||||
|
orientation: 'coronal',
|
||||||
|
initialImageOptions: {
|
||||||
|
preset: 'middle',
|
||||||
|
},
|
||||||
|
syncGroups: [
|
||||||
|
{
|
||||||
|
type: 'voi',
|
||||||
|
id: 'mpr',
|
||||||
|
source: true,
|
||||||
|
target: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
displaySets: [
|
||||||
|
{
|
||||||
|
id: 'mprDisplaySet',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
viewportOptions: {
|
||||||
|
toolGroupId: 'mpr',
|
||||||
|
viewportType: 'volume',
|
||||||
|
orientation: 'sagittal',
|
||||||
|
initialImageOptions: {
|
||||||
|
preset: 'middle',
|
||||||
|
},
|
||||||
|
syncGroups: [
|
||||||
|
{
|
||||||
|
type: 'voi',
|
||||||
|
id: 'mpr',
|
||||||
|
source: true,
|
||||||
|
target: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
displaySets: [
|
||||||
|
{
|
||||||
|
id: 'mprDisplaySet',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
131
extensions/cornerstone/src/hps/primaryAxial.ts
Normal file
131
extensions/cornerstone/src/hps/primaryAxial.ts
Normal file
@ -0,0 +1,131 @@
|
|||||||
|
export const primaryAxial = {
|
||||||
|
id: 'primaryAxial',
|
||||||
|
locked: true,
|
||||||
|
name: 'primaryAxial',
|
||||||
|
createdDate: '2023-03-15T10:29:44.894Z',
|
||||||
|
modifiedDate: '2023-03-15T10:29:44.894Z',
|
||||||
|
availableTo: {},
|
||||||
|
editableBy: {},
|
||||||
|
protocolMatchingRules: [],
|
||||||
|
imageLoadStrategy: 'interleaveCenter',
|
||||||
|
displaySetSelectors: {
|
||||||
|
mprDisplaySet: {
|
||||||
|
seriesMatchingRules: [
|
||||||
|
{
|
||||||
|
weight: 1,
|
||||||
|
attribute: 'isReconstructable',
|
||||||
|
constraint: {
|
||||||
|
equals: {
|
||||||
|
value: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
stages: [
|
||||||
|
{
|
||||||
|
id: 'primaryAxialStage',
|
||||||
|
name: 'primaryAxial',
|
||||||
|
viewportStructure: {
|
||||||
|
layoutType: 'grid',
|
||||||
|
properties: {
|
||||||
|
rows: 2,
|
||||||
|
columns: 3,
|
||||||
|
layoutOptions: [
|
||||||
|
{
|
||||||
|
x: 0,
|
||||||
|
y: 0,
|
||||||
|
width: 2 / 3,
|
||||||
|
height: 1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
x: 2 / 3,
|
||||||
|
y: 0,
|
||||||
|
width: 1 / 3,
|
||||||
|
height: 1 / 2,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
x: 2 / 3,
|
||||||
|
y: 1 / 2,
|
||||||
|
width: 1 / 3,
|
||||||
|
height: 1 / 2,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
viewports: [
|
||||||
|
{
|
||||||
|
viewportOptions: {
|
||||||
|
toolGroupId: 'mpr',
|
||||||
|
viewportType: 'volume',
|
||||||
|
orientation: 'axial',
|
||||||
|
initialImageOptions: {
|
||||||
|
preset: 'middle',
|
||||||
|
},
|
||||||
|
syncGroups: [
|
||||||
|
{
|
||||||
|
type: 'voi',
|
||||||
|
id: 'mpr',
|
||||||
|
source: true,
|
||||||
|
target: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
displaySets: [
|
||||||
|
{
|
||||||
|
id: 'mprDisplaySet',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
viewportOptions: {
|
||||||
|
toolGroupId: 'mpr',
|
||||||
|
viewportType: 'volume',
|
||||||
|
orientation: 'sagittal',
|
||||||
|
initialImageOptions: {
|
||||||
|
preset: 'middle',
|
||||||
|
},
|
||||||
|
syncGroups: [
|
||||||
|
{
|
||||||
|
type: 'voi',
|
||||||
|
id: 'mpr',
|
||||||
|
source: true,
|
||||||
|
target: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
displaySets: [
|
||||||
|
{
|
||||||
|
id: 'mprDisplaySet',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
viewportOptions: {
|
||||||
|
toolGroupId: 'mpr',
|
||||||
|
viewportType: 'volume',
|
||||||
|
orientation: 'coronal',
|
||||||
|
initialImageOptions: {
|
||||||
|
preset: 'middle',
|
||||||
|
},
|
||||||
|
syncGroups: [
|
||||||
|
{
|
||||||
|
type: 'voi',
|
||||||
|
id: 'mpr',
|
||||||
|
source: true,
|
||||||
|
target: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
displaySets: [
|
||||||
|
{
|
||||||
|
id: 'mprDisplaySet',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
Loading…
Reference in New Issue
Block a user