Mercurial > hg > orthanc
comparison UnitTestsSources/FromDcmtkTests.cpp @ 1690:ae09132e4237
FromJson
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 07 Oct 2015 17:42:42 +0200 |
parents | 3727a09e7b53 |
children | e447f3cb8b30 |
comparison
equal
deleted
inserted
replaced
1689:26083d84d237 | 1690:ae09132e4237 |
---|---|
41 #include "../Core/Images/PngReader.h" | 41 #include "../Core/Images/PngReader.h" |
42 #include "../Core/Images/PngWriter.h" | 42 #include "../Core/Images/PngWriter.h" |
43 #include "../Core/Uuid.h" | 43 #include "../Core/Uuid.h" |
44 #include "../Resources/EncodingTests.h" | 44 #include "../Resources/EncodingTests.h" |
45 | 45 |
46 #include <dcmtk/dcmdata/dcelem.h> | |
47 | |
46 using namespace Orthanc; | 48 using namespace Orthanc; |
47 | 49 |
48 TEST(DicomFormat, Tag) | 50 TEST(DicomFormat, Tag) |
49 { | 51 { |
50 ASSERT_EQ("PatientName", FromDcmtkBridge::GetName(DicomTag(0x0010, 0x0010))); | 52 ASSERT_EQ("PatientName", FromDcmtkBridge::GetName(DicomTag(0x0010, 0x0010))); |
297 ASSERT_EQ(ValueRepresentation_DateTime, | 299 ASSERT_EQ(ValueRepresentation_DateTime, |
298 FromDcmtkBridge::GetValueRepresentation(DicomTag(0x0008, 0x002a) /* AcquisitionDateTime */)); | 300 FromDcmtkBridge::GetValueRepresentation(DicomTag(0x0008, 0x002a) /* AcquisitionDateTime */)); |
299 ASSERT_EQ(ValueRepresentation_Other, | 301 ASSERT_EQ(ValueRepresentation_Other, |
300 FromDcmtkBridge::GetValueRepresentation(DICOM_TAG_PATIENT_ID)); | 302 FromDcmtkBridge::GetValueRepresentation(DICOM_TAG_PATIENT_ID)); |
301 } | 303 } |
304 | |
305 | |
306 TEST(FromDcmtkBridge, FromJson) | |
307 { | |
308 const DicomTag REFERENCED_STUDY_SEQUENCE(0x0008, 0x1110); | |
309 | |
310 std::auto_ptr<DcmElement> element; | |
311 | |
312 { | |
313 Json::Value a; | |
314 a = "Hello"; | |
315 element.reset(FromDcmtkBridge::FromJson(a, DICOM_TAG_PATIENT_NAME, false)); | |
316 | |
317 Json::Value b; | |
318 FromDcmtkBridge::ToJson(b, *element, DicomToJsonFormat_Short, 0, Encoding_Ascii); | |
319 ASSERT_EQ("Hello", b["0010,0010"].asString()); | |
320 } | |
321 | |
322 { | |
323 Json::Value a; | |
324 a = "Hello"; | |
325 // Cannot assign a string to a sequence | |
326 ASSERT_THROW(element.reset(FromDcmtkBridge::FromJson(a, REFERENCED_STUDY_SEQUENCE, false)), OrthancException); | |
327 } | |
328 | |
329 { | |
330 Json::Value a = Json::arrayValue; | |
331 a.append("Hello"); | |
332 // Cannot assign an array to a string | |
333 ASSERT_THROW(element.reset(FromDcmtkBridge::FromJson(a, DICOM_TAG_PATIENT_NAME, false)), OrthancException); | |
334 } | |
335 | |
336 { | |
337 Json::Value a; | |
338 a = "data:application/octet-stream;base64,SGVsbG8="; // echo -n "Hello" | base64 | |
339 element.reset(FromDcmtkBridge::FromJson(a, DICOM_TAG_PATIENT_NAME, true)); | |
340 | |
341 Json::Value b; | |
342 FromDcmtkBridge::ToJson(b, *element, DicomToJsonFormat_Short, 0, Encoding_Ascii); | |
343 ASSERT_EQ("Hello", b["0010,0010"].asString()); | |
344 } | |
345 | |
346 printf("ici\n"); | |
347 | |
348 { | |
349 Json::Value a = Json::arrayValue; | |
350 | |
351 { | |
352 Json::Value b = Json::objectValue; | |
353 b["PatientName"] = "Hello"; | |
354 b["PatientID"] = "World"; | |
355 a.append(b); | |
356 } | |
357 | |
358 { | |
359 Json::Value b = Json::objectValue; | |
360 b["PatientName"] = "Hello2"; | |
361 b["PatientID"] = "World2"; | |
362 a.append(b); | |
363 } | |
364 | |
365 element.reset(FromDcmtkBridge::FromJson(a, REFERENCED_STUDY_SEQUENCE, false)); | |
366 element->writeXML(std::cout); | |
367 | |
368 { | |
369 Json::Value b; | |
370 FromDcmtkBridge::ToJson(b, *element, DicomToJsonFormat_Full, 0, Encoding_Ascii); | |
371 /*ASSERT_EQ(Json::arrayValue, b["0008,1110"].type()); | |
372 ASSERT_EQ(2, b["0008,1110"].size());*/ | |
373 | |
374 std::cout << b; | |
375 } | |
376 } | |
377 | |
378 | |
379 | |
380 // TODO: Test Simplify | |
381 } |