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