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 (KEY)
14 const unsigned int AttributeDescriptor::KEY = 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 GetAttributeDescriptorList(0).push_back(AttributeDescriptor("Name","Name"));
51 GetLevelDescriptorList().push_back(LevelDescriptor("Patient"));
52 GetAttributeDescriptorList(1).push_back(AttributeDescriptor(0x0010,0x0010, // Patient name
53 AttributeDescriptor::LABEL));
54 GetAttributeDescriptorList(1).push_back(AttributeDescriptor(0x0010,0x0040)); // Patient sex
55 GetAttributeDescriptorList(1).push_back(AttributeDescriptor(0x0010,0x0030)); // Patient birthday
56 GetAttributeDescriptorList(1).push_back(AttributeDescriptor(0x0010,0x0020, // Patient ID
57 AttributeDescriptor::KEY));
60 GetLevelDescriptorList().push_back(LevelDescriptor("Series"));
61 GetAttributeDescriptorList(2).push_back(AttributeDescriptor(0x0008,0x0060, // Modality
62 AttributeDescriptor::LABEL));
63 GetAttributeDescriptorList(2).push_back(AttributeDescriptor(0x0008,0x1030)); // Study Description
64 GetAttributeDescriptorList(2).push_back(AttributeDescriptor(0x0008,0x103E)); // Description
65 GetAttributeDescriptorList(2).push_back(AttributeDescriptor(0x0008,0x0080)); // Institution Name
66 GetAttributeDescriptorList(2).push_back(AttributeDescriptor(0x0008,0x0081)); // Institution Adress
67 GetAttributeDescriptorList(2).push_back(AttributeDescriptor(0x0008,0x1010)); // Station Name
68 GetAttributeDescriptorList(2).push_back(AttributeDescriptor(0x0008,0x1048)); // Physician of Record
69 GetAttributeDescriptorList(2).push_back(AttributeDescriptor(0x0008,0x1050)); // Performing Physician's Name
70 GetAttributeDescriptorList(2).push_back(AttributeDescriptor(0x0018,0x1030)); // Protocol Name
72 GetAttributeDescriptorList(2).push_back(AttributeDescriptor(0x0020,0x0010)); // Study ID
73 GetAttributeDescriptorList(2).push_back(AttributeDescriptor(0x0008,0x0020)); // Study Date
74 GetAttributeDescriptorList(2).push_back(AttributeDescriptor(0x0008,0x0030)); // Study Time
75 GetAttributeDescriptorList(2).push_back(AttributeDescriptor(0x0008,0x0050)); // Study Accession Number
76 GetAttributeDescriptorList(2).push_back(AttributeDescriptor(0x0008,0x0005)); // Specific character set
77 GetAttributeDescriptorList(2).push_back(AttributeDescriptor(0x0008,0x0021)); // Series Date
78 GetAttributeDescriptorList(2).push_back(AttributeDescriptor(0x0008,0x0031)); // Series time
80 GetAttributeDescriptorList(2).push_back(AttributeDescriptor(0x0020,0x000D, // Study Instance UID
81 AttributeDescriptor::KEY));
82 GetAttributeDescriptorList(2).push_back(AttributeDescriptor(0x0020,0x000E, // Series Instance UID
83 AttributeDescriptor::KEY |
84 AttributeDescriptor::LABEL));
88 GetLevelDescriptorList().push_back(LevelDescriptor("Image"));
90 GetAttributeDescriptorList(3).push_back(AttributeDescriptor(0x0020,0x0013)); // Image Number
92 GetAttributeDescriptorList(3).push_back(AttributeDescriptor(0x0028,0x0010)); // Rows
93 GetAttributeDescriptorList(3).push_back(AttributeDescriptor(0x0028,0x0011)); // Columns
94 GetAttributeDescriptorList(3).push_back(AttributeDescriptor(0x0028,0x0012)); // Planes
95 GetAttributeDescriptorList(3).push_back(AttributeDescriptor(0x0028,0x0002)); // Sample per pixels
96 GetAttributeDescriptorList(3).push_back(AttributeDescriptor(0x0028,0x0008)); // Number of Frames
97 GetAttributeDescriptorList(3).push_back(AttributeDescriptor(0x0028,0x0004)); // Photometric Interpretation
98 GetAttributeDescriptorList(3).push_back(AttributeDescriptor(0x0028,0x0103)); // Pixel Representation
100 GetAttributeDescriptorList(3).push_back(AttributeDescriptor(0x0020,0x0032)); // Image Position Patient
101 GetAttributeDescriptorList(3).push_back(AttributeDescriptor(0x0020,0x0037)); // Image Orientation Patient
102 GetAttributeDescriptorList(3).push_back(AttributeDescriptor(0x0020,0x1041)); // Slice Location
103 GetAttributeDescriptorList(3).push_back(AttributeDescriptor(0x0028,0x0006)); // Planar Configuration
105 GetAttributeDescriptorList(3).push_back(AttributeDescriptor(0x0028,0x0030)); // Pixel Spacing
106 GetAttributeDescriptorList(3).push_back(AttributeDescriptor(0x0028,0x0100)); // AlocatedBits
107 GetAttributeDescriptorList(3).push_back(AttributeDescriptor(0x0028,0x0101)); // StoredBits
109 GetAttributeDescriptorList(3).push_back(AttributeDescriptor(0x0008,0x0008)); // Image Type
110 GetAttributeDescriptorList(3).push_back(AttributeDescriptor(0x0008,0x0023)); // Content Date
111 GetAttributeDescriptorList(3).push_back(AttributeDescriptor(0x0008,0x0033)); // Content Time
113 GetAttributeDescriptorList(3).push_back(AttributeDescriptor(0x0020,0x4000)); // Image Comments
115 GetAttributeDescriptorList(3).push_back(AttributeDescriptor(0x0004,0x1500, // File Name
116 AttributeDescriptor::LABEL));
117 GetAttributeDescriptorList(3).push_back(AttributeDescriptor(0x0028,0x1052)); // Rescale Intercept
118 GetAttributeDescriptorList(3).push_back(AttributeDescriptor(0x0028,0x1053)); // Rescale Slope
120 GetAttributeDescriptorList(3).push_back(AttributeDescriptor(0x0050,0x0004)); // Calibration Image
122 GetAttributeDescriptorList(3).push_back(AttributeDescriptor(0x0020,0x0052, // Frame Reference UID
123 AttributeDescriptor::KEY));
124 GetAttributeDescriptorList(3).push_back(AttributeDescriptor(0x0008,0x0016)); // SOP Class UID
125 GetAttributeDescriptorList(3).push_back(AttributeDescriptor("FullFileName", // Full file name
130 //==================================================================
132 //==================================================================
133 /// Builds the key to value map of all the attributes of the tree
134 void Descriptor::BuildAttributeMap( std::map<std::string,std::string>& map ) const
137 LevelDescriptorListType::const_iterator l;
138 for (l = GetLevelDescriptorList().begin();
139 l!= GetLevelDescriptorList().end();
142 LevelDescriptor::AttributeDescriptorListType::const_iterator a;
143 for (a = l->GetAttributeDescriptorList().begin();
144 a!= l->GetAttributeDescriptorList().end();
147 map[a->GetName()]="";
151 //==================================================================