display viewport.
This commit is contained in:
1 parent
7c0d93f011
commit
4fc3169fed
17 files changed
+227
-245
No files matched your search
@@ -3,7 +3,7 @@ import React, { Component, useContext } from 'react';
|
||||
/// TODO MAKE THIS PRETTY DANNY
|
||||
|
||||
const ViewModelContext = React.createContext({
|
||||
displaySetInstanceUids: [],
|
||||
displaySetInstanceUIDs: [],
|
||||
setDisplaySetInstanceUids: () => {},
|
||||
toolBarLayout: [],
|
||||
setToolBarLayout: () => {},
|
||||
@@ -13,12 +13,12 @@ ViewModelContext.displayName = 'ViewModelContext';
|
||||
|
||||
class ViewModelProvider extends Component {
|
||||
state = {
|
||||
displaySetInstanceUids: [],
|
||||
displaySetInstanceUIDs: [],
|
||||
};
|
||||
|
||||
render() {
|
||||
const setDisplaySetInstanceUids = displaySetInstanceUids => {
|
||||
this.setState({ displaySetInstanceUids });
|
||||
const setDisplaySetInstanceUids = displaySetInstanceUIDs => {
|
||||
this.setState({ displaySetInstanceUIDs });
|
||||
};
|
||||
|
||||
const setToolBarLayout = toolBarLayout => {
|
||||
@@ -28,7 +28,7 @@ class ViewModelProvider extends Component {
|
||||
return (
|
||||
<ViewModelContext.Provider
|
||||
value={{
|
||||
displaySetInstanceUids: this.state.displaySetInstanceUids,
|
||||
displaySetInstanceUIDs: this.state.displaySetInstanceUIDs,
|
||||
setDisplaySetInstanceUids,
|
||||
toolBarLayout: this.state.toolBarLayout,
|
||||
setToolBarLayout,
|
||||
|
||||
@@ -8,26 +8,26 @@ class DisplaySetManager {
|
||||
this.SOPClassHandlerIds = SOPClassHandlerIds;
|
||||
|
||||
const {
|
||||
displaySetInstanceUids,
|
||||
displaySetInstanceUIDs,
|
||||
setDisplaySetInstanceUids,
|
||||
} = viewModelContext;
|
||||
|
||||
this.displaySetInstanceUids = displaySetInstanceUids;
|
||||
this.displaySetInstanceUIDs = displaySetInstanceUIDs;
|
||||
this.setDisplaySetInstanceUids = setDisplaySetInstanceUids;
|
||||
|
||||
// Reset displaySetInstanceUids
|
||||
// Reset displaySetInstanceUIDs
|
||||
this.setDisplaySetInstanceUids([]);
|
||||
}
|
||||
|
||||
_addDisplaySets(displaySets) {
|
||||
//const displayInstanceUids = [...this.displaySetInstanceUids];
|
||||
//const displayInstanceUids = [...this.displaySetInstanceUIDs];
|
||||
|
||||
const addedDisplaySetUids = [];
|
||||
|
||||
displaySets.forEach(displaySet => {
|
||||
this.displaySets.push(displaySet);
|
||||
|
||||
addedDisplaySetUids.push(displaySet.displaySetInstanceUid);
|
||||
addedDisplaySetUids.push(displaySet.displaySetInstanceUID);
|
||||
});
|
||||
|
||||
return addedDisplaySetUids;
|
||||
@@ -39,9 +39,9 @@ class DisplaySetManager {
|
||||
);
|
||||
};
|
||||
|
||||
getDisplaySetByUID = displaySetInstanceUid => {
|
||||
getDisplaySetByUID = displaySetInstanceUID => {
|
||||
return this.displaySets.find(
|
||||
displaySet => displaySet.displaySetInstanceUid === displaySetInstanceUid
|
||||
displaySet => displaySet.displaySetInstanceUID === displaySetInstanceUID
|
||||
);
|
||||
};
|
||||
|
||||
@@ -71,7 +71,7 @@ class DisplaySetManager {
|
||||
|
||||
if (cachedDisplaySets.length) {
|
||||
addedDisplaySetUids = cachedDisplaySets.map(
|
||||
displaySet => displaySet.displaySetInstanceUid
|
||||
displaySet => displaySet.displaySetInstanceUID
|
||||
);
|
||||
} else {
|
||||
const displaySets = handler.getDisplaySetsFromSeries(instances);
|
||||
@@ -79,12 +79,12 @@ class DisplaySetManager {
|
||||
addedDisplaySetUids = this._addDisplaySets(displaySets);
|
||||
}
|
||||
|
||||
this.displaySetInstanceUids = [
|
||||
this.displaySetInstanceUIDs = [
|
||||
...addedDisplaySetUids,
|
||||
...this.displaySetInstanceUids,
|
||||
...this.displaySetInstanceUIDs,
|
||||
];
|
||||
|
||||
this.setDisplaySetInstanceUids(this.displaySetInstanceUids);
|
||||
this.setDisplaySetInstanceUids(this.displaySetInstanceUIDs);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -105,9 +105,9 @@ export default class ExtensionManager {
|
||||
this._initToolBarModule(extensionModule, extensionId);
|
||||
break;
|
||||
|
||||
case MODULE_TYPES.VIEWPORT:
|
||||
case MODULE_TYPES.PANEL:
|
||||
case MODULE_TYPES.SOP_CLASS_HANDLER:
|
||||
case MODULE_TYPES.VIEWPORT:
|
||||
case MODULE_TYPES.CONTEXT:
|
||||
case MODULE_TYPES.LAYOUT_TEMPLATE:
|
||||
// Default for most extension points,
|
||||
@@ -118,6 +118,7 @@ export default class ExtensionManager {
|
||||
`${extensionId}.${moduleType}.${element.name}`
|
||||
] = element;
|
||||
});
|
||||
break;
|
||||
}
|
||||
|
||||
this.modules[moduleType].push({
|
||||
|
||||
@@ -11,79 +11,37 @@ const stackUpdatedCallbacks = [];
|
||||
* Cornerstone meta data provider. This will be used to fill information
|
||||
* into the viewport overlays, and to calculate reference lines and orientation markers
|
||||
* @param {Object} stackMap stackMap object
|
||||
* @param {Object} study Study object
|
||||
* @param {Object} displaySet The set of images to make the stack from
|
||||
* @return {Array} Array with image IDs
|
||||
*/
|
||||
function createAndAddStack(stackMap, study, displaySet, stackUpdatedCallbacks) {
|
||||
const images = displaySet.images;
|
||||
function createAndAddStack(
|
||||
stackMap,
|
||||
displaySet,
|
||||
dataSource,
|
||||
stackUpdatedCallbacks
|
||||
) {
|
||||
const {
|
||||
images,
|
||||
displaySetInstanceUID,
|
||||
StudyInstanceUID,
|
||||
frameRate,
|
||||
isClip,
|
||||
} = displaySet;
|
||||
if (!images) {
|
||||
return;
|
||||
}
|
||||
|
||||
const numImages = images.length;
|
||||
const imageIds = [];
|
||||
let imageId;
|
||||
|
||||
displaySet.images.forEach((instance, imageIndex) => {
|
||||
const image = instance.getData();
|
||||
const metaData = {
|
||||
instance: image, // in this context, instance will be the data of the InstanceMetadata object...
|
||||
series: displaySet, // TODO: Check this
|
||||
study,
|
||||
numImages,
|
||||
imageIndex: imageIndex + 1,
|
||||
};
|
||||
|
||||
const naturalizedInstance = instance.getData().metadata;
|
||||
const NumberOfFrames = naturalizedInstance.NumberOfFrames;
|
||||
|
||||
if (NumberOfFrames > 1) {
|
||||
for (let i = 0; i < NumberOfFrames; i++) {
|
||||
metaData.frameNumber = i;
|
||||
imageId = getImageId(image, i);
|
||||
imageIds.push(imageId);
|
||||
|
||||
const {
|
||||
StudyInstanceUID,
|
||||
SeriesInstanceUID,
|
||||
SOPInstanceUID,
|
||||
} = instance.getData().metadata;
|
||||
|
||||
metadataProvider.addImageIdToUIDs(imageId, {
|
||||
StudyInstanceUID,
|
||||
SeriesInstanceUID,
|
||||
SOPInstanceUID,
|
||||
});
|
||||
}
|
||||
} else {
|
||||
metaData.frameNumber = 1;
|
||||
imageId = getImageId(image);
|
||||
imageIds.push(imageId);
|
||||
|
||||
const {
|
||||
StudyInstanceUID,
|
||||
SeriesInstanceUID,
|
||||
SOPInstanceUID,
|
||||
} = naturalizedInstance;
|
||||
|
||||
metadataProvider.addImageIdToUIDs(imageId, {
|
||||
StudyInstanceUID,
|
||||
SeriesInstanceUID,
|
||||
SOPInstanceUID,
|
||||
});
|
||||
}
|
||||
});
|
||||
const imageIds = dataSource.getImageIdsForDisplaySet(displaySetInstanceUID);
|
||||
|
||||
const stack = {
|
||||
StudyInstanceUID: study.StudyInstanceUID,
|
||||
displaySetInstanceUID: displaySet.displaySetInstanceUID,
|
||||
StudyInstanceUID,
|
||||
displaySetInstanceUID,
|
||||
imageIds,
|
||||
frameRate: displaySet.frameRate,
|
||||
isClip: displaySet.isClip,
|
||||
frameRate,
|
||||
isClip,
|
||||
};
|
||||
|
||||
stackMap[displaySet.displaySetInstanceUID] = stack;
|
||||
stackMap[displaySetInstanceUID] = stack;
|
||||
|
||||
return stack;
|
||||
}
|
||||
@@ -106,15 +64,14 @@ const StackManager = {
|
||||
},
|
||||
/**
|
||||
* Create a stack from an image set, as well as add in the metadata on a per image bases.
|
||||
* @param study The study who's metadata will be added
|
||||
* @param displaySet The set of images to make the stack from
|
||||
* @return {Array} Array with image IDs
|
||||
*/
|
||||
makeAndAddStack(study, displaySet) {
|
||||
makeAndAddStack(displaySet, dataSource) {
|
||||
return configuration.createAndAddStack(
|
||||
stackMap,
|
||||
study,
|
||||
displaySet,
|
||||
dataSource,
|
||||
stackUpdatedCallbacks
|
||||
);
|
||||
},
|
||||
@@ -128,15 +85,14 @@ const StackManager = {
|
||||
},
|
||||
/**
|
||||
* Find a stack or reate one if it has not been created yet
|
||||
* @param study The study who's metadata will be added
|
||||
* @param displaySet The set of images to make the stack from
|
||||
* @return {Array} Array with image IDs
|
||||
*/
|
||||
findOrCreateStack(study, displaySet) {
|
||||
findOrCreateStack(displaySet, dataSource) {
|
||||
let stack = this.findStack(displaySet.displaySetInstanceUID);
|
||||
|
||||
if (!stack || !stack.imageIds) {
|
||||
stack = this.makeAndAddStack(study, displaySet);
|
||||
stack = this.makeAndAddStack(displaySet, dataSource);
|
||||
}
|
||||
|
||||
return stack;
|
||||
|
||||
@@ -30,7 +30,7 @@ import studyMetadataManager from './studyMetadataManager';
|
||||
* Factory function to load and cache derived display sets.
|
||||
*
|
||||
* @param {object} referencedDisplaySet Display set
|
||||
* @param {string} referencedDisplaySet.displaySetInstanceUid Display set instance uid
|
||||
* @param {string} referencedDisplaySet.displaySetInstanceUID Display set instance uid
|
||||
* @param {string} referencedDisplaySet.seriesDate
|
||||
* @param {string} referencedDisplaySet.seriesTime
|
||||
* @param {string} referencedDisplaySet.seriesInstanceUid
|
||||
|
||||
Reference in new issue
Block a user