1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
/*=========================================================================
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 "gdcmImplicitDataElement.h"
#include "gdcmDataSet.h"
#include "gdcmPrivateTag.h"
#include "gdcmPrivateTag.h"
#include "gdcmByteValue.h"
#include "gdcmSequenceOfItems.h"
using namespace gdcm;
int main(int argc, char *argv[])
{
if ( argc < 2 ) return 1;
const char *filename = argv[1];
gdcm::Reader r;
r.SetFileName( filename );
r.Read();
//gdcm::PrivateTag pt(0xe1,0x42,"ELSCINT1");
//gdcm::Tag pt(0x88,0x200);
gdcm::Tag pt(0x8,0x1140);
DataSet &ds = r.GetFile().GetDataSet();
const DataElement &de = ds.GetDataElement( pt );
std::cout << de << std::endl;
const ByteValue *bv = de.GetByteValue();
SmartPointer<SequenceOfItems> sqi = new SequenceOfItems;
sqi->SetLength( bv->GetLength() );
std::stringstream ss;
ss.str( std::string( bv->GetPointer(), bv->GetLength() ) );
sqi->Read<ImplicitDataElement,SwapperNoOp>( ss );
std::cout << *sqi << std::endl;
return 0;
}
|