ctkDICOMDatasetTest1.cpp 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. // Qt includes
  2. #include <QApplication>
  3. #include <QDir>
  4. #include <QTimer>
  5. // ctkDICOMCore includes
  6. #include "ctkDICOMDataset.h"
  7. // STD includes
  8. #include <iostream>
  9. int ctkDICOMDatasetTest1( int argc, char * argv [] )
  10. {
  11. ctkDICOMDataset dataset;
  12. dataset.InitializeFromDataset(0);
  13. dataset.InitializeFromFile(QString());
  14. try
  15. {
  16. dataset.Serialize();
  17. }
  18. catch(...)
  19. {
  20. std::cout << "ctkDICOMDataset::Serialize() throws exceptions" << std::endl;
  21. //return EXIT_FAILURE;
  22. }
  23. try
  24. {
  25. dataset.Deserialize();
  26. }
  27. catch(...)
  28. {
  29. std::cout << "ctkDICOMDataset::Deserialize() throws exceptions"
  30. << std::endl;
  31. //return EXIT_FAILURE;
  32. }
  33. dataset.MarkForInitialization();
  34. try
  35. {
  36. dataset.EnsureDcmDataSetIsInitialized();
  37. }
  38. catch(...)
  39. {
  40. std::cout << "ctkDICOMDataset::EnsureDcmDataSetIsInitialized() throws"
  41. << " exceptions" << std::endl;
  42. //return EXIT_FAILURE;
  43. }
  44. dataset.CopyElement(0, DcmTagKey(), 0);
  45. QString decode = dataset.Decode(DcmTag(),OFString());
  46. if (!decode.isEmpty())
  47. {
  48. std::cerr << "ctkDICOMDataset::Decode() failed: "
  49. << qPrintable(decode) << std::endl;
  50. return EXIT_FAILURE;
  51. }
  52. OFString encode = dataset.Encode(DcmTag(), decode);
  53. DcmElement* element = 0;
  54. OFCondition condition = dataset.findAndGetElement(DcmTag(), element);
  55. if (ctkDICOMDataset::CheckCondition(condition))
  56. {
  57. std::cerr << "ctkDICOMDataset::findAndGetElement() failed" << std::endl;
  58. return EXIT_FAILURE;
  59. }
  60. OFString string;
  61. condition = dataset.findAndGetOFString(DcmTag(), string);
  62. if (ctkDICOMDataset::CheckCondition(condition))
  63. {
  64. std::cerr << "ctkDICOMDataset::findAndGetOFString() failed" << std::endl;
  65. return EXIT_FAILURE;
  66. }
  67. try
  68. {
  69. QString string = dataset.GetAllElementValuesAsString(DcmTag());
  70. QString string2 = dataset.GetElementAsString(DcmTag());
  71. QStringList list = dataset.GetElementAsStringList(DcmTag());
  72. ctkDICOMPersonName name = dataset.GetElementAsPersonName(DcmTag());
  73. ctkDICOMPersonNameList nameList = dataset.GetElementAsPersonNameList(DcmTag());
  74. QDate date = dataset.GetElementAsDate(DcmTag());
  75. QTime time = dataset.GetElementAsTime(DcmTag());
  76. double doubleValue = dataset.GetElementAsDouble(DcmTag());
  77. int integerValue = dataset.GetElementAsInteger(DcmTag());
  78. int shortValue = dataset.GetElementAsSignedShort(DcmTag());
  79. int ushortValue = dataset.GetElementAsUnsignedShort(DcmTag());
  80. QDateTime dateTime = dataset.GetElementAsDateTime(DcmTag());
  81. Q_UNUSED(string);
  82. Q_UNUSED(string2);
  83. Q_UNUSED(list);
  84. Q_UNUSED(name);
  85. Q_UNUSED(nameList);
  86. Q_UNUSED(date);
  87. Q_UNUSED(time);
  88. Q_UNUSED(doubleValue);
  89. Q_UNUSED(integerValue);
  90. Q_UNUSED(shortValue);
  91. Q_UNUSED(ushortValue);
  92. Q_UNUSED(dateTime);
  93. dataset.SetElementAsString( DcmTag(), QString());
  94. dataset.SetElementAsStringList( DcmTag(), QStringList() );
  95. dataset.SetElementAsPersonName( DcmTag(), ctkDICOMPersonName());
  96. dataset.SetElementAsPersonNameList( DcmTag(), ctkDICOMPersonNameList() );
  97. dataset.SetElementAsDate( DcmTag(), QDate() );
  98. dataset.SetElementAsTime( DcmTag(), QTime() );
  99. dataset.SetElementAsDateTime( DcmTag(), QDateTime() );
  100. dataset.SetElementAsInteger( DcmTag(), 0 ); // type IS
  101. dataset.SetElementAsSignedShort( DcmTag(), 0 ); // type SS
  102. dataset.SetElementAsUnsignedShort( DcmTag(), 0 ); // type US
  103. }
  104. catch(...)
  105. {
  106. std::cout << "ctkDICOMDataset::GetElementValueAsXXX() throws exceptions"
  107. << std::endl;
  108. //return EXIT_FAILURE;
  109. }
  110. ctkDICOMDataset::TranslateDefinedTermPatientPosition(QString());
  111. ctkDICOMDataset::TranslateDefinedTermModality(QString());
  112. ctkDICOMDataset::TagKey(DcmTag());
  113. ctkDICOMDataset::TagDescription(DcmTag());
  114. ctkDICOMDataset::TagVR(DcmTag());
  115. return EXIT_SUCCESS;
  116. }