1 #include <creaImageIOTreeDescriptor.h>
10 //==================================================================
11 /// The attribute is hidden (not visible to user)
12 const unsigned int AttributeDescriptor::PRIVATE = 1;
13 /// The attribute enters in unique identifier constitution
14 const unsigned int AttributeDescriptor::IDENTIFIER = 2;
15 const unsigned int AttributeDescriptor::LABEL = 4;
16 //==================================================================
18 //==================================================================
19 Descriptor::Descriptor()
21 CreateLevel0Descriptor();
23 //==================================================================
25 //==================================================================
26 Descriptor::~Descriptor()
29 //==================================================================
31 //==================================================================
32 void Descriptor::CreateLevel0Descriptor()
34 GetLevelDescriptorList().push_back(LevelDescriptor("Root"));
36 //==================================================================
38 //==================================================================
39 /// Creates the default descriptor
40 void Descriptor::CreateDefault()
42 // clears the existing one
43 GetLevelDescriptorList().clear();
45 // Creates the level 0 descriptor
46 CreateLevel0Descriptor();
47 // Creates the attribute "Name"
48 GetLevelDescriptor(0).Add(AttributeDescriptor("Name","Name",
49 AttributeDescriptor::LABEL));
52 GetLevelDescriptorList().push_back(LevelDescriptor("Patient"));
53 GetLevelDescriptor(1).Add(AttributeDescriptor(0x0010,0x0010, // Patient name
54 AttributeDescriptor::LABEL));
55 GetLevelDescriptor(1).Add(AttributeDescriptor(0x0010,0x0040)); // Patient sex
56 GetLevelDescriptor(1).Add(AttributeDescriptor(0x0010,0x0030)); // Patient birthday
57 GetLevelDescriptor(1).Add(AttributeDescriptor(0x0010,0x0020, // Patient ID
58 AttributeDescriptor::IDENTIFIER));
61 GetLevelDescriptorList().push_back(LevelDescriptor("Series"));
62 GetLevelDescriptor(2).Add(AttributeDescriptor(0x0008,0x0060, // Modality
63 AttributeDescriptor::LABEL));
64 GetLevelDescriptor(2).Add(AttributeDescriptor(0x0008,0x1030)); // Study Description
65 GetLevelDescriptor(2).Add(AttributeDescriptor(0x0008,0x103E)); // Description
66 GetLevelDescriptor(2).Add(AttributeDescriptor(0x0008,0x0080)); // Institution Name
67 GetLevelDescriptor(2).Add(AttributeDescriptor(0x0008,0x0081)); // Institution Adress
68 GetLevelDescriptor(2).Add(AttributeDescriptor(0x0008,0x1010)); // Station Name
69 GetLevelDescriptor(2).Add(AttributeDescriptor(0x0008,0x1048)); // Physician of Record
70 GetLevelDescriptor(2).Add(AttributeDescriptor(0x0008,0x1050)); // Performing Physician's Name
71 GetLevelDescriptor(2).Add(AttributeDescriptor(0x0018,0x1030)); // Protocol Name
73 GetLevelDescriptor(2).Add(AttributeDescriptor(0x0020,0x0010)); // Study ID
74 GetLevelDescriptor(2).Add(AttributeDescriptor(0x0008,0x0020)); // Study Date
75 GetLevelDescriptor(2).Add(AttributeDescriptor(0x0008,0x0030)); // Study Time
76 GetLevelDescriptor(2).Add(AttributeDescriptor(0x0008,0x0050)); // Study Accession Number
77 GetLevelDescriptor(2).Add(AttributeDescriptor(0x0008,0x0005)); // Specific character set
78 GetLevelDescriptor(2).Add(AttributeDescriptor(0x0008,0x0021)); // Series Date
79 GetLevelDescriptor(2).Add(AttributeDescriptor(0x0008,0x0031)); // Series time
81 GetLevelDescriptor(2).Add(AttributeDescriptor(0x0020,0x000D // Study Instance UID
82 ));//AttributeDescriptor::IDENTIFIER));
83 GetLevelDescriptor(2).Add(AttributeDescriptor(0x0020,0x000E, // Series Instance UID
84 AttributeDescriptor::IDENTIFIER));
86 // AttributeDescriptor::LABEL));
90 GetLevelDescriptorList().push_back(LevelDescriptor("Image"));
92 GetLevelDescriptor(3).Add(AttributeDescriptor(0x0020,0x0013)); // Image Number
94 GetLevelDescriptor(3).Add(AttributeDescriptor(0x0028,0x0010)); // Rows
95 GetLevelDescriptor(3).Add(AttributeDescriptor(0x0028,0x0011)); // Columns
96 GetLevelDescriptor(3).Add(AttributeDescriptor(0x0028,0x0012)); // Planes
97 GetLevelDescriptor(3).Add(AttributeDescriptor(0x0028,0x0002)); // Sample per pixels
98 GetLevelDescriptor(3).Add(AttributeDescriptor(0x0028,0x0008)); // Number of Frames
99 GetLevelDescriptor(3).Add(AttributeDescriptor(0x0028,0x0004)); // Photometric Interpretation
100 GetLevelDescriptor(3).Add(AttributeDescriptor(0x0028,0x0103)); // Pixel Representation
102 GetLevelDescriptor(3).Add(AttributeDescriptor(0x0020,0x0032)); // Image Position Patient
103 GetLevelDescriptor(3).Add(AttributeDescriptor(0x0020,0x0037)); // Image Orientation Patient
104 GetLevelDescriptor(3).Add(AttributeDescriptor(0x0020,0x1041)); // Slice Location
105 GetLevelDescriptor(3).Add(AttributeDescriptor(0x0028,0x0006)); // Planar Configuration
107 GetLevelDescriptor(3).Add(AttributeDescriptor(0x0028,0x0030)); // Pixel Spacing
108 GetLevelDescriptor(3).Add(AttributeDescriptor(0x0028,0x0100)); // AlocatedBits
109 GetLevelDescriptor(3).Add(AttributeDescriptor(0x0028,0x0101)); // StoredBits
111 GetLevelDescriptor(3).Add(AttributeDescriptor(0x0008,0x0008)); // Image Type
112 GetLevelDescriptor(3).Add(AttributeDescriptor(0x0008,0x0023)); // Content Date
113 GetLevelDescriptor(3).Add(AttributeDescriptor(0x0008,0x0033)); // Content Time
115 GetLevelDescriptor(3).Add(AttributeDescriptor(0x0020,0x4000)); // Image Comments
117 GetLevelDescriptor(3).Add(AttributeDescriptor(0x0004,0x1500, // File Name
118 AttributeDescriptor::LABEL));
119 GetLevelDescriptor(3).Add(AttributeDescriptor(0x0028,0x1052)); // Rescale Intercept
120 GetLevelDescriptor(3).Add(AttributeDescriptor(0x0028,0x1053)); // Rescale Slope
122 GetLevelDescriptor(3).Add(AttributeDescriptor(0x0050,0x0004)); // Calibration Image
124 GetLevelDescriptor(3).Add(AttributeDescriptor(0x0020,0x0052 // Frame Reference UID
126 GetLevelDescriptor(3).Add(AttributeDescriptor(0x0008,0x0016)); // SOP Class UID
127 GetLevelDescriptor(3).Add(AttributeDescriptor("FullFileName", // Full file name
129 AttributeDescriptor::IDENTIFIER));
133 //==================================================================
135 //==================================================================
136 /// Builds the key to value map of all the attributes of the tree
137 void Descriptor::BuildAttributeMap( std::map<std::string,std::string>& map ) const
140 LevelDescriptorListType::const_iterator l;
141 for (l = GetLevelDescriptorList().begin();
142 l!= GetLevelDescriptorList().end();
145 LevelDescriptor::AttributeDescriptorListType::const_iterator a;
146 for (a = l->GetAttributeDescriptorList().begin();
147 a!= l->GetAttributeDescriptorList().end();
154 //==================================================================