Mercurial > hg > orthanc
comparison OrthancServer/ServerToolbox.cpp @ 1737:ec66a16aa398
removal of DicomStringValue and DicomNullValue
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 22 Oct 2015 07:52:24 +0200 |
parents | a7c05bbfaf6a |
children | b3de74dec2d5 |
comparison
equal
deleted
inserted
replaced
1736:b953c6eef28d | 1737:ec66a16aa398 |
---|---|
89 } | 89 } |
90 } | 90 } |
91 } | 91 } |
92 | 92 |
93 | 93 |
94 static std::string ValueAsString(const DicomMap& summary, | |
95 const DicomTag& tag) | |
96 { | |
97 const DicomValue& value = summary.GetValue(tag); | |
98 if (value.IsNull()) | |
99 { | |
100 return "(null)"; | |
101 } | |
102 else | |
103 { | |
104 return value.GetContent(); | |
105 } | |
106 } | |
107 | |
108 | |
94 void LogMissingRequiredTag(const DicomMap& summary) | 109 void LogMissingRequiredTag(const DicomMap& summary) |
95 { | 110 { |
96 std::string s, t; | 111 std::string s, t; |
97 | 112 |
98 if (summary.HasTag(DICOM_TAG_PATIENT_ID)) | 113 if (summary.HasTag(DICOM_TAG_PATIENT_ID)) |
99 { | 114 { |
100 if (t.size() > 0) | 115 if (t.size() > 0) |
101 t += ", "; | 116 t += ", "; |
102 t += "PatientID=" + summary.GetValue(DICOM_TAG_PATIENT_ID).AsString(); | 117 t += "PatientID=" + ValueAsString(summary, DICOM_TAG_PATIENT_ID); |
103 } | 118 } |
104 else | 119 else |
105 { | 120 { |
106 if (s.size() > 0) | 121 if (s.size() > 0) |
107 s += ", "; | 122 s += ", "; |
110 | 125 |
111 if (summary.HasTag(DICOM_TAG_STUDY_INSTANCE_UID)) | 126 if (summary.HasTag(DICOM_TAG_STUDY_INSTANCE_UID)) |
112 { | 127 { |
113 if (t.size() > 0) | 128 if (t.size() > 0) |
114 t += ", "; | 129 t += ", "; |
115 t += "StudyInstanceUID=" + summary.GetValue(DICOM_TAG_STUDY_INSTANCE_UID).AsString(); | 130 t += "StudyInstanceUID=" + ValueAsString(summary, DICOM_TAG_STUDY_INSTANCE_UID); |
116 } | 131 } |
117 else | 132 else |
118 { | 133 { |
119 if (s.size() > 0) | 134 if (s.size() > 0) |
120 s += ", "; | 135 s += ", "; |
123 | 138 |
124 if (summary.HasTag(DICOM_TAG_SERIES_INSTANCE_UID)) | 139 if (summary.HasTag(DICOM_TAG_SERIES_INSTANCE_UID)) |
125 { | 140 { |
126 if (t.size() > 0) | 141 if (t.size() > 0) |
127 t += ", "; | 142 t += ", "; |
128 t += "SeriesInstanceUID=" + summary.GetValue(DICOM_TAG_SERIES_INSTANCE_UID).AsString(); | 143 t += "SeriesInstanceUID=" + ValueAsString(summary, DICOM_TAG_SERIES_INSTANCE_UID); |
129 } | 144 } |
130 else | 145 else |
131 { | 146 { |
132 if (s.size() > 0) | 147 if (s.size() > 0) |
133 s += ", "; | 148 s += ", "; |
136 | 151 |
137 if (summary.HasTag(DICOM_TAG_SOP_INSTANCE_UID)) | 152 if (summary.HasTag(DICOM_TAG_SOP_INSTANCE_UID)) |
138 { | 153 { |
139 if (t.size() > 0) | 154 if (t.size() > 0) |
140 t += ", "; | 155 t += ", "; |
141 t += "SOPInstanceUID=" + summary.GetValue(DICOM_TAG_SOP_INSTANCE_UID).AsString(); | 156 t += "SOPInstanceUID=" + ValueAsString(summary, DICOM_TAG_SOP_INSTANCE_UID); |
142 } | 157 } |
143 else | 158 else |
144 { | 159 { |
145 if (s.size() > 0) | 160 if (s.size() > 0) |
146 s += ", "; | 161 s += ", "; |
166 | 181 |
167 for (size_t i = 0; i < flattened.GetSize(); i++) | 182 for (size_t i = 0; i < flattened.GetSize(); i++) |
168 { | 183 { |
169 const DicomElement& element = flattened.GetElement(i); | 184 const DicomElement& element = flattened.GetElement(i); |
170 const DicomTag& tag = element.GetTag(); | 185 const DicomTag& tag = element.GetTag(); |
171 database.SetMainDicomTag(resource, tag, element.GetValue().AsString()); | 186 const DicomValue& value = element.GetValue(); |
187 if (!value.IsNull() && | |
188 !value.IsBinary()) | |
189 { | |
190 database.SetMainDicomTag(resource, tag, element.GetValue().GetContent()); | |
191 } | |
172 } | 192 } |
173 } | 193 } |
174 | 194 |
175 | 195 |
176 static void SetIdentifierTagInternal(IDatabaseWrapper& database, | 196 static void SetIdentifierTagInternal(IDatabaseWrapper& database, |
178 const DicomMap& tags, | 198 const DicomMap& tags, |
179 const DicomTag& tag) | 199 const DicomTag& tag) |
180 { | 200 { |
181 const DicomValue* value = tags.TestAndGetValue(tag); | 201 const DicomValue* value = tags.TestAndGetValue(tag); |
182 if (value != NULL && | 202 if (value != NULL && |
183 !value->IsNull()) | 203 !value->IsNull() && |
184 { | 204 !value->IsBinary()) |
185 std::string s = value->AsString(); | 205 { |
206 std::string s = value->GetContent(); | |
186 | 207 |
187 if (tag != DICOM_TAG_PATIENT_ID && | 208 if (tag != DICOM_TAG_PATIENT_ID && |
188 tag != DICOM_TAG_STUDY_INSTANCE_UID && | 209 tag != DICOM_TAG_STUDY_INSTANCE_UID && |
189 tag != DICOM_TAG_SERIES_INSTANCE_UID && | 210 tag != DICOM_TAG_SERIES_INSTANCE_UID && |
190 tag != DICOM_TAG_SOP_INSTANCE_UID && | 211 tag != DICOM_TAG_SOP_INSTANCE_UID && |