Fixes for lesion activation and loaded timepoint indicators

This commit is contained in:
Erik Ziegler committed 2016-02-16 13:11:47 +01:00
1 parent 97bcb6b6f5
commit 231df3e5b1
8 files changed
+90 -99

No files matched your search

@@ -12,8 +12,6 @@
{{ #each timepoints }}
{{ >lesionTableTimepointHeader }}
{{ /each }}
<!--What is this for?-->
<!--<th id="thSpacer"> </th>-->
</tr>
</thead>
<tbody>
@@ -11,7 +11,7 @@ Template.lesionTable.helpers({
timepoints: function() {
return Timepoints.find({}, {
sort: {
timepointName: 1
latestDate: 1
}
});
}
@@ -68,69 +68,20 @@ Template.lesionTable.onCreated(function() {
Session.setDefault('NewSeriesLoaded', false);
Template.lesionTable.onRendered(function() {
var self = this;
// Track ViewerData to get active timepoints
// Put a visual indicator (<) in timepoint header in lesion table for active timepoints
// timepointLoaded property is used to put indicator for loaded timepoints in viewport
self.autorun(function() {
// Temporary until we have a real window manager with events for series/study changed
if (!Session.get('NewSeriesLoaded')) {
return;
// Find the first measurement by Lesion Number
var firstLesion = Measurements.findOne({}, {
sort: {
lesionNumber: 1
}
log.info('ViewerData changed, check for displayed timepoints');
// Get study dates of imageViewerViewport elements
var loadedStudyDates = {
patientId: '',
dates: []
};
var viewports = $('.imageViewerViewport').not('.empty');
viewports.each(function(index, element) {
var enabledElement = cornerstone.getEnabledElement(element);
if (!enabledElement || !enabledElement.image) {
return;
}
var imageId = enabledElement.image.imageId;
var study = cornerstoneTools.metaData.get('study', imageId);
var studyDate = study.studyDate;
loadedStudyDates.patientId = study.patientId;
// Check whether or not studyDate has been added before
if (loadedStudyDates.dates.indexOf(studyDate) < 0) {
loadedStudyDates.dates.push(studyDate);
}
});
// If study date is loaded into viewport, set timepointLoaded property in Timepoints collection as true
// Else set timepointLoaded property as false
if (!loadedStudyDates.dates.length) {
return;
}
var timepoints = Timepoints.find({
patientId: loadedStudyDates.patientId
}, {
reactive: false
});
timepoints.forEach(function(timepoint) {
var timepointLoaded = false;
if (loadedStudyDates.dates.indexOf(timepoint.timepointName) > -1) {
timepointLoaded = true;
}
Timepoints.update(timepoint._id, {
$set: {
timepointLoaded: timepointLoaded
}
});
});
// Temporary until we have a real window manager with events for series/study changed
Session.set('NewSeriesLoaded', false);
});
// Create an object to store the ContentId inside
var templateData = {
contentId: Session.get('activeContentId')
};
// Activate the first lesion
if (firstLesion) {
activateLesion(firstLesion._id, templateData);
}
});
@@ -1,5 +1,5 @@
<template name="lesionTableTimepointHeader">
<th class="lesionTableTimepointCell" title="Latest study date: {{formatDA latestDate "MM/DD/YYYY"}}"
<th class="lesionTableTimepointCell {{ #if isLoaded }}loaded{{/if}}" title="Latest study date: {{formatDA latestDate "MM/DD/YYYY"}}"
data-toggle="tooltip" data-placement="top">
{{ timepointName }}
</th>
@@ -2,5 +2,38 @@ Template.lesionTableTimepointHeader.helpers({
'timepointName': function() {
var timepoint = this;
return getTimepointName(timepoint);
},
isLoaded: function() {
Session.get('NewSeriesLoaded');
log.info('ViewerData changed, check for displayed timepoints');
var timepoint = this;
var isLoaded = false;
var viewports = $('.imageViewerViewport').not('.empty');
viewports.each(function(index, element) {
var enabledElement = cornerstone.getEnabledElement(element);
if (!enabledElement || !enabledElement.image) {
return;
}
var study = cornerstoneTools.metaData.get('study', enabledElement.image.imageId);
var currentTimepoint = Timepoints.findOne({
studyInstanceUids: {
$in: [study.studyInstanceUid]
}
});
if (currentTimepoint && currentTimepoint._id === timepoint._id) {
isLoaded = true;
// Break the loop
return false;
}
});
return isLoaded;
}
});
@@ -1,3 +1,3 @@
.timepointIndicator
font-size 12px
line-height 12px
#lesionTableContainer .lesionTable thead tr th.lesionTableTimepointCell.loaded
//font-weight: bold
color: #4fbfff