Mercurial > hg > orthanc-stl
diff Sources/OrthancExplorer.js @ 45:967f947014ac nexus
adding experimental support for nexus models
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 09 Apr 2024 22:13:01 +0200 |
parents | b6910092bcca |
children | 9b2a2fcc9878 |
line wrap: on
line diff
--- a/Sources/OrthancExplorer.js Sat Apr 06 17:19:16 2024 +0200 +++ b/Sources/OrthancExplorer.js Tue Apr 09 22:13:01 2024 +0200 @@ -24,6 +24,9 @@ const STL_PLUGIN_SOP_CLASS_UID_STL = '1.2.840.10008.5.1.4.1.1.104.3'; const STL_PLUGIN_SOP_CLASS_UID_RT_STRUCT = '1.2.840.10008.5.1.4.1.1.481.3'; +const STL_PLUGIN_SOP_CLASS_UID_RAW = '1.2.840.10008.5.1.4.1.1.66'; + +const STL_PLUGIN_NEXUS_CREATOR_VERSION_UID = '1.2.826.0.1.3680043.8.498.90514926286349109728701975613711986292'; function AddStlViewer(target, name, callback) { @@ -391,11 +394,36 @@ } +function AddOpenStlNexusButton(instanceId, id, parent) { + $.ajax({ + url: '/instances/' + instanceId + '/content/0008,9123', + success: function(creatorVersionUid) { + if (creatorVersionUid == STL_PLUGIN_NEXUS_CREATOR_VERSION_UID) { + var b = $('<a>') + .attr('id', id) + .attr('data-role', 'button') + .attr('href', '#') + .attr('data-icon', 'search') + .attr('data-theme', 'e') + .text('Nexus 3D viewer') + .button(); + + b.insertAfter($('#' + parent)); + + b.click(function() { + window.open('../stl/nexus/threejs.html?model=../../instances/' + instanceId + '/nexus'); + }); + } + } + }); +} + $('#series').live('pagebeforeshow', function() { var seriesId = $.mobile.pageData.uuid; $('#stl-viewer-series').remove(); + $('#stl-nexus-series').remove(); $('#stl-generate-rtstruct-series').remove(); GetResource('/series/' + seriesId, function(series) { @@ -413,6 +441,9 @@ else if (sopClassUid == STL_PLUGIN_SOP_CLASS_UID_RT_STRUCT) { AddGenerateFromRtStructButton(instanceId, 'stl-generate-rtstruct-series', 'series-info'); } + else if (sopClassUid == STL_PLUGIN_SOP_CLASS_UID_RAW) { + AddOpenStlNexusButton(instanceId, 'stl-nexus-series', 'series-info'); + } } }); @@ -425,6 +456,7 @@ var instanceId = $.mobile.pageData.uuid; $('#stl-viewer-instance').remove(); + $('#stl-nexus-instance').remove(); $('#stl-generate-rtstruct-instance').remove(); $.ajax({ @@ -438,6 +470,9 @@ else if (sopClassUid == STL_PLUGIN_SOP_CLASS_UID_RT_STRUCT) { AddGenerateFromRtStructButton(instanceId, 'stl-generate-rtstruct-instance', 'instance-info'); } + else if (sopClassUid == STL_PLUGIN_SOP_CLASS_UID_RAW) { + AddOpenStlNexusButton(instanceId, 'stl-nexus-instance', 'instance-info'); + } } });