- DD(ImageData.size());*/
-
- // Read Dicom model file
- typename ReaderSeriesType::Pointer readerSeries = ReaderSeriesType::New();
- ImageIOType::Pointer gdcmIO = ImageIOType::New();
- std::string filename_out = m_ArgsInfo.output_arg;
- gdcmIO->LoadPrivateTagsOn();
- gdcmIO->KeepOriginalUIDOn();
- typename ReaderSeriesType::FileNamesContainer fileNames;
- fileNames.push_back(m_ArgsInfo.DicomInputFile_arg);
- readerSeries->SetImageIO( gdcmIO );
- readerSeries->SetFileNames( fileNames );
- try {
- readerSeries->Update();
- } catch (itk::ExceptionObject &excp) {
- std::cerr << "Error: Exception thrown while reading the DICOM model file !!" << std::endl;
- std::cerr << excp << std::endl;
- }
-
- // update output dicom keys/tags
- // string for distinguishing items inside sequence:
- const std::string ITEM_ENCAPSULATE_STRING("DICOM_ITEM_ENCAPSULATE");
- std::string tempString = ITEM_ENCAPSULATE_STRING + "01";
- typename ReaderSeriesType::DictionaryRawPointer inputDict = (*(readerSeries->GetMetaDataDictionaryArray()))[0];
- typename ReaderSeriesType::DictionaryArrayType outputArray;
- typename ReaderSeriesType::DictionaryRawPointer outputDict = new typename ReaderSeriesType::DictionaryType;
- CopyDictionary (*inputDict, *outputDict);
- itk::EncapsulateMetaData<std::string>(*outputDict, "0020|0032", NumberToString(origin));
- itk::EncapsulateMetaData<std::string>(*outputDict, "0028|0008", NumberToString(NbFrames));
- itk::EncapsulateMetaData<std::string>(*outputDict, "0028|0010", NumberToString(NbRows));
- itk::EncapsulateMetaData<std::string>(*outputDict, "0028|0011", NumberToString(NbCols));
- itk::EncapsulateMetaData<std::string>(*outputDict, "0028|0030", NumberToString(Spacing));
- itk::EncapsulateMetaData<std::string>(*outputDict, "3004|000e", NumberToString(doseScaling));
- itk::EncapsulateMetaData<std::string>(*outputDict, "3004|000c", strOffset.str());
- outputArray.push_back(outputDict);