# HG changeset patch # User Alain Mazy # Date 1681412204 -7200 # Node ID 8dc22bc353de4a6b67e9f67d03e54f9ff7e78fa8 # Parent 50b18e7a254da69a3d037fb9740a15f7c8c7e8d3 QIDO-RS now supports named tags in get arguments diff -r 50b18e7a254d -r 8dc22bc353de NEWS --- a/NEWS Thu Apr 13 15:43:27 2023 +0200 +++ b/NEWS Thu Apr 13 20:56:44 2023 +0200 @@ -4,6 +4,7 @@ * Added a default permission for /toolk/bulk-delete * Added a default permission for /changes * Added a default permission for /auth/tokens/ohif-viewer-publication +* QIDO-RS now supports named tags in get arguments 2023-03-17 - v 0.5.0 diff -r 50b18e7a254d -r 8dc22bc353de Plugin/DefaultAuthorizationParser.cpp --- a/Plugin/DefaultAuthorizationParser.cpp Thu Apr 13 15:43:27 2023 +0200 +++ b/Plugin/DefaultAuthorizationParser.cpp Thu Apr 13 20:56:44 2023 +0200 @@ -137,9 +137,28 @@ std::string studyInstanceUid, seriesInstanceUid, sopInstanceUid, patientId; studyInstanceUid = Orthanc::HttpToolbox::GetArgument(getArguments, "0020000D", ""); + if (studyInstanceUid.empty()) + { + studyInstanceUid = Orthanc::HttpToolbox::GetArgument(getArguments, "StudyInstanceUID", ""); + } + seriesInstanceUid = Orthanc::HttpToolbox::GetArgument(getArguments, "0020000E", ""); + if (seriesInstanceUid.empty()) + { + seriesInstanceUid = Orthanc::HttpToolbox::GetArgument(getArguments, "SeriesInstanceUID", ""); + } + sopInstanceUid = Orthanc::HttpToolbox::GetArgument(getArguments, "00080018", ""); + if (sopInstanceUid.empty()) + { + sopInstanceUid = Orthanc::HttpToolbox::GetArgument(getArguments, "SOPInstanceUID", ""); + } + patientId = Orthanc::HttpToolbox::GetArgument(getArguments, "00100010", ""); + if (patientId.empty()) + { + patientId = Orthanc::HttpToolbox::GetArgument(getArguments, "PatientID", ""); + } if (!sopInstanceUid.empty() && !seriesInstanceUid.empty() && !studyInstanceUid.empty()) { diff -r 50b18e7a254d -r 8dc22bc353de UnitTestsSources/UnitTestsMain.cpp --- a/UnitTestsSources/UnitTestsMain.cpp Thu Apr 13 15:43:27 2023 +0200 +++ b/UnitTestsSources/UnitTestsMain.cpp Thu Apr 13 20:56:44 2023 +0200 @@ -237,6 +237,17 @@ } { accesses.clear(); + const char* getKeys[] = {"StudyInstanceUID", "SOPInstanceUID", "SeriesInstanceUID"}; + const char* getValues[] = {"2.2", "4.4", "3.3", }; + AssociativeArray getArguments(3, getKeys, getValues, false); + parser.Parse(accesses, "/dicom-web/studies", getArguments.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[] = {"00100010"}; const char* getValues[] = {"PATIENT.1"}; AssociativeArray getArguments(1, getKeys, getValues, false);