# HG changeset patch # User Alain Mazy # Date 1684739194 -7200 # Node ID c82f0c7d2c6a46a0709be399a474cfa2acb5e441 # Parent aa34aa6b4ec1f6c992e227438bfa6ab9c07ee117 Fix parsing of dicom-web/studies/../series/../instances/../bulk/.. routes diff -r aa34aa6b4ec1 -r c82f0c7d2c6a NEWS --- a/NEWS Mon May 15 10:09:27 2023 +0200 +++ b/NEWS Mon May 22 09:06:34 2023 +0200 @@ -1,3 +1,5 @@ +* Fix parsing of dicom-web/studies/../series/../instances/../bulk/.. routes + 2023-05-15 - v 0.5.2 ==================== diff -r aa34aa6b4ec1 -r c82f0c7d2c6a Plugin/DefaultAuthorizationParser.cpp --- a/Plugin/DefaultAuthorizationParser.cpp Mon May 15 10:09:27 2023 +0200 +++ b/Plugin/DefaultAuthorizationParser.cpp Mon May 22 09:06:34 2023 +0200 @@ -47,7 +47,7 @@ "^" + tmp + "/studies/([.0-9]+)/series/([.0-9]+)(|/instances|/rendered|/metadata)(|/)$"); dicomWebInstances_ = boost::regex( - "^" + tmp + "/studies/([.0-9]+)/series/([.0-9]+)/instances/([.0-9]+)(|/|/frames/.*|/rendered|/metadata)(|/)$"); + "^" + tmp + "/studies/([.0-9]+)/series/([.0-9]+)/instances/([.0-9]+)(|/|/frames/.*|/rendered|/metadata|/bulk/.*)(|/)$"); dicomWebQidoRsFind_ = boost::regex( "^" + tmp + "/(studies|series|instances)(|/)$"); diff -r aa34aa6b4ec1 -r c82f0c7d2c6a UnitTestsSources/UnitTestsMain.cpp --- a/UnitTestsSources/UnitTestsMain.cpp Mon May 15 10:09:27 2023 +0200 +++ b/UnitTestsSources/UnitTestsMain.cpp Mon May 22 09:06:34 2023 +0200 @@ -205,6 +205,13 @@ ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Study, studyOrthancId)); ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Patient, patientOrthancId)); + accesses.clear(); + parser.Parse(accesses, "/dicom-web/studies/2.2/series/3.3/instances/4.4/bulk/7fe00010", noGetArguments.GetMap()); + ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Instance, instanceOrthancId)); + ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Series, seriesOrthancId)); + ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Study, studyOrthancId)); + ASSERT_TRUE(IsAccessing(accesses, AccessLevel_Patient, patientOrthancId)); + { accesses.clear(); const char* getKeys[] = {"0020000D"};