ohif-viewer/Packages/ohif-viewerbase/client/components/browser/series.js
2018-12-14 14:38:36 +01:00

66 lines
2.1 KiB
JavaScript

import { Template } from 'meteor/templating';
import { ReactiveVar } from 'meteor/reactive-var';
import { Tracker } from 'meteor/tracker';
import { OHIF } from 'ohif-core';
Template.studyBrowserSeries.onCreated(() => {
const instance = Template.instance();
const { studyInformation, studyMetadata } = instance.data;
const studyInstanceUid = (studyMetadata && studyMetadata.studyInstanceUid) || (studyInformation && studyInformation.studyInstanceUid);
instance.thumbnails = new ReactiveVar([]);
// Get the study metadata and update the study thumbnails
instance.autorun(() => {
let metadata = studyMetadata;
// Check for reactivity
if (metadata instanceof ReactiveVar) {
metadata = metadata.get();
}
// Retrieve the study metadata
if (!metadata) {
metadata = OHIF.viewer.Studies.findBy({ studyInstanceUid });
}
// Stop here if there's no study metadata
if (!metadata) return;
// Get the study display sets
let displaySets = metadata.displaySets;
if (!displaySets.length) {
displaySets = OHIF.viewerbase.sortingManager.getDisplaySets(metadata);
metadata.displaySets = displaySets;
metadata.setDisplaySets(displaySets);
metadata.forEachDisplaySet(displaySet => {
OHIF.viewerbase.stackManager.makeAndAddStack(metadata, displaySet);
});
}
// Defines the resulting thumbnails list
const thumbnails = [];
displaySets.forEach((stack, thumbnailIndex) => {
thumbnails.push({
thumbnailIndex,
stack
});
});
instance.thumbnails.set(thumbnails);
});
});
Template.studyBrowserSeries.onRendered(() => {
const instance = Template.instance();
// Run this computation every time the thumbnails are changed
instance.autorun(() => {
instance.thumbnails.get();
Tracker.afterFlush(() => {
instance.$('.study-browser-series').adjustMax('height');
});
});
});