66 lines
2.1 KiB
JavaScript
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');
|
|
});
|
|
});
|
|
});
|