From 25d2ea255f01399035b8de503bfdeb240911e962 Mon Sep 17 00:00:00 2001 From: chin Date: Fri, 11 Aug 2023 16:51:11 +0800 Subject: [PATCH] fix: SQ query field incorrect # Problems - The logic incorrect, that get ggggeeee.gggeeee.Value - We should get ggggeeee.Value.ggggeee.Value to fit structure of Mongo # Solutions - Use length to check is sequence query - add ".Value" suffix to every tag - combine with dot --- .../controller/QIDO-RS/service/QIDO-RS.service.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/api/dicom-web/controller/QIDO-RS/service/QIDO-RS.service.js b/api/dicom-web/controller/QIDO-RS/service/QIDO-RS.service.js index 0735102b..901d97f7 100644 --- a/api/dicom-web/controller/QIDO-RS/service/QIDO-RS.service.js +++ b/api/dicom-web/controller/QIDO-RS/service/QIDO-RS.service.js @@ -157,15 +157,20 @@ function convertAllQueryToDICOMTag(iParam) { newKeyNames.push(keyNameSplit[x]); } } + let retKeyName; if (newKeyNames.length === 0) { throw new DicomWebServiceError( DicomWebStatusCodes.InvalidArgumentValue, `Invalid request query: ${keyNameSplit}`, 400 ); - }; - newKeyNames.push("Value"); - let retKeyName = newKeyNames.join("."); + } else if (newKeyNames.length >= 2) { + retKeyName = newKeyNames.map(v => v + ".Value").join("."); + } else { + newKeyNames.push("Value"); + retKeyName = newKeyNames.join("."); + } + newQS[retKeyName] = iParam[keyName]; } return newQS;