# HG changeset patch # User Sebastien Jodogne # Date 1613484073 -3600 # Node ID 671ee7c1fd461826d00a7ec95f5be95da91333cb # Parent 8734caa12448aed4537a840385bd4f44bcec1210 added DicomToJsonFlags_SkipGroupLengths diff -r 8734caa12448 -r 671ee7c1fd46 NEWS --- a/NEWS Tue Feb 16 14:42:04 2021 +0100 +++ b/NEWS Tue Feb 16 15:01:13 2021 +0100 @@ -19,6 +19,7 @@ ------- * New value in enumeration: OrthancPluginDicomToJsonFlags_StopAfterPixelData +* New value in enumeration: OrthancPluginDicomToJsonFlags_SkipGroupLengths Maintenance ----------- diff -r 8734caa12448 -r 671ee7c1fd46 OrthancFramework/Sources/DicomParsing/FromDcmtkBridge.cpp --- a/OrthancFramework/Sources/DicomParsing/FromDcmtkBridge.cpp Tue Feb 16 14:42:04 2021 +0100 +++ b/OrthancFramework/Sources/DicomParsing/FromDcmtkBridge.cpp Tue Feb 16 15:01:13 2021 +0100 @@ -1004,6 +1004,13 @@ continue; } + // New flag in Orthanc 1.9.1 + if ((flags & DicomToJsonFlags_SkipGroupLengths) && + tag.GetElement() == 0x0000) + { + continue; + } + /*element->getTag().isPrivate()*/ if (tag.IsPrivate() && !(flags & DicomToJsonFlags_IncludePrivateTags)) diff -r 8734caa12448 -r 671ee7c1fd46 OrthancFramework/Sources/Enumerations.h --- a/OrthancFramework/Sources/Enumerations.h Tue Feb 16 14:42:04 2021 +0100 +++ b/OrthancFramework/Sources/Enumerations.h Tue Feb 16 15:01:13 2021 +0100 @@ -581,6 +581,7 @@ DicomToJsonFlags_ConvertBinaryToAscii = (1 << 4), DicomToJsonFlags_ConvertBinaryToNull = (1 << 5), DicomToJsonFlags_StopAfterPixelData = (1 << 6), // New in Orthanc 1.9.1 + DicomToJsonFlags_SkipGroupLengths = (1 << 7), // New in Orthanc 1.9.1 // Some predefined combinations DicomToJsonFlags_None = 0, diff -r 8734caa12448 -r 671ee7c1fd46 OrthancFramework/UnitTestsSources/FromDcmtkTests.cpp --- a/OrthancFramework/UnitTestsSources/FromDcmtkTests.cpp Tue Feb 16 14:42:04 2021 +0100 +++ b/OrthancFramework/UnitTestsSources/FromDcmtkTests.cpp Tue Feb 16 15:01:13 2021 +0100 @@ -635,6 +635,7 @@ { Uint8 v[2] = { 0, 0 }; ASSERT_TRUE(f.GetDcmtkObject().getDataset()->putAndInsertString(DCM_PatientName, "HELLO^").good()); + ASSERT_TRUE(f.GetDcmtkObject().getDataset()->putAndInsertUint32(DcmTag(0x4000, 0x0000), 42).good()); ASSERT_TRUE(f.GetDcmtkObject().getDataset()->putAndInsertUint8Array(DCM_PixelData, v, 2).good()); ASSERT_TRUE(f.GetDcmtkObject().getDataset()->putAndInsertString(DcmTag(0x07fe1, 0x0010), "WORLD^").good()); } @@ -646,14 +647,15 @@ Json::Value v; f.DatasetToJson(v, DicomToJsonFormat_Short, static_cast(DicomToJsonFlags_IncludePrivateTags | DicomToJsonFlags_IncludePixelData | DicomToJsonFlags_StopAfterPixelData), 0); ASSERT_EQ(Json::objectValue, v.type()); - ASSERT_EQ(2u, v.size()); + ASSERT_EQ(3u, v.size()); ASSERT_EQ("HELLO^", v["0010,0010"].asString()); + ASSERT_EQ("42", v["4000,0000"].asString()); ASSERT_EQ(s, v["7fe0,0010"].asString()); } { Json::Value v; - f.DatasetToJson(v, DicomToJsonFormat_Short, DicomToJsonFlags_IncludePrivateTags, 0); + f.DatasetToJson(v, DicomToJsonFormat_Short, static_cast(DicomToJsonFlags_IncludePrivateTags | DicomToJsonFlags_SkipGroupLengths), 0); ASSERT_EQ(Json::objectValue, v.type()); ASSERT_EQ(2u, v.size()); ASSERT_EQ("HELLO^", v["0010,0010"].asString()); diff -r 8734caa12448 -r 671ee7c1fd46 OrthancServer/Plugins/Engine/OrthancPlugins.cpp --- a/OrthancServer/Plugins/Engine/OrthancPlugins.cpp Tue Feb 16 14:42:04 2021 +0100 +++ b/OrthancServer/Plugins/Engine/OrthancPlugins.cpp Tue Feb 16 15:01:13 2021 +0100 @@ -1703,6 +1703,7 @@ static_cast(OrthancPluginDicomToJsonFlags_ConvertBinaryToNull) != static_cast(DicomToJsonFlags_ConvertBinaryToNull) || static_cast(OrthancPluginDicomToJsonFlags_ConvertBinaryToAscii) != static_cast(DicomToJsonFlags_ConvertBinaryToAscii) || static_cast(OrthancPluginDicomToJsonFlags_StopAfterPixelData) != static_cast(DicomToJsonFlags_StopAfterPixelData) || + static_cast(OrthancPluginDicomToJsonFlags_SkipGroupLengths) != static_cast(DicomToJsonFlags_SkipGroupLengths) || static_cast(OrthancPluginCreateDicomFlags_DecodeDataUriScheme) != static_cast(DicomFromJsonFlags_DecodeDataUriScheme) || static_cast(OrthancPluginCreateDicomFlags_GenerateIdentifiers) != static_cast(DicomFromJsonFlags_GenerateIdentifiers)) diff -r 8734caa12448 -r 671ee7c1fd46 OrthancServer/Plugins/Include/orthanc/OrthancCPlugin.h --- a/OrthancServer/Plugins/Include/orthanc/OrthancCPlugin.h Tue Feb 16 14:42:04 2021 +0100 +++ b/OrthancServer/Plugins/Include/orthanc/OrthancCPlugin.h Tue Feb 16 15:01:13 2021 +0100 @@ -836,6 +836,7 @@ OrthancPluginDicomToJsonFlags_ConvertBinaryToAscii = (1 << 4), /*!< Output binary tags as-is, dropping non-ASCII */ OrthancPluginDicomToJsonFlags_ConvertBinaryToNull = (1 << 5), /*!< Signal binary tags as null values */ OrthancPluginDicomToJsonFlags_StopAfterPixelData = (1 << 6), /*!< Stop processing after pixel data (new in 1.9.1) */ + OrthancPluginDicomToJsonFlags_SkipGroupLengths = (1 << 7), /*!< Skip tags whose element is zero (new in 1.9.1) */ _OrthancPluginDicomToJsonFlags_INTERNAL = 0x7fffffff } OrthancPluginDicomToJsonFlags;