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

View File

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