1 #include <creaImageIOTreeDescriptor.h>
10 //==================================================================
11 /// The attribute is hidden (not visible to user)
12 const unsigned int AttributeDescriptor::HIDDEN = 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"));
51 GetLevelDescriptorList().push_back(LevelDescriptor("Patient"));
52 GetAttributeDescriptorList(1).push_back(AttributeDescriptor("0010|0010", // Patient name
53 AttributeDescriptor::LABEL));
54 GetAttributeDescriptorList(1).push_back(AttributeDescriptor("0010|0040")); // Patient sex
55 GetAttributeDescriptorList(1).push_back(AttributeDescriptor("0010|0030")); // Patient birthday
56 GetAttributeDescriptorList(1).push_back(AttributeDescriptor("0010|0020", // Patient ID
57 AttributeDescriptor::KEY));
60 GetLevelDescriptorList().push_back(LevelDescriptor("Series"));
61 GetAttributeDescriptorList(2).push_back(AttributeDescriptor("0008|0060", // Modality
62 AttributeDescriptor::LABEL));
63 GetAttributeDescriptorList(2).push_back(AttributeDescriptor("0008|1030")); // Study Description
64 GetAttributeDescriptorList(2).push_back(AttributeDescriptor("0008|103E")); // Description
65 GetAttributeDescriptorList(2).push_back(AttributeDescriptor("0008|0080")); // Institution Name
66 GetAttributeDescriptorList(2).push_back(AttributeDescriptor("0008|0081")); // Institution Adress
67 GetAttributeDescriptorList(2).push_back(AttributeDescriptor("0008|1010")); // Station Name
68 GetAttributeDescriptorList(2).push_back(AttributeDescriptor("0008|1048")); // Physician of Record
69 GetAttributeDescriptorList(2).push_back(AttributeDescriptor("0008|1050")); // Performing Physician's Name
70 GetAttributeDescriptorList(2).push_back(AttributeDescriptor("0018|1030")); // Protocol Name
72 GetAttributeDescriptorList(2).push_back(AttributeDescriptor("0020|0010")); // Study ID
73 GetAttributeDescriptorList(2).push_back(AttributeDescriptor("0008|0020")); // Study Date
74 GetAttributeDescriptorList(2).push_back(AttributeDescriptor("0008|0030")); // Study Time
75 GetAttributeDescriptorList(2).push_back(AttributeDescriptor("0008|0050")); // Study Accession Number
76 GetAttributeDescriptorList(2).push_back(AttributeDescriptor("0008|0005")); // Specific character set
77 GetAttributeDescriptorList(2).push_back(AttributeDescriptor("0008|0021")); // Series Date
78 GetAttributeDescriptorList(2).push_back(AttributeDescriptor("0008|0031")); // Series time
80 GetAttributeDescriptorList(2).push_back(AttributeDescriptor("0020|000D", // Study Instance UID
81 AttributeDescriptor::KEY));
82 GetAttributeDescriptorList(2).push_back(AttributeDescriptor("0020|000E", // Series Instance UID
83 AttributeDescriptor::KEY |
84 AttributeDescriptor::LABEL));
88 GetLevelDescriptorList().push_back(LevelDescriptor("Image"));
90 GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0020|0013")); // Image Number
92 GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0028|0010")); // Rows
93 GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0028|0011")); // Columns
94 GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0028|0012")); // Planes
95 GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0028|0002")); // Sample per pixels
96 GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0028|0008")); // Number of Frames
97 GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0028|0004")); // Photometric Interpretation
98 GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0028|0103")); // Pixel Representation
100 GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0020|0032")); // Image Position Patient
101 GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0020|0037")); // Image Orientation Patient
102 GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0020|1041")); // Slice Location
103 GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0028|0006")); // Planar Configuration
105 GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0028|0030")); // Pixel Spacing
106 GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0028|0100")); // AlocatedBits
107 GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0028|0101")); // StoredBits
109 GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0008|0008")); // Image Type
110 GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0008|0023")); // Content Date
111 GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0008|0033")); // Content Time
113 GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0020|4000")); // Image Comments
115 GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0004|1500", // File Name
116 AttributeDescriptor::LABEL));
117 GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0004|1052")); // Rescale Intercept
118 GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0004|1053")); // Rescale Slope
120 GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0050|0004")); // Calibration Image
122 GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0020|0052", // Frame Reference UID
123 AttributeDescriptor::KEY));
124 GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0008|0016")); // SOP Class UID
128 //==================================================================
130 //==================================================================
131 /// Builds the key to value map of all the attributes of the tree
132 void Descriptor::BuildAttributeMap( std::map<std::string,std::string>& map ) const
135 LevelDescriptorListType::const_iterator l;
136 for (l = GetLevelDescriptorList().begin();
137 l!= GetLevelDescriptorList().end();
140 LevelDescriptor::AttributeDescriptorListType::const_iterator a;
141 for (a = l->GetAttributeDescriptorList().begin();
142 a!= l->GetAttributeDescriptorList().end();
145 map[a->GetName()]="";
149 //==================================================================