ohif-viewer/Packages/worklist/components/worklist.js

118 lines
3.3 KiB
JavaScript
Raw Normal View History

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;
2015-10-20 15:45:27 +02:00
}
Meteor.call('GetStudyMetadata', studyInstanceUid, function(error, study) {
sortStudy(study);
StudyMetaData[studyInstanceUid] = study;
2015-10-20 15:45:27 +02:00
doneCallback(study);
});
};
switchToTab = function(contentId) {
log.info("Switching to tab: " + contentId);
$('.tabTitle a[data-target="#' + contentId + '"]').tab('show');
2015-10-20 15:45:27 +02:00
$("#viewer").remove();
if (contentId === 'worklistTab') {
2015-10-20 15:45:27 +02:00
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 = "";
2015-10-20 15:45:27 +02:00
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
}
});
2015-10-20 15:45:27 +02:00
};
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) {
2015-11-06 15:29:09 +01:00
// 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);
}
});