Mercurial > hg > orthanc
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 { |