ohif-viewer/Packages/ohif-viewerbase/client/lib/WLPresets.js
2017-01-29 22:11:17 -02:00

87 lines
2.1 KiB
JavaScript

import { Meteor } from 'meteor/meteor';
import { OHIF } from 'meteor/ohif:core';
import { viewportUtils } from './viewportUtils';
// TODO: add this to a namespace definition
Meteor.startup(function() {
OHIF.viewer.defaultWLPresets = {
SoftTissue: {
wc: 40,
ww: 400
},
Lung: {
wc: -600,
ww: 1500
},
Liver: {
wc: 90,
ww: 150
},
Bone: {
wc: 480,
ww: 2500
},
Brain: {
wc: 40,
ww: 80
}
};
// For now
OHIF.viewer.wlPresets = OHIF.viewer.defaultWLPresets;
});
function applyWLPreset(presetName, element) {
OHIF.log.info('Applying WL Preset: ' + presetName);
if (presetName !== 'Custom') {
const viewport = cornerstone.getViewport(element);
if (presetName === 'Default') {
const enabledElement = cornerstone.getEnabledElement(element);
viewport.voi.windowWidth = enabledElement.image.windowWidth;
viewport.voi.windowCenter = enabledElement.image.windowCenter;
} else {
const preset = OHIF.viewer.wlPresets[presetName];
if(preset) {
viewport.voi.windowWidth = preset.ww;
viewport.voi.windowCenter = preset.wc;
}
}
// Update the viewport
cornerstone.setViewport(element, viewport);
}
}
function applyWLPresetToActiveElement(presetName) {
const element = viewportUtils.getActiveViewportElement();
if (!element) {
return;
}
applyWLPreset(presetName, element);
// To perform reactivity in other components
Session.set('WLPresetActiveElement', presetName);
}
/**
* Overrides OHIF's wlPresets
* @param {Object} wlPresets Object with wlPresets mapping
*/
function setOHIFWLPresets(wlPresets) {
OHIF.viewer.wlPresets = wlPresets;
}
/**
* Export functions inside WLPresets namespace.
*/
const WLPresets = {
applyWLPreset,
applyWLPresetToActiveElement,
setOHIFWLPresets
};
export { WLPresets };