LT-73 Move queryStudies used to get study metadata from exportStudies to lib as a global function

This commit is contained in:
Evren Ozkan 2016-04-05 17:38:36 -04:00
parent e277c4b484
commit e97e72944f
3 changed files with 56 additions and 35 deletions

View File

@ -9,28 +9,14 @@ exportStudies = function(studiesToExport) {
return;
}
var studiesQueried = [];
var numberOfStudiesToQuery = studiesToExport.length;
progressDialog.show("Querying Studies...", numberOfStudiesToQuery);
studiesToExport.forEach(function(selectedStudy) {
getStudyMetadata(selectedStudy.studyInstanceUid, function(study) {
studiesQueried.push(study);
var numberOfStudiesQueried = studiesQueried.length;
progressDialog.update(numberOfStudiesQueried);
if (numberOfStudiesQueried === numberOfStudiesToQuery) {
exportQueriedStudies(studiesQueried);
}
});
});
queryStudies(studiesToExport, exportQueriedStudies);
};
function exportQueriedStudies(studiesToExport) {
var numberOfFilesToExport = getNumberOfFilesToExport(studiesToExport);
var numberOfFilesToExport = 0;
studiesToExport.forEach(function(study) {
numberOfFilesToExport += getNumberOfFilesInStudy(study);
});
progressDialog.show("Exporting Studies...", numberOfFilesToExport);
@ -120,22 +106,6 @@ function exportQueriedStudiesInternal(studiesToExport, numberOfFilesToExport) {
});
}
function getNumberOfFilesToExport(studiesToExport) {
var numberOFFilesToExport = 0;
studiesToExport.forEach(function(study) {
study.seriesList.forEach(function(series) {
series.instances.forEach(function(instance) {
if (instance.wadouri) {
numberOFFilesToExport++;
}
});
});
});
return numberOFFilesToExport;
}
function onExportFailed(err) {
exportFailed = true;
progressDialog.close();

View File

@ -0,0 +1,48 @@
/**
* Queries requested studies to get their metadata from PACS
* @param studiesToQuery Studies to query
* @param doneCallback Callback to call when the query is done
*/
queryStudies = function(studiesToQuery, doneCallback) {
if (studiesToQuery.length < 1) {
return;
}
var studiesQueried = [];
var numberOfStudiesToQuery = studiesToQuery.length;
progressDialog.show("Querying Studies...", numberOfStudiesToQuery);
studiesToQuery.forEach(function(studyToQuery) {
getStudyMetadata(studyToQuery.studyInstanceUid, function(study) {
studiesQueried.push(study);
var numberOfStudiesQueried = studiesQueried.length;
progressDialog.update(numberOfStudiesQueried);
if (numberOfStudiesQueried === numberOfStudiesToQuery) {
doneCallback(studiesQueried);
}
});
});
};
/**
* Returns the total number of dicom files in a study
* @param study Queried study (includes metadata)
* @returns {number}
*/
getNumberOfFilesInStudy = function(study) {
var numberOFFilesToExport = 0;
study.seriesList.forEach(function(series) {
series.instances.forEach(function(instance) {
if (instance.wadouri) {
numberOFFilesToExport++;
}
});
});
return numberOFFilesToExport;
};

View File

@ -146,6 +146,7 @@ Package.onUse(function(api) {
api.addFiles('lib/resizeViewportElements.js', 'client');
api.addFiles('lib/setFocusToActiveViewport.js', 'client');
api.addFiles('lib/updateAllViewports.js', 'client');
api.addFiles('lib/queryStudies.js', 'client');
api.addFiles('lib/exportStudies.js', 'client');
api.addFiles('lib/importStudies.js', 'client');
api.addFiles('lib/encodeQueryData.js', 'server');
@ -166,6 +167,8 @@ Package.onUse(function(api) {
api.export('updateOrientationMarkers', 'client');
api.export('setFocusToActiveViewport', 'client');
api.export('updateAllViewports', 'client');
api.export('queryStudies', 'client');
api.export('getNumberOfFilesInStudy', 'client');
api.export('exportStudies', 'client');
api.export('importStudies', 'client');
api.export('getActiveViewportElement', 'client');