changeset 7171:752b2dc9f6b1

new warnings W102-W104
author Alain Mazy <am@orthanc.team>
date Tue, 20 Oct 2026 09:27:07 +0200
parents bb6c9baf347d
children b7a765bb2812
files NEWS OrthancFramework/Sources/DicomParsing/DicomModification.cpp OrthancServer/Resources/AdvancedConfiguration.json TODO
diffstat 4 files changed, 19 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/NEWS	Fri Oct 09 17:13:06 2026 +0200
+++ b/NEWS	Tue Oct 20 09:27:07 2026 +0200
@@ -32,6 +32,9 @@
   (https://discourse.orthanc-server.org/t/find-worklist-with-localaet-from-modality-configuration/6482)
 * Added new warnings that can be disabled in the configuration: 
   - W101_TruncatingDicomTagTo256Values
+  - W102_KeepSOPInstanceUIDInModification
+  - W103_KeepSeriesInstanceUIDInModification
+  - W104_KeepStudyInstanceUIDInModification
 * Fixed a deadlock in Anonymization/Modification jobs: some instances failing to be processed
   could keep the job in a "processing" state forever.
 * Fixed preview of YBR_FULL images encoded in JPEG-LS
--- a/OrthancFramework/Sources/DicomParsing/DicomModification.cpp	Fri Oct 09 17:13:06 2026 +0200
+++ b/OrthancFramework/Sources/DicomParsing/DicomModification.cpp	Tue Oct 20 09:27:07 2026 +0200
@@ -1099,7 +1099,7 @@
     {
       if (keepStudyInstanceUid_)
       {
-        LOG(WARNING) << "Modifying a study while keeping its original StudyInstanceUID: This should be avoided!";
+        LOG_WARNING("W104") << "Modifying a study while keeping its original StudyInstanceUID: This should be avoided!";
       }
       else
       {
@@ -1112,7 +1112,7 @@
     {
       if (keepSeriesInstanceUid_)
       {
-        LOG(WARNING) << "Modifying a series while keeping its original SeriesInstanceUID: This should be avoided!";
+        LOG_WARNING("W103") << "Modifying a series while keeping its original SeriesInstanceUID: This should be avoided!";
       }
       else
       {
@@ -1125,7 +1125,7 @@
     {
       if (keepSopInstanceUid_)
       {
-        LOG(WARNING) << "Modifying an instance while keeping its original SOPInstanceUID: This should be avoided!";
+        LOG_WARNING("W102") << "Modifying an instance while keeping its original SOPInstanceUID: This should be avoided!";
       }
       else
       {
--- a/OrthancServer/Resources/AdvancedConfiguration.json	Fri Oct 09 17:13:06 2026 +0200
+++ b/OrthancServer/Resources/AdvancedConfiguration.json	Tue Oct 20 09:27:07 2026 +0200
@@ -61,7 +61,19 @@
 
     // Display a warning when Orthanc is truncating DICOMTag whose multiplicity is
     // higher than 256 values when converting the tags to JSON.
-    "W101_TruncatingDicomTagTo256Values" : true
+    "W101_TruncatingDicomTagTo256Values" : true,
+
+    // Display a warning when a user requests to modify an instance while
+    // keeping its SOPInstanceUID unchanged.
+    "W102_KeepSOPInstanceUIDInModification": true,
+
+    // Display a warning when a user requests to modify a series while
+    // keeping its SeriesInstanceUID unchanged.
+    "W103_KeepSeriesInstanceUIDInModification": true,
+
+    // Display a warning when a user requests to modify a study while
+    // keeping its StudyInstanceUID unchanged.
+    "W104_KeepStudyInstanceUIDInModification": true
   },
 
   // Path to the directory where Orthanc stores its large temporary
--- a/TODO	Fri Oct 09 17:13:06 2026 +0200
+++ b/TODO	Tue Oct 20 09:27:07 2026 +0200
@@ -28,14 +28,6 @@
 * (1) Accept extra DICOM tags dictionaries in the DCMTK format '.dic' (easier to use than declare
   them in the Orthanc configuration file).  Even the standard dictionaries could be 
   overridden by these custom dictionaries.
-* Add configurations to enable/disable warnings:
-  - Modifying an instance while keeping its original SOPInstanceUID: This should be avoided!
-  - Modifying a study while keeping its original StudyInstanceUID: This should be avoided!
-  In order to be able to disable/enable warnings in both the server and the framework, we should add a map of
-  enabled warnings in the logging classes directly and have something like:
-  LOG_WARNING_IF_ENABLED("Warning_ID") << ...
-  ENABLE_WARNING("Warning_ID", true)
-  Warnings from Framework should have a separate range like W999_ or WF001_ ...
 * Store the job registry in a dedicatd table in DB ?
   https://discourse.orthanc-server.org/t/performance-issue-when-adding-a-lot-of-jobs-in-the-queue/3915/2
   Note: that might also be the right time to have a central jobs registry when working
@@ -114,8 +106,6 @@
 * Discuss HL7 in a dedicated page:
   https://groups.google.com/d/msg/orthanc-users/4dt4992O0lQ/opTjTFU2BgAJ
   https://groups.google.com/g/orthanc-users/c/Spjtcj9vSPo/m/ktUArWxUDQAJ
-* TODO-Streaming: add a page in the book about performance (fine
-  tuning limiting memory + increasing the number of threads)
 
 
 ================