59 lines
1.5 KiB
JavaScript
59 lines
1.5 KiB
JavaScript
var hangingProtocol;
|
|
|
|
function defaultHangingProtocol(inputData) {
|
|
var studies = inputData.studies;
|
|
var viewportRows = inputData.viewportRows;
|
|
var viewportColumns = inputData.viewportColumns;
|
|
|
|
if (!studies.length) {
|
|
log.warn("No studies provided to Hanging Protocol");
|
|
return;
|
|
}
|
|
|
|
// This is the most basic hanging protocol.
|
|
var stacks = [];
|
|
studies.forEach(function(study) {
|
|
study.seriesList.forEach(function(series) {
|
|
|
|
// Ensure that the series has image data
|
|
// (All images have rows)
|
|
var anInstance = series.instances[0];
|
|
if (!anInstance || !anInstance.rows) {
|
|
return;
|
|
}
|
|
|
|
var stack = {
|
|
series: series,
|
|
study: study
|
|
};
|
|
stacks.push(stack);
|
|
});
|
|
});
|
|
|
|
var viewportData = [];
|
|
|
|
var numViewports = viewportRows * viewportColumns;
|
|
for (var i=0; i < numViewports; ++i) {
|
|
if (i >= stacks.length) {
|
|
// We don't have enough stacks to fill the desired number of viewports, so stop here
|
|
break;
|
|
}
|
|
viewportData[i] = {
|
|
seriesInstanceUid: stacks[i].series.seriesInstanceUid,
|
|
studyInstanceUid: stacks[i].study.studyInstanceUid,
|
|
currentImageIdIndex: 0
|
|
};
|
|
}
|
|
return viewportData;
|
|
}
|
|
|
|
getHangingProtocol = function() {
|
|
return hangingProtocol;
|
|
};
|
|
|
|
setHangingProtocol = function(protocol) {
|
|
hangingProtocol = protocol;
|
|
};
|
|
|
|
setHangingProtocol(defaultHangingProtocol);
|