2 //-----------------------------------------------------------------------------
4 #include "gdcmHeaderEntry.h"
8 #ifdef GDCM_NO_ANSI_STRING_STREAM
10 # define ostringstream ostrstream
14 #include <iomanip> // for std::ios::left, ...
16 //-----------------------------------------------------------------------------
17 // Constructor / Destructor
19 * \ingroup gdcmHeaderEntry
20 * \brief Constructor from a given gdcmDictEntry
21 * @param in Pointer to existing dictionary entry
23 gdcmHeaderEntry::gdcmHeaderEntry(gdcmDictEntry* in) {
28 //-----------------------------------------------------------------------------
31 void gdcmHeaderEntry::Print(std::ostream & os) {
33 unsigned short int g, e;
37 gdcmTS * ts = gdcmGlobal::GetTS();
40 char greltag[10]; //group element tag
46 sprintf(greltag,"%04x|%04x ",g,e);
47 d2 = _CreateCleanString(v); // replace non printable characters by '.'
52 lgth = GetReadLength();
53 if (lgth == 0xffffffff) {
55 s.setf(std::ios::left);
56 s << std::setw(10-strlen(st)) << " ";
58 s.setf(std::ios::left);
59 s << std::setw(8) << "-1";
61 sprintf(st,"x(%x)",lgth);
62 s.setf(std::ios::left);
63 s << std::setw(10-strlen(st)) << " ";
65 s.setf(std::ios::left);
66 s << std::setw(8) << lgth;
69 sprintf(st,"x(%x)",o);
70 s << std::setw(10-strlen(st)) << " ";
72 s << std::setw(8) << o;
75 s << "[" << GetVR() << "] ";
76 s.setf(std::ios::left);
77 s << std::setw(66-GetName().length()) << " ";
80 s << "[" << GetName()<< "]";
81 s << " [" << d2 << "]";
82 // Display the UID value (instead of displaying the rough code)
83 if (g == 0x0002) { // Any more to be displayed ?
84 if ( (e == 0x0010) || (e == 0x0002) )
85 s << " ==>\t[" << ts->GetValue(v) << "]";
88 if ( (e == 0x0016) || (e == 0x1150) )
89 s << " ==>\t[" << ts->GetValue(v) << "]";
92 if (e == 0x0000) { // elem 0x0000 --> group length
93 if (v == "4294967295") // to avoid troubles in convertion
94 sprintf (st," x(ffffffff)");
96 sprintf(st," x(%08x)",atoi(v.c_str()));
103 //-----------------------------------------------------------------------------
106 //-----------------------------------------------------------------------------
109 //-----------------------------------------------------------------------------
112 //-----------------------------------------------------------------------------