diff --git a/Packages/lesiontracker/components/lesionTable/lesionTable.js b/Packages/lesiontracker/components/lesionTable/lesionTable.js index 6db192b7a..ec6e43a01 100644 --- a/Packages/lesiontracker/components/lesionTable/lesionTable.js +++ b/Packages/lesiontracker/components/lesionTable/lesionTable.js @@ -213,4 +213,56 @@ Template.lesionTable.events({ var measurementId = $(e.currentTarget).data('measurementid'); activateLesion(measurementId,template.data); } -}); \ No newline at end of file +}); + +// Track ViewerData to get active timepoints +// Put a visual indicator(<) in timepoint header in lesion table for active timepoints +Tracker.autorun(function () { + var allViewerData = Session.get('ViewerData'); + var contentId = Session.get('activeContentId'); + if(allViewerData && contentId) { + var viewerData = allViewerData[contentId]; + if (viewerData) { + // Get study dates of imageViewerViewport elements + var loadedStudyDates = { + patientId: "", + dates: [] + }; + + $("#"+contentId+" .imageViewerViewport").each(function(viewportIndex, element) { + var enabledElement = cornerstone.getEnabledElement(element); + var imageId = enabledElement.image.imageId; + var study = cornerstoneTools.metaData.get('study', imageId); + var studyDate = study.studyDate; + var patientId = study.patientId; + loadedStudyDates.patientId = patientId; + // Check studyDate is 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) { + var timepoints = Timepoints.find({patientId: loadedStudyDates.patientId}).fetch(); + timepoints.forEach(function(timepoint){ + var timepointLoaded = false; + if(loadedStudyDates.dates.indexOf(timepoint.timepointName) > -1) { + timepointLoaded = true; + } + + Timepoints.update(timepoint._id,{ + $set: { + timepointLoaded: timepointLoaded + } + + }); + }); + } + } + } + +}); + diff --git a/Packages/lesiontracker/components/lesionTableTimepointHeader/lesionTableTimepointHeader.html b/Packages/lesiontracker/components/lesionTableTimepointHeader/lesionTableTimepointHeader.html index 3d60fa64b..8122faeab 100644 --- a/Packages/lesiontracker/components/lesionTableTimepointHeader/lesionTableTimepointHeader.html +++ b/Packages/lesiontracker/components/lesionTableTimepointHeader/lesionTableTimepointHeader.html @@ -1,3 +1,3 @@ \ No newline at end of file diff --git a/Packages/lesiontracker/components/lesionTableTimepointHeader/lesionTableTimepointHeader.styl b/Packages/lesiontracker/components/lesionTableTimepointHeader/lesionTableTimepointHeader.styl new file mode 100644 index 000000000..c02911f99 --- /dev/null +++ b/Packages/lesiontracker/components/lesionTableTimepointHeader/lesionTableTimepointHeader.styl @@ -0,0 +1,3 @@ +.timepointIndicator + font-size 12px + line-height 12px \ No newline at end of file diff --git a/Packages/lesiontracker/package.js b/Packages/lesiontracker/package.js index 8c2763f41..bf74bcc38 100644 --- a/Packages/lesiontracker/package.js +++ b/Packages/lesiontracker/package.js @@ -37,6 +37,7 @@ Package.onUse(function (api) { api.addFiles('components/lesionTableTimepointHeader/lesionTableTimepointHeader.html', 'client'); api.addFiles('components/lesionTableTimepointHeader/lesionTableTimepointHeader.js', 'client'); + api.addFiles('components/lesionTableTimepointHeader/lesionTableTimepointHeader.styl', 'client'); api.addFiles('components/nonTargetLesionDialog/nonTargetLesionDialog.html', 'client'); api.addFiles('components/nonTargetLesionDialog/nonTargetLesionDialog.css', 'client'); @@ -57,6 +58,7 @@ Package.onUse(function (api) { // Library functions api.addFiles('lib/uuid.js', 'client'); + api.export('Measurements', ['client', 'server']); api.export('Timepoints', ['client', 'server']); }); \ No newline at end of file