comparison UnitTestsSources/FromDcmtkTests.cpp @ 2409:e4045b3c9772

ignore-length argument if retrieving DICOM tags
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 27 Sep 2017 17:36:13 +0200
parents a051aba0037c
children 82d5e305fbd9
comparison
equal deleted inserted replaced
2408:26a0cc24d48d 2409:e4045b3c9772
393 Json::Value a; 393 Json::Value a;
394 a = "Hello"; 394 a = "Hello";
395 element.reset(FromDcmtkBridge::FromJson(DICOM_TAG_PATIENT_NAME, a, false, Encoding_Utf8)); 395 element.reset(FromDcmtkBridge::FromJson(DICOM_TAG_PATIENT_NAME, a, false, Encoding_Utf8));
396 396
397 Json::Value b; 397 Json::Value b;
398 FromDcmtkBridge::ElementToJson(b, *element, DicomToJsonFormat_Short, DicomToJsonFlags_Default, 0, Encoding_Ascii); 398 std::set<DicomTag> ignoreTagLength;
399 ignoreTagLength.insert(DICOM_TAG_PATIENT_ID);
400
401 FromDcmtkBridge::ElementToJson(b, *element, DicomToJsonFormat_Short,
402 DicomToJsonFlags_Default, 0, Encoding_Ascii, ignoreTagLength);
403 ASSERT_TRUE(b.isMember("0010,0010"));
404 ASSERT_EQ("Hello", b["0010,0010"].asString());
405
406 FromDcmtkBridge::ElementToJson(b, *element, DicomToJsonFormat_Short,
407 DicomToJsonFlags_Default, 3, Encoding_Ascii, ignoreTagLength);
408 ASSERT_TRUE(b["0010,0010"].isNull()); // "Hello" has more than 3 characters
409
410 FromDcmtkBridge::ElementToJson(b, *element, DicomToJsonFormat_Full,
411 DicomToJsonFlags_Default, 3, Encoding_Ascii, ignoreTagLength);
412 ASSERT_TRUE(b["0010,0010"].isObject());
413 ASSERT_EQ("PatientName", b["0010,0010"]["Name"].asString());
414 ASSERT_EQ("TooLong", b["0010,0010"]["Type"].asString());
415 ASSERT_TRUE(b["0010,0010"]["Value"].isNull());
416
417 ignoreTagLength.insert(DICOM_TAG_PATIENT_NAME);
418 FromDcmtkBridge::ElementToJson(b, *element, DicomToJsonFormat_Short,
419 DicomToJsonFlags_Default, 3, Encoding_Ascii, ignoreTagLength);
399 ASSERT_EQ("Hello", b["0010,0010"].asString()); 420 ASSERT_EQ("Hello", b["0010,0010"].asString());
400 } 421 }
401 422
402 { 423 {
403 Json::Value a; 424 Json::Value a;
417 Json::Value a; 438 Json::Value a;
418 a = "data:application/octet-stream;base64,SGVsbG8="; // echo -n "Hello" | base64 439 a = "data:application/octet-stream;base64,SGVsbG8="; // echo -n "Hello" | base64
419 element.reset(FromDcmtkBridge::FromJson(DICOM_TAG_PATIENT_NAME, a, true, Encoding_Utf8)); 440 element.reset(FromDcmtkBridge::FromJson(DICOM_TAG_PATIENT_NAME, a, true, Encoding_Utf8));
420 441
421 Json::Value b; 442 Json::Value b;
422 FromDcmtkBridge::ElementToJson(b, *element, DicomToJsonFormat_Short, DicomToJsonFlags_Default, 0, Encoding_Ascii); 443 std::set<DicomTag> ignoreTagLength;
444 FromDcmtkBridge::ElementToJson(b, *element, DicomToJsonFormat_Short,
445 DicomToJsonFlags_Default, 0, Encoding_Ascii, ignoreTagLength);
423 ASSERT_EQ("Hello", b["0010,0010"].asString()); 446 ASSERT_EQ("Hello", b["0010,0010"].asString());
424 } 447 }
425 448
426 { 449 {
427 Json::Value a = Json::arrayValue; 450 Json::Value a = Json::arrayValue;
428 CreateSampleJson(a); 451 CreateSampleJson(a);
429 element.reset(FromDcmtkBridge::FromJson(REFERENCED_STUDY_SEQUENCE, a, true, Encoding_Utf8)); 452 element.reset(FromDcmtkBridge::FromJson(REFERENCED_STUDY_SEQUENCE, a, true, Encoding_Utf8));
430 453
431 { 454 {
432 Json::Value b; 455 Json::Value b;
433 FromDcmtkBridge::ElementToJson(b, *element, DicomToJsonFormat_Short, DicomToJsonFlags_Default, 0, Encoding_Ascii); 456 std::set<DicomTag> ignoreTagLength;
457 FromDcmtkBridge::ElementToJson(b, *element, DicomToJsonFormat_Short,
458 DicomToJsonFlags_Default, 0, Encoding_Ascii, ignoreTagLength);
434 ASSERT_EQ(Json::arrayValue, b["0008,1110"].type()); 459 ASSERT_EQ(Json::arrayValue, b["0008,1110"].type());
435 ASSERT_EQ(2u, b["0008,1110"].size()); 460 ASSERT_EQ(2u, b["0008,1110"].size());
436 461
437 Json::Value::ArrayIndex i = (b["0008,1110"][0]["0010,0010"].asString() == "Hello") ? 0 : 1; 462 Json::Value::ArrayIndex i = (b["0008,1110"][0]["0010,0010"].asString() == "Hello") ? 0 : 1;
438 463
445 ASSERT_EQ(b["0008,1110"][1 - i]["0010,0020"].asString(), "World2"); 470 ASSERT_EQ(b["0008,1110"][1 - i]["0010,0020"].asString(), "World2");
446 } 471 }
447 472
448 { 473 {
449 Json::Value b; 474 Json::Value b;
450 FromDcmtkBridge::ElementToJson(b, *element, DicomToJsonFormat_Full, DicomToJsonFlags_Default, 0, Encoding_Ascii); 475 std::set<DicomTag> ignoreTagLength;
476 FromDcmtkBridge::ElementToJson(b, *element, DicomToJsonFormat_Full,
477 DicomToJsonFlags_Default, 0, Encoding_Ascii, ignoreTagLength);
451 478
452 Json::Value c; 479 Json::Value c;
453 ServerToolbox::SimplifyTags(c, b, DicomToJsonFormat_Human); 480 ServerToolbox::SimplifyTags(c, b, DicomToJsonFormat_Human);
454 481
455 a[1]["PatientName"] = "Hello2"; // To remove the Data URI Scheme encoding 482 a[1]["PatientName"] = "Hello2"; // To remove the Data URI Scheme encoding