Mercurial > hg > orthanc
comparison UnitTestsSources/FromDcmtkTests.cpp @ 1739:df331354cea2
include binary in ToJson
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 22 Oct 2015 19:00:32 +0200 |
parents | b953c6eef28d |
children | 1b1d5470233f |
comparison
equal
deleted
inserted
replaced
1738:15a788a63846 | 1739:df331354cea2 |
---|---|
519 ASSERT_EQ(v["PatientName"].asString(), std::string(testEncodingsExpected[i])); | 519 ASSERT_EQ(v["PatientName"].asString(), std::string(testEncodingsExpected[i])); |
520 } | 520 } |
521 } | 521 } |
522 } | 522 } |
523 | 523 |
524 TEST(ParsedDicomFile, ToJsonFlags) | 524 |
525 TEST(ParsedDicomFile, ToJsonFlags1) | |
525 { | 526 { |
526 FromDcmtkBridge::RegisterDictionaryTag(DicomTag(0x7053, 0x1000), EVR_PN, "MyPrivateTag", 1, 1); | 527 FromDcmtkBridge::RegisterDictionaryTag(DicomTag(0x7053, 0x1000), EVR_PN, "MyPrivateTag", 1, 1); |
527 FromDcmtkBridge::RegisterDictionaryTag(DicomTag(0x7050, 0x1000), EVR_PN, "Declared public tag", 1, 1); | 528 FromDcmtkBridge::RegisterDictionaryTag(DicomTag(0x7050, 0x1000), EVR_PN, "Declared public tag", 1, 1); |
528 | 529 |
529 { | 530 ParsedDicomFile f; |
530 ParsedDicomFile f; | 531 f.Insert(DicomTag(0x7050, 0x1000), "Some public tag", false); // Even group => public tag |
531 f.Insert(DicomTag(0x7050, 0x1000), "Some public tag", false); // Even group => public tag | 532 f.Insert(DicomTag(0x7052, 0x1000), "Some unknown tag", false); // Even group => public, unknown tag |
532 f.Insert(DicomTag(0x7052, 0x1000), "Some unknown tag", false); // Even group => public, unknown tag | 533 f.Insert(DicomTag(0x7053, 0x1000), "Some private tag", false); // Odd group => private tag |
533 f.Insert(DicomTag(0x7053, 0x1000), "Some private tag", false); // Odd group => private tag | 534 |
534 | 535 Json::Value v; |
535 Json::Value v; | 536 f.ToJson(v, DicomToJsonFormat_Short, DicomToJsonFlags_None, 0); |
536 f.ToJson(v, DicomToJsonFormat_Short, DicomToJsonFlags_None, 0); | 537 ASSERT_EQ(Json::objectValue, v.type()); |
537 ASSERT_EQ(Json::objectValue, v.type()); | 538 ASSERT_EQ(6, v.getMemberNames().size()); |
538 ASSERT_EQ(6, v.getMemberNames().size()); | 539 ASSERT_FALSE(v.isMember("7052,1000")); |
539 ASSERT_FALSE(v.isMember("7052,1000")); | 540 ASSERT_FALSE(v.isMember("7053,1000")); |
540 ASSERT_FALSE(v.isMember("7053,1000")); | 541 ASSERT_TRUE(v.isMember("7050,1000")); |
541 ASSERT_TRUE(v.isMember("7050,1000")); | 542 ASSERT_EQ(Json::stringValue, v["7050,1000"].type()); |
542 ASSERT_EQ(Json::stringValue, v["7050,1000"].type()); | 543 ASSERT_EQ("Some public tag", v["7050,1000"].asString()); |
543 ASSERT_EQ("Some public tag", v["7050,1000"].asString()); | 544 |
544 | 545 f.ToJson(v, DicomToJsonFormat_Short, DicomToJsonFlags_IncludePrivateTags, 0); |
545 f.ToJson(v, DicomToJsonFormat_Short, DicomToJsonFlags_IncludePrivateTags, 0); | 546 ASSERT_EQ(Json::objectValue, v.type()); |
546 ASSERT_EQ(Json::objectValue, v.type()); | 547 ASSERT_EQ(7, v.getMemberNames().size()); |
547 ASSERT_EQ(7, v.getMemberNames().size()); | 548 ASSERT_FALSE(v.isMember("7052,1000")); |
548 ASSERT_FALSE(v.isMember("7052,1000")); | 549 ASSERT_TRUE(v.isMember("7050,1000")); |
549 ASSERT_TRUE(v.isMember("7050,1000")); | 550 ASSERT_TRUE(v.isMember("7053,1000")); |
550 ASSERT_TRUE(v.isMember("7053,1000")); | 551 ASSERT_EQ("Some public tag", v["7050,1000"].asString()); |
551 ASSERT_EQ("Some public tag", v["7050,1000"].asString()); | 552 ASSERT_EQ(Json::nullValue, v["7053,1000"].type()); // TODO SHOULD BE STRING |
552 ASSERT_EQ(Json::nullValue, v["7053,1000"].type()); // TODO SHOULD BE STRING | 553 |
553 | 554 f.ToJson(v, DicomToJsonFormat_Short, DicomToJsonFlags_IncludeUnknownTags, 0); |
554 f.ToJson(v, DicomToJsonFormat_Short, DicomToJsonFlags_IncludeUnknownTags, 0); | 555 ASSERT_EQ(Json::objectValue, v.type()); |
555 ASSERT_EQ(Json::objectValue, v.type()); | 556 ASSERT_EQ(7, v.getMemberNames().size()); |
556 ASSERT_EQ(7, v.getMemberNames().size()); | 557 ASSERT_TRUE(v.isMember("7050,1000")); |
557 ASSERT_TRUE(v.isMember("7050,1000")); | 558 ASSERT_TRUE(v.isMember("7052,1000")); |
558 ASSERT_TRUE(v.isMember("7052,1000")); | 559 ASSERT_FALSE(v.isMember("7053,1000")); |
559 ASSERT_FALSE(v.isMember("7053,1000")); | 560 ASSERT_EQ("Some public tag", v["7050,1000"].asString()); |
560 ASSERT_EQ("Some public tag", v["7050,1000"].asString()); | 561 ASSERT_EQ(Json::nullValue, v["7052,1000"].type()); // TODO SHOULD BE STRING |
561 ASSERT_EQ(Json::nullValue, v["7052,1000"].type()); // TODO SHOULD BE STRING | 562 |
562 | 563 f.ToJson(v, DicomToJsonFormat_Short, static_cast<DicomToJsonFlags>(DicomToJsonFlags_IncludeUnknownTags | DicomToJsonFlags_IncludePrivateTags), 0); |
563 f.ToJson(v, DicomToJsonFormat_Short, static_cast<DicomToJsonFlags>(DicomToJsonFlags_IncludeUnknownTags | DicomToJsonFlags_IncludePrivateTags), 0); | 564 ASSERT_EQ(Json::objectValue, v.type()); |
564 ASSERT_EQ(Json::objectValue, v.type()); | 565 ASSERT_EQ(8, v.getMemberNames().size()); |
565 ASSERT_EQ(8, v.getMemberNames().size()); | 566 ASSERT_TRUE(v.isMember("7050,1000")); |
566 ASSERT_TRUE(v.isMember("7050,1000")); | 567 ASSERT_TRUE(v.isMember("7052,1000")); |
567 ASSERT_TRUE(v.isMember("7052,1000")); | 568 ASSERT_TRUE(v.isMember("7053,1000")); |
568 ASSERT_TRUE(v.isMember("7053,1000")); | 569 ASSERT_EQ("Some public tag", v["7050,1000"].asString()); |
569 ASSERT_EQ("Some public tag", v["7050,1000"].asString()); | 570 ASSERT_EQ(Json::nullValue, v["7052,1000"].type()); // TODO SHOULD BE STRING |
570 ASSERT_EQ(Json::nullValue, v["7052,1000"].type()); // TODO SHOULD BE STRING | 571 ASSERT_EQ(Json::nullValue, v["7053,1000"].type()); // TODO SHOULD BE STRING |
571 ASSERT_EQ(Json::nullValue, v["7053,1000"].type()); // TODO SHOULD BE STRING | 572 } |
572 } | 573 |
573 } | 574 |
575 TEST(ParsedDicomFile, ToJsonFlags2) | |
576 { | |
577 ParsedDicomFile f; | |
578 f.Insert(DICOM_TAG_PIXEL_DATA, "Pixels", false); | |
579 | |
580 Json::Value v; | |
581 f.ToJson(v, DicomToJsonFormat_Short, DicomToJsonFlags_None, 0); | |
582 ASSERT_EQ(Json::objectValue, v.type()); | |
583 ASSERT_EQ(5, v.getMemberNames().size()); | |
584 ASSERT_FALSE(v.isMember("7fe0,0010")); | |
585 | |
586 f.ToJson(v, DicomToJsonFormat_Short, static_cast<DicomToJsonFlags>(DicomToJsonFlags_IncludePixelData | DicomToJsonFlags_ConvertBinaryToNull), 0); | |
587 ASSERT_EQ(Json::objectValue, v.type()); | |
588 ASSERT_EQ(6, v.getMemberNames().size()); | |
589 ASSERT_TRUE(v.isMember("7fe0,0010")); | |
590 ASSERT_EQ(Json::nullValue, v["7fe0,0010"].type()); | |
591 | |
592 f.ToJson(v, DicomToJsonFormat_Short, static_cast<DicomToJsonFlags>(DicomToJsonFlags_IncludePixelData | DicomToJsonFlags_ConvertBinaryToAscii), 0); | |
593 ASSERT_EQ(Json::objectValue, v.type()); | |
594 ASSERT_EQ(6, v.getMemberNames().size()); | |
595 ASSERT_TRUE(v.isMember("7fe0,0010")); | |
596 ASSERT_EQ(Json::stringValue, v["7fe0,0010"].type()); | |
597 ASSERT_EQ("Pixels", v["7fe0,0010"].asString()); | |
598 | |
599 f.ToJson(v, DicomToJsonFormat_Short, DicomToJsonFlags_IncludePixelData, 0); | |
600 ASSERT_EQ(Json::objectValue, v.type()); | |
601 ASSERT_EQ(6, v.getMemberNames().size()); | |
602 ASSERT_TRUE(v.isMember("7fe0,0010")); | |
603 ASSERT_EQ(Json::stringValue, v["7fe0,0010"].type()); | |
604 std::string mime, content; | |
605 Toolbox::DecodeDataUriScheme(mime, content, v["7fe0,0010"].asString()); | |
606 ASSERT_EQ("application/octet-stream", mime); | |
607 ASSERT_EQ("Pixels", content); | |
608 } |