Fixes for display sets, prep for tracking / grid stuff

This commit is contained in:
Erik Ziegler 2020-05-14 16:28:45 +02:00 committed by James A. Petts
parent d131489aa3
commit 0c74a9bbcd
2 changed files with 46 additions and 20 deletions

View File

@ -3,26 +3,40 @@ import { StudyBrowser } from '@ohif/ui';
import { useViewModel, displaySetManager } from '@ohif/core';
function displaySetsToStudyPanelInfo(displaySets) {
function displaySetsToStudyPanelInfo(
displaySets,
viewportData = [],
seriesTracking = {}
) {
console.log(displaySets);
const studies = {};
displaySets.forEach(displaySet => {
// TODO
displaySet.componentType = 'thumbnailTracked';
displaySet.viewportIdentificator = 'A';
displaySet.isTracked = true;
displaySet.seriesNumber = displaySet.SeriesNumber;
displaySet.numInstances = displaySet.numImageFrames;
displaySet.description = displaySet.SeriesDescription;
const displaySetViewportData = viewportData.find(
a => a.displaySetInstanceUid === displaySet.displaySetInstanceUid
);
if (displaySetViewportData) {
displaySet.viewportIdentificator = displaySetViewportData.identifier;
}
const trackingInfo = seriesTracking[displaySet.SeriesInstanceUID];
if (trackingInfo) {
displaySet.viewportIdentificator = trackingInfo.isTracked;
displaySet.componentType = trackingInfo.isTracked
? 'thumbnailTracked'
: 'thumbnail';
}
if (!Object.keys(studies).includes(displaySet.StudyInstanceUID)) {
studies[displaySet.StudyInstanceUID] = {
date: displaySet.StudyDate,
description: 'TEST',
modalities: 'TEST---TEST',
date: '01-Jan-1999',
date: displaySet.SeriesDate,
description: displaySet.SeriesDescription,
seriesNumber: displaySet.SeriesNumber,
modalities: displaySet.modalities,
displaySets: [],
numInstances: 0,
};
}
@ -92,6 +106,10 @@ function displaySetsToStudyPanelInfo(displaySets) {
function StudyBrowserPanel({}) {
const viewModel = useViewModel();
// TODO
const viewportData = []; //useViewportGrid();
const seriesTracking = {}; //useSeriesTracking();
console.log(viewModel);
const displaySets = viewModel.displaySetInstanceUids.map(
@ -101,7 +119,11 @@ function StudyBrowserPanel({}) {
let tabs;
if (displaySets.length) {
tabs = displaySetsToStudyPanelInfo(displaySets);
tabs = displaySetsToStudyPanelInfo(
displaySets,
viewportData,
seriesTracking
);
} else {
tabs = [
{

View File

@ -13,16 +13,24 @@ const makeDisplaySet = instances => {
const instance = instances[0];
const imageSet = new ImageSet(instances);
const modalities = new Set();
instances.forEach(i => {
modalities.add(i.Modality);
});
const modalitiesInDisplaySet = Array.from(modalities).join(', ');
// set appropriate attributes to image set...
imageSet.setAttributes({
displaySetInstanceUid: imageSet.uid, // create a local alias for the imageSet UID
SeriesDate: instance.SeriesDate,
SeriesTime: instance.SeriesTime,
SeriesInstanceUid: instance.SeriesInstanceUID,
SeriesInstanceUID: instance.SeriesInstanceUID,
StudyInstanceUID: instance.StudyInstanceUID,
SeriesNumber: instance.SeriesNumber,
SeriesDescription: instance.SeriesDescription,
FrameRate: instance.FrameTime,
Modality: instance.Modality,
SeriesDescription: instance.SeriesDescription,
modalities: modalitiesInDisplaySet,
isMultiFrame: isMultiFrame(instance),
numImageFrames: instances.length,
SOPClassHandlerId: `${id}.sopClassHandlerModule.${sopClassHandlerName}`,
@ -109,8 +117,6 @@ function getDisplaySetsFromSeries(instances) {
displaySet.setAttributes({
sopClassUids,
isClip: true,
seriesInstanceUid: instance.SeriesInstanceUID,
studyInstanceUid: instance.StudyInstanceUID,
numImageFrames: instance.NumberOfFrames,
instanceNumber: instance.InstanceNumber,
acquisitionDatetime: instance.AcquisitionDateTime,
@ -120,8 +126,6 @@ function getDisplaySetsFromSeries(instances) {
displaySet = makeDisplaySet([instance]);
displaySet.setAttributes({
sopClassUids,
studyInstanceUid: instance.StudyInstanceUID,
seriesInstanceUid: instance.SeriesInstanceUID,
instanceNumber: instance.InstanceNumber,
acquisitionDatetime: instance.AcquisitionDateTime,
});