# HG changeset patch # User Sebastien Jodogne # Date 1624607852 -7200 # Node ID 2789b4b0e0a8f16479090ddaeef84c5a84cb5826 # Parent ca85b6d60bca986003d4e7fd838023bfcf1f7dda DicomInstanceParameters::HasNumberOfFrames() and DicomInstanceParameters::GetInstanceNumber() diff -r ca85b6d60bca -r 2789b4b0e0a8 OrthancStone/Sources/Toolbox/DicomInstanceParameters.cpp --- a/OrthancStone/Sources/Toolbox/DicomInstanceParameters.cpp Thu Jun 24 16:46:22 2021 +0200 +++ b/OrthancStone/Sources/Toolbox/DicomInstanceParameters.cpp Fri Jun 25 09:57:32 2021 +0200 @@ -91,10 +91,12 @@ uint32_t n; if (dicom.ParseUnsignedInteger32(n, Orthanc::DICOM_TAG_NUMBER_OF_FRAMES)) { + hasNumberOfFrames_ = true; numberOfFrames_ = n; } else { + hasNumberOfFrames_ = false; numberOfFrames_ = 1; } @@ -262,6 +264,12 @@ { frameOfReferenceUid_.clear(); } + + if (!dicom.HasTag(Orthanc::DICOM_TAG_INSTANCE_NUMBER) || + !dicom.GetValue(Orthanc::DICOM_TAG_INSTANCE_NUMBER).ParseInteger32(instanceNumber_)) + { + instanceNumber_ = 0; + } } diff -r ca85b6d60bca -r 2789b4b0e0a8 OrthancStone/Sources/Toolbox/DicomInstanceParameters.h --- a/OrthancStone/Sources/Toolbox/DicomInstanceParameters.h Thu Jun 24 16:46:22 2021 +0200 +++ b/OrthancStone/Sources/Toolbox/DicomInstanceParameters.h Fri Jun 25 09:57:32 2021 +0200 @@ -63,6 +63,8 @@ double doseGridScaling_; std::string frameOfReferenceUid_; bool hasPixelSpacing_; + bool hasNumberOfFrames_; + int32_t instanceNumber_; explicit Data(const Orthanc::DicomMap& dicom); }; @@ -240,5 +242,15 @@ double pixelSpacingY); void EnrichUsingDicomWeb(const Json::Value& dicomweb); + + bool HasNumberOfFrames() const + { + return data_.hasNumberOfFrames_; + } + + int32_t GetInstanceNumber() const + { + return data_.instanceNumber_; + } }; }