ohif-viewer/Packages/worklist/components/worklist.js
2015-11-06 15:29:09 +01:00

118 lines
3.3 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

ViewerData = Session.get('ViewerData') || {};
StudyMetaData = {};
getStudyMetadata = function(studyInstanceUid, doneCallback) {
log.info('worklistStudy getStudyMetadata');
if (StudyMetaData.hasOwnProperty(studyInstanceUid) && StudyMetaData[studyInstanceUid]) {
var study = StudyMetaData[studyInstanceUid];
doneCallback(study);
return;
}
Meteor.call('GetStudyMetadata', studyInstanceUid, function(error, study) {
sortStudy(study);
StudyMetaData[studyInstanceUid] = study;
doneCallback(study);
});
};
switchToTab = function(contentId) {
log.info("Switching to tab: " + contentId);
$('.tabTitle a[data-target="#' + contentId + '"]').tab('show');
$("#viewer").remove();
if (contentId === 'worklistTab') {
document.body.style.overflow = null;
document.body.style.height = null;
document.body.style.minWidth = null;
document.body.style.position = null;
return;
}
// Set active tab
Session.set("activeContentId", contentId);
// Get tab content container
var container = $('.tab-content').find("#" + contentId).get(0);
if (!container) {
return;
}
var studyInstanceUid = ViewerData[contentId].studyInstanceUid;
getStudyMetadata(studyInstanceUid, function(study) {
var data = {
viewportRows: ViewerData[contentId].viewportRows,
viewportColumns: ViewerData[contentId].viewportColumns,
contentId: contentId,
studies: [study],
};
Session.set('studies', data.studies);
// Remove the loading text template that is inside by default
container.innerHTML = "";
UI.renderWithData(Template.viewer, data, container);
var imageViewer = $("#viewer");
if (imageViewer) {
document.body.style.overflow = "hidden";
document.body.style.height = '100%';
document.body.style.width = '100%';
document.body.style.minWidth = 0;
document.body.style.position = 'fixed'; // Prevent overscroll on mobile devices
}
});
};
openNewTab = function(studyInstanceUid, title) {
var contentid = generateUUID();
var data = {
title: title,
contentid: contentid,
};
tabs.insert(data);
ViewerData[contentid] = {
title: title,
contentid: contentid,
studyInstanceUid: studyInstanceUid
};
switchToTab(contentid);
};
Template.worklist.onRendered(function() {
// If there is a tab set as active in the Session,
// switch to that now.
var contentId = Session.get("activeContentId");
if (contentId) {
switchToTab(contentId);
}
});
Template.worklist.helpers({
'tabs': function() {
log.info('Updating tabs');
return tabs.find();
}
});
Template.worklist.events({
'click #tablist a[data-toggle="tab"]': function(e) {
// If this tab is already active, do nothing
var tabButton = $(e.currentTarget);
var tabTitle = tabButton.parents('.tabTitle');
if (tabTitle.hasClass("active")) {
return;
}
// Otherwise, switch to the tab
var contentId = tabButton.data('target').replace("#", "");
switchToTab(contentId);
}
});