diff OrthancFramework/Sources/DicomFormat/DicomMap.cpp @ 4501:11c2ddb4e2ca

FromDcmtkBridge::LogMissingTagsForStore()
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 09 Feb 2021 15:24:36 +0100
parents d9473bd5ed43
children b47ee86a0d10
line wrap: on
line diff
--- a/OrthancFramework/Sources/DicomFormat/DicomMap.cpp	Tue Feb 09 14:49:30 2021 +0100
+++ b/OrthancFramework/Sources/DicomFormat/DicomMap.cpp	Tue Feb 09 15:24:36 2021 +0100
@@ -920,13 +920,44 @@
 
   void DicomMap::LogMissingTagsForStore() const
   {
+    std::string patientId, studyInstanceUid, seriesInstanceUid, sopInstanceUid;
+    
+    if (HasTag(DICOM_TAG_PATIENT_ID))
+    {
+      patientId = ValueAsString(*this, DICOM_TAG_PATIENT_ID);
+    }
+
+    if (HasTag(DICOM_TAG_STUDY_INSTANCE_UID))
+    {
+      studyInstanceUid = ValueAsString(*this, DICOM_TAG_STUDY_INSTANCE_UID);
+    }
+
+    if (HasTag(DICOM_TAG_SERIES_INSTANCE_UID))
+    {
+      seriesInstanceUid = ValueAsString(*this, DICOM_TAG_SERIES_INSTANCE_UID);
+    }
+
+    if (HasTag(DICOM_TAG_SOP_INSTANCE_UID))
+    {
+      sopInstanceUid = ValueAsString(*this, DICOM_TAG_SOP_INSTANCE_UID);
+    }
+
+    LogMissingTagsForStore(patientId, studyInstanceUid, seriesInstanceUid, sopInstanceUid);
+  }
+
+  
+  void DicomMap::LogMissingTagsForStore(const std::string& patientId,
+                                        const std::string& studyInstanceUid,
+                                        const std::string& seriesInstanceUid,
+                                        const std::string& sopInstanceUid)
+  {
     std::string s, t;
 
-    if (HasTag(DICOM_TAG_PATIENT_ID))
+    if (!patientId.empty())
     {
       if (t.size() > 0)
         t += ", ";
-      t += "PatientID=" + ValueAsString(*this, DICOM_TAG_PATIENT_ID);
+      t += "PatientID=" + patientId;
     }
     else
     {
@@ -935,11 +966,11 @@
       s += "PatientID";
     }
 
-    if (HasTag(DICOM_TAG_STUDY_INSTANCE_UID))
+    if (!studyInstanceUid.empty())
     {
       if (t.size() > 0)
         t += ", ";
-      t += "StudyInstanceUID=" + ValueAsString(*this, DICOM_TAG_STUDY_INSTANCE_UID);
+      t += "StudyInstanceUID=" + studyInstanceUid;
     }
     else
     {
@@ -948,11 +979,11 @@
       s += "StudyInstanceUID";
     }
 
-    if (HasTag(DICOM_TAG_SERIES_INSTANCE_UID))
+    if (!seriesInstanceUid.empty())
     {
       if (t.size() > 0)
         t += ", ";
-      t += "SeriesInstanceUID=" + ValueAsString(*this, DICOM_TAG_SERIES_INSTANCE_UID);
+      t += "SeriesInstanceUID=" + seriesInstanceUid;
     }
     else
     {
@@ -961,11 +992,11 @@
       s += "SeriesInstanceUID";
     }
 
-    if (HasTag(DICOM_TAG_SOP_INSTANCE_UID))
+    if (!sopInstanceUid.empty())
     {
       if (t.size() > 0)
         t += ", ";
-      t += "SOPInstanceUID=" + ValueAsString(*this, DICOM_TAG_SOP_INSTANCE_UID);
+      t += "SOPInstanceUID=" + sopInstanceUid;
     }
     else
     {