comparison UnitTestsSources/FromDcmtkTests.cpp @ 1805:f08978b1f45b worklists

c-find scu for modality worklists
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 20 Nov 2015 17:56:31 +0100
parents bdcc1dba4a53
children 1065401501fb
comparison
equal deleted inserted replaced
1803:d093f998a83b 1805:f08978b1f45b
73 m.SetupAnonymization(); 73 m.SetupAnonymization();
74 //m.SetLevel(DicomRootLevel_Study); 74 //m.SetLevel(DicomRootLevel_Study);
75 //m.Replace(DICOM_TAG_PATIENT_ID, "coucou"); 75 //m.Replace(DICOM_TAG_PATIENT_ID, "coucou");
76 //m.Replace(DICOM_TAG_PATIENT_NAME, "coucou"); 76 //m.Replace(DICOM_TAG_PATIENT_NAME, "coucou");
77 77
78 ParsedDicomFile o; 78 ParsedDicomFile o(true);
79 o.SaveToFile("UnitTestsResults/anon.dcm"); 79 o.SaveToFile("UnitTestsResults/anon.dcm");
80 80
81 for (int i = 0; i < 10; i++) 81 for (int i = 0; i < 10; i++)
82 { 82 {
83 char b[1024]; 83 char b[1024];
101 ASSERT_TRUE(FromDcmtkBridge::IsPrivateTag(privateTag2)); 101 ASSERT_TRUE(FromDcmtkBridge::IsPrivateTag(privateTag2));
102 ASSERT_EQ(0x0031, privateTag2.GetGroup()); 102 ASSERT_EQ(0x0031, privateTag2.GetGroup());
103 ASSERT_EQ(0x1020, privateTag2.GetElement()); 103 ASSERT_EQ(0x1020, privateTag2.GetElement());
104 104
105 std::string s; 105 std::string s;
106 ParsedDicomFile o; 106 ParsedDicomFile o(true);
107 o.Replace(DICOM_TAG_PATIENT_NAME, "coucou"); 107 o.Replace(DICOM_TAG_PATIENT_NAME, "coucou");
108 ASSERT_FALSE(o.GetTagValue(s, privateTag)); 108 ASSERT_FALSE(o.GetTagValue(s, privateTag));
109 o.Insert(privateTag, "private tag", false); 109 o.Insert(privateTag, "private tag", false);
110 ASSERT_TRUE(o.GetTagValue(s, privateTag)); 110 ASSERT_TRUE(o.GetTagValue(s, privateTag));
111 ASSERT_STREQ("private tag", s.c_str()); 111 ASSERT_STREQ("private tag", s.c_str());
159 159
160 ASSERT_EQ(5u, reader.GetHeight()); 160 ASSERT_EQ(5u, reader.GetHeight());
161 ASSERT_EQ(5u, reader.GetWidth()); 161 ASSERT_EQ(5u, reader.GetWidth());
162 ASSERT_EQ(PixelFormat_RGBA32, reader.GetFormat()); 162 ASSERT_EQ(PixelFormat_RGBA32, reader.GetFormat());
163 163
164 ParsedDicomFile o; 164 ParsedDicomFile o(true);
165 o.EmbedContent(s); 165 o.EmbedContent(s);
166 o.SaveToFile("UnitTestsResults/png1.dcm"); 166 o.SaveToFile("UnitTestsResults/png1.dcm");
167 167
168 // Red dot, without alpha channel 168 // Red dot, without alpha channel
169 s = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAIAAAACDbGyAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3gUGDTcIn2+8BgAAACJJREFUCNdj/P//PwMjIwME/P/P+J8BBTAxEOL/R9Lx/z8AynoKAXOeiV8AAAAASUVORK5CYII="; 169 s = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAIAAAACDbGyAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3gUGDTcIn2+8BgAAACJJREFUCNdj/P//PwMjIwME/P/P+J8BBTAxEOL/R9Lx/z8AynoKAXOeiV8AAAAASUVORK5CYII=";
265 { 265 {
266 //std::cout << EnumerationToString(testEncodings[i]) << std::endl; 266 //std::cout << EnumerationToString(testEncodings[i]) << std::endl;
267 std::string dicom; 267 std::string dicom;
268 268
269 { 269 {
270 ParsedDicomFile f; 270 ParsedDicomFile f(true);
271 f.SetEncoding(testEncodings[i]); 271 f.SetEncoding(testEncodings[i]);
272 272
273 std::string s = Toolbox::ConvertToUtf8(testEncodingsEncoded[i], testEncodings[i]); 273 std::string s = Toolbox::ConvertToUtf8(testEncodingsEncoded[i], testEncodings[i]);
274 f.Insert(DICOM_TAG_PATIENT_NAME, s, false); 274 f.Insert(DICOM_TAG_PATIENT_NAME, s, false);
275 f.SaveToMemoryBuffer(dicom); 275 f.SaveToMemoryBuffer(dicom);
405 405
406 406
407 407
408 TEST(ParsedDicomFile, InsertReplaceStrings) 408 TEST(ParsedDicomFile, InsertReplaceStrings)
409 { 409 {
410 ParsedDicomFile f; 410 ParsedDicomFile f(true);
411 411
412 f.Insert(DICOM_TAG_PATIENT_NAME, "World", false); 412 f.Insert(DICOM_TAG_PATIENT_NAME, "World", false);
413 ASSERT_THROW(f.Insert(DICOM_TAG_PATIENT_ID, "Hello", false), OrthancException); // Already existing tag 413 ASSERT_THROW(f.Insert(DICOM_TAG_PATIENT_ID, "Hello", false), OrthancException); // Already existing tag
414 f.Replace(DICOM_TAG_SOP_INSTANCE_UID, "Toto"); // (*) 414 f.Replace(DICOM_TAG_SOP_INSTANCE_UID, "Toto"); // (*)
415 f.Replace(DICOM_TAG_SOP_CLASS_UID, "Tata"); // (**) 415 f.Replace(DICOM_TAG_SOP_CLASS_UID, "Tata"); // (**)
444 444
445 445
446 446
447 TEST(ParsedDicomFile, InsertReplaceJson) 447 TEST(ParsedDicomFile, InsertReplaceJson)
448 { 448 {
449 ParsedDicomFile f; 449 ParsedDicomFile f(true);
450 450
451 Json::Value a; 451 Json::Value a;
452 CreateSampleJson(a); 452 CreateSampleJson(a);
453 453
454 ASSERT_FALSE(f.HasTag(REFERENCED_STUDY_SEQUENCE)); 454 ASSERT_FALSE(f.HasTag(REFERENCED_STUDY_SEQUENCE));
496 } 496 }
497 497
498 498
499 TEST(ParsedDicomFile, JsonEncoding) 499 TEST(ParsedDicomFile, JsonEncoding)
500 { 500 {
501 ParsedDicomFile f; 501 ParsedDicomFile f(true);
502 502
503 for (unsigned int i = 0; i < testEncodingsCount; i++) 503 for (unsigned int i = 0; i < testEncodingsCount; i++)
504 { 504 {
505 if (testEncodings[i] != Encoding_Windows1251) 505 if (testEncodings[i] != Encoding_Windows1251)
506 { 506 {
526 TEST(ParsedDicomFile, ToJsonFlags1) 526 TEST(ParsedDicomFile, ToJsonFlags1)
527 { 527 {
528 FromDcmtkBridge::RegisterDictionaryTag(DicomTag(0x7053, 0x1000), EVR_PN, "MyPrivateTag", 1, 1); 528 FromDcmtkBridge::RegisterDictionaryTag(DicomTag(0x7053, 0x1000), EVR_PN, "MyPrivateTag", 1, 1);
529 FromDcmtkBridge::RegisterDictionaryTag(DicomTag(0x7050, 0x1000), EVR_PN, "Declared public tag", 1, 1); 529 FromDcmtkBridge::RegisterDictionaryTag(DicomTag(0x7050, 0x1000), EVR_PN, "Declared public tag", 1, 1);
530 530
531 ParsedDicomFile f; 531 ParsedDicomFile f(true);
532 f.Insert(DicomTag(0x7050, 0x1000), "Some public tag", false); // Even group => public tag 532 f.Insert(DicomTag(0x7050, 0x1000), "Some public tag", false); // Even group => public tag
533 f.Insert(DicomTag(0x7052, 0x1000), "Some unknown tag", false); // Even group => public, unknown tag 533 f.Insert(DicomTag(0x7052, 0x1000), "Some unknown tag", false); // Even group => public, unknown tag
534 f.Insert(DicomTag(0x7053, 0x1000), "Some private tag", false); // Odd group => private tag 534 f.Insert(DicomTag(0x7053, 0x1000), "Some private tag", false); // Odd group => private tag
535 535
536 Json::Value v; 536 Json::Value v;
573 } 573 }
574 574
575 575
576 TEST(ParsedDicomFile, ToJsonFlags2) 576 TEST(ParsedDicomFile, ToJsonFlags2)
577 { 577 {
578 ParsedDicomFile f; 578 ParsedDicomFile f(true);
579 f.Insert(DICOM_TAG_PIXEL_DATA, "Pixels", false); 579 f.Insert(DICOM_TAG_PIXEL_DATA, "Pixels", false);
580 580
581 Json::Value v; 581 Json::Value v;
582 f.ToJson(v, DicomToJsonFormat_Short, DicomToJsonFlags_None, 0); 582 f.ToJson(v, DicomToJsonFormat_Short, DicomToJsonFlags_None, 0);
583 ASSERT_EQ(Json::objectValue, v.type()); 583 ASSERT_EQ(Json::objectValue, v.type());
618 m.SetValue(DICOM_TAG_PATIENT_ID, "hello"); 618 m.SetValue(DICOM_TAG_PATIENT_ID, "hello");
619 a.Add(m); 619 a.Add(m);
620 } 620 }
621 621
622 { 622 {
623 ParsedDicomFile d; 623 ParsedDicomFile d(true);
624 d.Replace(DICOM_TAG_PATIENT_ID, "my"); 624 d.Replace(DICOM_TAG_PATIENT_ID, "my");
625 a.Add(d); 625 a.Add(d);
626 } 626 }
627 627
628 { 628 {