Mercurial > hg > orthanc-stone
diff Applications/Samples/RtViewerPlugin/OrthancExplorer.js @ 1538:d1806b4e4839
moving OrthancStone/Samples/ as Applications/Samples/
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 11 Aug 2020 13:24:38 +0200 |
parents | OrthancStone/Samples/RtViewerPlugin/OrthancExplorer.js@de8cf5859e84 |
children | 8c5f9864545f |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Applications/Samples/RtViewerPlugin/OrthancExplorer.js Tue Aug 11 13:24:38 2020 +0200 @@ -0,0 +1,87 @@ +$('#series').live('pagebeforecreate', function() { + var b = $('<a>') + .attr('data-role', 'button') + .attr('href', '#') + .attr('data-icon', 'search') + .attr('data-theme', 'e') + .text('Stone MPR RT Sample Viewer');`` + + b.insertBefore($('#series-delete').parent().parent()); + b.click(function() { + if ($.mobile.pageData) { + $.ajax({ + url: '../series/' + $.mobile.pageData.uuid, + dataType: 'json', + cache: false, + success: function(series) { + + // we consider that the imaging series to display is the + // current one. + // we will look for RTDOSE and RTSTRUCT instances in the + // sibling series from the same study. The first one of + // each modality will be grabbed. + let ctSeries = $.mobile.pageData.uuid; + + $.ajax({ + url: '../studies/' + series.ParentStudy, + dataType: 'json', + cache: false, + success: function(study) { + // Loop on the study series and find the first RTSTRUCT and RTDOSE instances, + // if any. + let rtStructInstance = null; + let rtDoseInstance = null; + let rtPetInstance = null; + let seriesRequests = [] + + study.Series.forEach( function(studySeriesUuid) { + let request = $.ajax({ + url: '../series/' + studySeriesUuid, + dataType: 'json', + cache: false, + }); + seriesRequests.push(request); + }); + + $.when.apply($,seriesRequests).then(function() { + [].forEach.call(arguments, function(response) { + siblingSeries = response[0] + if (siblingSeries.MainDicomTags.Modality == "RTDOSE") { + // we have found an RTDOSE series. Let's grab the first instance + if (siblingSeries.Instances.length > 0) { + if(rtDoseInstance == null) { + rtDoseInstance = siblingSeries.Instances[0]; + } + } + } + if (siblingSeries.MainDicomTags.Modality == "PT") { + // we have found an RTDOSE series. Let's grab the first instance + if (siblingSeries.Instances.length > 0) { + if(rtPetInstance == null) { + rtPetInstance = siblingSeries.Instances[0]; + } + } + } + if (siblingSeries.MainDicomTags.Modality == "RTSTRUCT") { + // we have found an RTDOSE series. Let's grab the first instance + if (siblingSeries.Instances.length > 0) { + if(rtStructInstance == null) { + rtStructInstance = siblingSeries.Instances[0]; + } + } + } + }); + let mprViewerUrl = '../stone-rtviewer/index.html?ctseries=' + ctSeries + + '&rtdose=' + rtDoseInstance + + '&rtstruct=' + rtStructInstance; + //console.log("About to open: " + mprViewerUrl); + window.open(mprViewerUrl); + }); + } + }); + } + }); + } + }); +}); +