changeset 2209:9b82533263f1 dicom-sr

specific thumbnail for dicom-sr
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 22 Apr 2025 14:45:02 +0200
parents b36f7b6eec39
children c1cc403eae8e 52dd6d982c27
files Applications/StoneWebViewer/NEWS Applications/StoneWebViewer/WebApplication/app.js Applications/StoneWebViewer/WebApplication/index.html Applications/StoneWebViewer/WebAssembly/StoneWebViewer.cpp OrthancStone/Sources/StoneEnumerations.cpp OrthancStone/Sources/StoneEnumerations.h
diffstat 6 files changed, 21 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/Applications/StoneWebViewer/NEWS	Tue Apr 22 14:29:53 2025 +0200
+++ b/Applications/StoneWebViewer/NEWS	Tue Apr 22 14:45:02 2025 +0200
@@ -1,15 +1,16 @@
 Pending changes in the mainline
 ===============================
 
+* Experimental support for DICOM SR "Measurement Report" (TID 1500)
 * Automatically stretch to whole range for images without preset
 * Improved support of the (0028,9132) tag for Philips multiframe images
-* Remember the previous layout when re-opening the viewer.
-* Added a Print button in the PDF viewer toolbar.
-* Added a Download button in the PDF viewer toolbar.
-* New configuration "ScreenshotTemplate" to define the filename of the
-  "download as JPEG" function.  New default value is:
+* Remember the previous layout when re-opening the viewer
+* Added a Print button in the PDF viewer toolbar
+* Added a Download button in the PDF viewer toolbar
+* New configuration "ScreenshotTemplate" to define the filename generated by the
+  "Download as JPEG" button. New default value is:
   "{PatientID}-{PatientName}-{StudyDate}-{SeriesDescription}-{InstanceNumber}-{CurrentFrame}.jpg"
-* Fix loading of US images with a negative PhyiscalDeltaX value.
+* Fix loading of US images with a negative PhyiscalDeltaX value
 
 
 Version 2.6 (2024-08-31)
--- a/Applications/StoneWebViewer/WebApplication/app.js	Tue Apr 22 14:29:53 2025 +0200
+++ b/Applications/StoneWebViewer/WebApplication/app.js	Tue Apr 22 14:45:02 2025 +0200
@@ -280,6 +280,7 @@
       stone.SpeedUpFetchSeriesMetadata(studyInstanceUid, seriesInstanceUid);
 
       if (newVal.series.type == stone.ThumbnailType.IMAGE ||
+          newVal.series.type == stone.ThumbnailType.STRUCTURED_REPORT ||
           newVal.series.type == stone.ThumbnailType.NO_PREVIEW) {
         if (newVal.series.complete) {
           this.status = 'ready';
--- a/Applications/StoneWebViewer/WebApplication/index.html	Tue Apr 22 14:29:53 2025 +0200
+++ b/Applications/StoneWebViewer/WebApplication/index.html	Tue Apr 22 14:45:02 2025 +0200
@@ -241,6 +241,10 @@
                               <i v-if="series[seriesIndex].type == stone.ThumbnailType.VIDEO"
                                  class="wvSerieslist__placeholderIcon fa fa-video"
                                  v-bind:title="leftMode == 'full' ? null : series[seriesIndex].tags[SERIES_DESCRIPTION]"></i>
+
+                              <i v-if="series[seriesIndex].type == stone.ThumbnailType.STRUCTURED_REPORT"
+                                 class="wvSerieslist__placeholderIcon fa fa-project-diagram"
+                                 v-bind:title="leftMode == 'full' ? null : series[seriesIndex].tags[SERIES_DESCRIPTION]"></i>
                               
                               <div v-if="[stone.ThumbnailType.IMAGE, stone.ThumbnailType.NO_PREVIEW].includes(series[seriesIndex].type)"
                                    class="wvSerieslist__placeholderIcon"
--- a/Applications/StoneWebViewer/WebAssembly/StoneWebViewer.cpp	Tue Apr 22 14:29:53 2025 +0200
+++ b/Applications/StoneWebViewer/WebAssembly/StoneWebViewer.cpp	Tue Apr 22 14:45:02 2025 +0200
@@ -98,6 +98,7 @@
     ThumbnailType_Pdf,
     ThumbnailType_Video,
     ThumbnailType_Loading,
+    ThumbnailType_StructuredReport,
     ThumbnailType_Unknown,
     ThumbnailType_Unavailable
     };
@@ -5018,6 +5019,9 @@
         case OrthancStone::SeriesThumbnailType_Video:
           return ThumbnailType_Video;
           
+        case OrthancStone::SeriesThumbnailType_StructuredReport:
+          return ThumbnailType_StructuredReport;
+
         case OrthancStone::SeriesThumbnailType_NotLoaded:
           return ThumbnailType_Loading;
           
--- a/OrthancStone/Sources/StoneEnumerations.cpp	Tue Apr 22 14:29:53 2025 +0200
+++ b/OrthancStone/Sources/StoneEnumerations.cpp	Tue Apr 22 14:45:02 2025 +0200
@@ -222,6 +222,9 @@
       case SopClassUid_VideoPhotographicImageStorage:
         return SeriesThumbnailType_Video;
 
+      case SopClassUid_ComprehensiveSR:
+        return SeriesThumbnailType_StructuredReport;
+
       default:
         return SeriesThumbnailType_Unsupported;
     }
--- a/OrthancStone/Sources/StoneEnumerations.h	Tue Apr 22 14:29:53 2025 +0200
+++ b/OrthancStone/Sources/StoneEnumerations.h	Tue Apr 22 14:45:02 2025 +0200
@@ -126,7 +126,8 @@
     SeriesThumbnailType_Unsupported = 2,  // The remote server cannot decode this image
     SeriesThumbnailType_Pdf = 3,
     SeriesThumbnailType_Video = 4,
-    SeriesThumbnailType_Image = 5
+    SeriesThumbnailType_Image = 5,
+    SeriesThumbnailType_StructuredReport = 6
   };
 
   enum BitmapAnchor