/*========================================================================= Program: GDCM (Grassroots DICOM). A DICOM library Copyright (c) 2006-2011 Mathieu Malaterre All rights reserved. See Copyright.txt or http://gdcm.sourceforge.net/Copyright.html for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notice for more information. =========================================================================*/ #include "gdcmReader.h" #include "gdcmWriter.h" #include "gdcmJSON.h" /* * Simple QIDO-RS round-trip to test implementation of gdcm::JSON * See Sup166 for details */ int main(int argc, char *argv[]) { if( argc < 2 ) return 1; using namespace gdcm; const char *filename = argv[1]; gdcm::Reader reader; reader.SetFileName( filename ); if( !reader.Read() ) return 1; gdcm::JSON json; json.PrettyPrintOn(); std::stringstream ss; const gdcm::File & f = reader.GetFile(); json.Code( f.GetDataSet(), ss); std::cout << ss.str() << std::endl; gdcm::Writer w; gdcm::File & ff = w.GetFile(); ff.GetHeader().SetDataSetTransferSyntax( gdcm::TransferSyntax::ExplicitVRLittleEndian ); if( !json.Decode(ss, ff.GetDataSet() ) ) { std::cerr << "Could not decode" << std::endl; return 1; } w.SetFileName( "/tmp/debug.dcm" ); if( !w.Write() ) return 1; return 0; }