diff Framework/Toolbox/DicomInstanceParameters.cpp @ 980:8e497a4e3d96

DicomInstanceParameters::GetIndexInSeries()
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 03 Sep 2019 19:03:17 +0200
parents a7351ad54960
children 1f74bc3459ba
line wrap: on
line diff
--- a/Framework/Toolbox/DicomInstanceParameters.cpp	Tue Sep 03 17:52:28 2019 +0200
+++ b/Framework/Toolbox/DicomInstanceParameters.cpp	Tue Sep 03 19:03:17 2019 +0200
@@ -176,6 +176,12 @@
     {
       expectedPixelFormat_ = Orthanc::PixelFormat_Grayscale16;
     }
+
+    // This computes the "IndexInSeries" metadata from Orthanc (check
+    // out "Orthanc::ServerIndex::Store()")
+    hasIndexInSeries_ = (
+      dicom.ParseUnsignedInteger32(indexInSeries_, Orthanc::DICOM_TAG_INSTANCE_NUMBER) ||
+      dicom.ParseUnsignedInteger32(indexInSeries_, Orthanc::DICOM_TAG_IMAGE_INDEX));
   }
 
 
@@ -398,4 +404,18 @@
       return new LookupTableTextureSceneLayer(*converted);
     }
   }
+
+  
+  unsigned int DicomInstanceParameters::GetIndexInSeries() const
+  {
+    if (data_.hasIndexInSeries_)
+    {
+      return data_.indexInSeries_;
+    }
+    else
+    {
+      LOG(ERROR) << "DicomInstanceParameters::GetIndexInSeries(): !data_.hasIndexInSeries_";
+      throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls);
+    }
+  }
 }