comparison OrthancServer/UnitTestsSources/UnitTestsMain.cpp @ 5650:c2817a9eb032

unit test
author Alain Mazy <am@orthanc.team>
date Wed, 05 Jun 2024 11:03:45 +0200
parents f7adfb22e20e
children
comparison
equal deleted inserted replaced
5649:4a2bfda999c6 5650:c2817a9eb032
240 std::unique_ptr<DicomInstanceToStore> toStore(DicomInstanceToStore::CreateFromParsedDicomFile(dicom)); 240 std::unique_ptr<DicomInstanceToStore> toStore(DicomInstanceToStore::CreateFromParsedDicomFile(dicom));
241 241
242 Json::Value dicomAsJson; 242 Json::Value dicomAsJson;
243 OrthancConfiguration::DefaultDicomDatasetToJson(dicomAsJson, toStore->GetParsedDicomFile()); 243 OrthancConfiguration::DefaultDicomDatasetToJson(dicomAsJson, toStore->GetParsedDicomFile());
244 244
245 DicomMap m; 245 { // without parsing sequences
246 m.FromDicomAsJson(dicomAsJson); 246 DicomMap m;
247 247 m.FromDicomAsJson(dicomAsJson);
248 ASSERT_EQ("ISO_IR 100", m.GetValue(DICOM_TAG_SPECIFIC_CHARACTER_SET).GetContent()); 248
249 249 ASSERT_EQ("ISO_IR 100", m.GetValue(DICOM_TAG_SPECIFIC_CHARACTER_SET).GetContent());
250 ASSERT_FALSE(m.GetValue(DICOM_TAG_PATIENT_NAME).IsBinary()); 250
251 ASSERT_EQ("Hello", m.GetValue(DICOM_TAG_PATIENT_NAME).GetContent()); 251 ASSERT_FALSE(m.GetValue(DICOM_TAG_PATIENT_NAME).IsBinary());
252 252 ASSERT_EQ("Hello", m.GetValue(DICOM_TAG_PATIENT_NAME).GetContent());
253 ASSERT_FALSE(m.GetValue(DICOM_TAG_STUDY_DESCRIPTION).IsBinary()); 253
254 ASSERT_EQ(utf8, m.GetValue(DICOM_TAG_STUDY_DESCRIPTION).GetContent()); 254 ASSERT_FALSE(m.GetValue(DICOM_TAG_STUDY_DESCRIPTION).IsBinary());
255 255 ASSERT_EQ(utf8, m.GetValue(DICOM_TAG_STUDY_DESCRIPTION).GetContent());
256 ASSERT_FALSE(m.HasTag(DICOM_TAG_MANUFACTURER)); // Too long 256
257 ASSERT_FALSE(m.HasTag(DICOM_TAG_PIXEL_DATA)); // Pixel data 257 ASSERT_FALSE(m.HasTag(DICOM_TAG_MANUFACTURER)); // Too long
258 ASSERT_FALSE(m.HasTag(DICOM_TAG_REFERENCED_SERIES_SEQUENCE)); // Sequence 258 ASSERT_FALSE(m.HasTag(DICOM_TAG_PIXEL_DATA)); // Pixel data
259 ASSERT_EQ(DICOM_TAG_REFERENCED_SERIES_SEQUENCE.GetGroup(), DCM_ReferencedSeriesSequence.getGroup()); 259 ASSERT_FALSE(m.HasTag(DICOM_TAG_REFERENCED_SERIES_SEQUENCE)); // Sequence
260 ASSERT_EQ(DICOM_TAG_REFERENCED_SERIES_SEQUENCE.GetElement(), DCM_ReferencedSeriesSequence.getElement()); 260 ASSERT_EQ(DICOM_TAG_REFERENCED_SERIES_SEQUENCE.GetGroup(), DCM_ReferencedSeriesSequence.getGroup());
261 261 ASSERT_EQ(DICOM_TAG_REFERENCED_SERIES_SEQUENCE.GetElement(), DCM_ReferencedSeriesSequence.getElement());
262 ASSERT_TRUE(m.HasTag(DICOM_TAG_SERIES_DESCRIPTION)); // Maximum length 262
263 ASSERT_FALSE(m.GetValue(DICOM_TAG_SERIES_DESCRIPTION).IsBinary()); 263 ASSERT_TRUE(m.HasTag(DICOM_TAG_SERIES_DESCRIPTION)); // Maximum length
264 ASSERT_EQ(ORTHANC_MAXIMUM_TAG_LENGTH, 264 ASSERT_FALSE(m.GetValue(DICOM_TAG_SERIES_DESCRIPTION).IsBinary());
265 static_cast<int>(m.GetValue(DICOM_TAG_SERIES_DESCRIPTION).GetContent().length())); 265 ASSERT_EQ(ORTHANC_MAXIMUM_TAG_LENGTH,
266 266 static_cast<int>(m.GetValue(DICOM_TAG_SERIES_DESCRIPTION).GetContent().length()));
267 ASSERT_FALSE(m.GetValue(DICOM_TAG_ROWS).IsBinary()); 267
268 ASSERT_EQ("512", m.GetValue(DICOM_TAG_ROWS).GetContent()); 268 ASSERT_FALSE(m.GetValue(DICOM_TAG_ROWS).IsBinary());
269 269 ASSERT_EQ("512", m.GetValue(DICOM_TAG_ROWS).GetContent());
270 ASSERT_FALSE(m.GetValue(DICOM_TAG_STUDY_ID).IsNull()); 270
271 ASSERT_FALSE(m.GetValue(DICOM_TAG_STUDY_ID).IsBinary()); 271 ASSERT_FALSE(m.GetValue(DICOM_TAG_STUDY_ID).IsNull());
272 ASSERT_EQ("", m.GetValue(DICOM_TAG_STUDY_ID).GetContent()); 272 ASSERT_FALSE(m.GetValue(DICOM_TAG_STUDY_ID).IsBinary());
273 273 ASSERT_EQ("", m.GetValue(DICOM_TAG_STUDY_ID).GetContent());
274 DicomArray a(m); 274
275 ASSERT_EQ(6u, a.GetSize()); 275 DicomArray a(m);
276 276 ASSERT_EQ(6u, a.GetSize());
277 277
278 //dicom.SaveToFile("/tmp/test.dcm"); 278
279 //std::cout << toStore.GetJson() << std::endl; 279 //dicom.SaveToFile("/tmp/test.dcm");
280 //a.Print(stdout); 280 //std::cout << toStore.GetJson() << std::endl;
281 //a.Print(stdout);
282 }
283
284 { // now parses sequences
285 // LOG(INFO) << dicomAsJson.toStyledString();
286
287 DicomMap m;
288 m.FromDicomAsJson(dicomAsJson, false, true /* parseSequences */);
289
290 ASSERT_TRUE(m.HasTag(DICOM_TAG_REFERENCED_SERIES_SEQUENCE));
291 }
281 } 292 }
282 293
283 294
284 295
285 namespace Orthanc 296 namespace Orthanc