ctkDICOMDatasetTest1.cpp 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  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. condition = dataset.findAndGetOFString(DcmTag(), OFString());
  61. if (ctkDICOMDataset::CheckCondition(condition))
  62. {
  63. std::cerr << "ctkDICOMDataset::findAndGetOFString() failed" << std::endl;
  64. return EXIT_FAILURE;
  65. }
  66. try
  67. {
  68. QString string = dataset.GetAllElementValuesAsString(DcmTag());
  69. QString string2 = dataset.GetElementAsString(DcmTag());
  70. QStringList list = dataset.GetElementAsStringList(DcmTag());
  71. ctkDICOMPersonName name = dataset.GetElementAsPersonName(DcmTag());
  72. ctkDICOMPersonNameList nameList = dataset.GetElementAsPersonNameList(DcmTag());
  73. QDate date = dataset.GetElementAsDate(DcmTag());
  74. QTime time = dataset.GetElementAsTime(DcmTag());
  75. double doubleValue = dataset.GetElementAsDouble(DcmTag());
  76. int integerValue = dataset.GetElementAsInteger(DcmTag());
  77. int shortValue = dataset.GetElementAsSignedShort(DcmTag());
  78. int ushortValue = dataset.GetElementAsUnsignedShort(DcmTag());
  79. QDateTime dateTime = dataset.GetElementAsDateTime(DcmTag());
  80. dataset.SetElementAsString( DcmTag(), QString());
  81. dataset.SetElementAsStringList( DcmTag(), QStringList() );
  82. dataset.SetElementAsPersonName( DcmTag(), ctkDICOMPersonName());
  83. dataset.SetElementAsPersonNameList( DcmTag(), ctkDICOMPersonNameList() );
  84. dataset.SetElementAsDate( DcmTag(), QDate() );
  85. dataset.SetElementAsTime( DcmTag(), QTime() );
  86. dataset.SetElementAsDateTime( DcmTag(), QDateTime() );
  87. dataset.SetElementAsInteger( DcmTag(), 0 ); // type IS
  88. dataset.SetElementAsSignedShort( DcmTag(), 0 ); // type SS
  89. dataset.SetElementAsUnsignedShort( DcmTag(), 0 ); // type US
  90. }
  91. catch(...)
  92. {
  93. std::cout << "ctkDICOMDataset::GetElementValueAsXXX() throws exceptions"
  94. << std::endl;
  95. //return EXIT_FAILURE;
  96. }
  97. ctkDICOMDataset::TranslateDefinedTermPatientPosition(QString());
  98. ctkDICOMDataset::TranslateDefinedTermModality(QString());
  99. ctkDICOMDataset::TagKey(DcmTag());
  100. ctkDICOMDataset::TagDescription(DcmTag());
  101. ctkDICOMDataset::TagVR(DcmTag());
  102. return EXIT_SUCCESS;
  103. }