LT-73 Export selected studies from study list to local

- Query to get metadata of the selected studies to export
- Download and zip the queried dicom files
- Show and update the progress dialog while querying and exporting studies
This commit is contained in:
Evren Ozkan committed 2016-02-23 11:53:49 -05:00
1 parent a24387b28b
commit efa236f4cd
6 files changed
+140 -1

No files matched your search

@@ -24,7 +24,9 @@
</a>
<a class="disabled"><i class="fa fa-trash fa-lg"></i> Delete</a>
<a class="disabled"><i class="fa fa-send-o fa-lg"></i> Send</a>
<a class="disabled"><i class="fa fa-exchange fa-lg"></i> Export</a>
<a id="exportSelectedStudies" type="button"
title="Export Selected Studies">
<i class="fa fa-exchange fa-lg"></i> Export</a>
<a class="disabled"><i class="fa fa-download fa-lg"></i> Download</a>
<a class="disabled"><i class="fa fa-photo fa-lg"></i> View Series Details</a>
</li>
@@ -5,6 +5,7 @@ var defaultTemplate = 'studyContextMenu';
Template.lesionTrackerWorklistContextMenu.replaces(defaultTemplate);
Worklist.functions['removeTimepointAssociations'] = removeTimepointAssociations;
Worklist.functions['exportSelectedStudies'] = exportSelectedStudies;
/**
* Removes all present study / timepoint associations from the Clinical Trial
@@ -72,4 +73,38 @@ function removeTimepointAssociations() {
});
}
});
}
/**
* Exports all selected studies on the worklist
*/
function exportSelectedStudies() {
var selectedStudies = WorklistSelectedStudies.find({}, {
sort: {
studyDate: 1
}
}).fetch() || [];
if (selectedStudies.length < 1) {
return;
}
var studiesToExport = [];
var numberOfStudiesToQuery = selectedStudies.length;
progressDialog.show("Querying Studies...", numberOfStudiesToQuery);
selectedStudies.forEach(function(selectedStudy) {
getStudyMetadata(selectedStudy.studyInstanceUid, function(study) {
studiesToExport.push(study);
var numberOfStudiesQueried = studiesToExport.length;
progressDialog.update(numberOfStudiesQueried);
if (numberOfStudiesQueried === numberOfStudiesToQuery) {
exportStudies(studiesToExport);
}
});
});
}