//==================================================================
/// The attribute is hidden (not visible to user)
- const unsigned int AttributeDescriptor::HIDDEN = 1;
- /// The attribute enters in unique identifier constitution (KEY)
- const unsigned int AttributeDescriptor::KEY = 2;
+ const unsigned int AttributeDescriptor::PRIVATE = 1;
+ /// The attribute enters in unique identifier constitution
+ const unsigned int AttributeDescriptor::IDENTIFIER = 2;
const unsigned int AttributeDescriptor::LABEL = 4;
//==================================================================
//==================================================================
void Descriptor::CreateLevel0Descriptor()
{
- GetLevelDescriptorList().push_back(LevelDescriptor("Root"));
+ Add(LevelDescriptor("Root"));
}
//==================================================================
void Descriptor::CreateDefault()
{
// clears the existing one
- GetLevelDescriptorList().clear();
+ Clear();
// Creates the level 0 descriptor
CreateLevel0Descriptor();
// Creates the attribute "Name"
- GetAttributeDescriptorList(0).push_back(AttributeDescriptor("Name"));
+ Add(AttributeDescriptor("Name","Name",
+ AttributeDescriptor::LABEL),0);
// Patient level
- GetLevelDescriptorList().push_back(LevelDescriptor("Patient"));
- GetAttributeDescriptorList(1).push_back(AttributeDescriptor("0010|0010", // Patient name
- AttributeDescriptor::LABEL));
- GetAttributeDescriptorList(1).push_back(AttributeDescriptor("0010|0040")); // Patient sex
- GetAttributeDescriptorList(1).push_back(AttributeDescriptor("0010|0030")); // Patient birthday
- GetAttributeDescriptorList(1).push_back(AttributeDescriptor("0010|0020", // Patient ID
- AttributeDescriptor::KEY));
+ Add(LevelDescriptor("Patient"));
+ Add(AttributeDescriptor(0x0010,0x0010, // Patient name
+ AttributeDescriptor::LABEL),1);
+ Add(AttributeDescriptor(0x0010,0x0040),1); // Patient sex
+ Add(AttributeDescriptor(0x0010,0x0030),1); // Patient birthday
+ Add(AttributeDescriptor(0x0010,0x0020, // Patient ID
+ AttributeDescriptor::IDENTIFIER),1);
// Study-series level
- GetLevelDescriptorList().push_back(LevelDescriptor("Series"));
- GetAttributeDescriptorList(2).push_back(AttributeDescriptor("0008|0060", // Modality
- AttributeDescriptor::LABEL));
- GetAttributeDescriptorList(2).push_back(AttributeDescriptor("0008|1030")); // Study Description
- GetAttributeDescriptorList(2).push_back(AttributeDescriptor("0008|103E")); // Description
- GetAttributeDescriptorList(2).push_back(AttributeDescriptor("0008|0080")); // Institution Name
- GetAttributeDescriptorList(2).push_back(AttributeDescriptor("0008|0081")); // Institution Adress
- GetAttributeDescriptorList(2).push_back(AttributeDescriptor("0008|1010")); // Station Name
- GetAttributeDescriptorList(2).push_back(AttributeDescriptor("0008|1048")); // Physician of Record
- GetAttributeDescriptorList(2).push_back(AttributeDescriptor("0008|1050")); // Performing Physician's Name
- GetAttributeDescriptorList(2).push_back(AttributeDescriptor("0018|1030")); // Protocol Name
-
- GetAttributeDescriptorList(2).push_back(AttributeDescriptor("0020|0010")); // Study ID
- GetAttributeDescriptorList(2).push_back(AttributeDescriptor("0008|0020")); // Study Date
- GetAttributeDescriptorList(2).push_back(AttributeDescriptor("0008|0030")); // Study Time
- GetAttributeDescriptorList(2).push_back(AttributeDescriptor("0008|0050")); // Study Accession Number
- GetAttributeDescriptorList(2).push_back(AttributeDescriptor("0008|0005")); // Specific character set
- GetAttributeDescriptorList(2).push_back(AttributeDescriptor("0008|0021")); // Series Date
- GetAttributeDescriptorList(2).push_back(AttributeDescriptor("0008|0031")); // Series time
-
- GetAttributeDescriptorList(2).push_back(AttributeDescriptor("0020|000D", // Study Instance UID
- AttributeDescriptor::KEY));
- GetAttributeDescriptorList(2).push_back(AttributeDescriptor("0020|000E", // Series Instance UID
- AttributeDescriptor::KEY |
- AttributeDescriptor::LABEL));
+ Add(LevelDescriptor("Series"));
+ Add(AttributeDescriptor(0x0008,0x0060, // Modality
+ AttributeDescriptor::LABEL),2);
+ Add(AttributeDescriptor(0x0008,0x1030),2); // Study Description
+ Add(AttributeDescriptor(0x0008,0x103E),2); // Description
+ Add(AttributeDescriptor(0x0008,0x0080),2); // Institution Name
+ Add(AttributeDescriptor(0x0008,0x0081),2); // Institution Adress
+ Add(AttributeDescriptor(0x0008,0x1010),2); // Station Name
+ Add(AttributeDescriptor(0x0008,0x1048),2); // Physician of Record
+ Add(AttributeDescriptor(0x0008,0x1050),2); // Performing Physician's Name
+ Add(AttributeDescriptor(0x0018,0x1030),2); // Protocol Name
+
+ Add(AttributeDescriptor(0x0020,0x0010),2); // Study ID
+ Add(AttributeDescriptor(0x0008,0x0020),2); // Study Date
+ Add(AttributeDescriptor(0x0008,0x0030),2); // Study Time
+ Add(AttributeDescriptor(0x0008,0x0050),2); // Study Accession Number
+ Add(AttributeDescriptor(0x0008,0x0005),2); // Specific character set
+ Add(AttributeDescriptor(0x0008,0x0021),2); // Series Date
+ Add(AttributeDescriptor(0x0008,0x0031),2); // Series time
+
+ Add(AttributeDescriptor(0x0020,0x000D // Study Instance UID
+ ),2);//AttributeDescriptor::IDENTIFIER),2);
+ Add(AttributeDescriptor(0x0020,0x000E, // Series Instance UID
+ AttributeDescriptor::IDENTIFIER),2);
+ // |
+ // AttributeDescriptor::LABEL),2);
// Image level
- GetLevelDescriptorList().push_back(LevelDescriptor("Image"));
-
- GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0020|0013")); // Image Number
-
- GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0028|0010")); // Rows
- GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0028|0011")); // Columns
- GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0028|0012")); // Planes
- GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0028|0002")); // Sample per pixels
- GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0028|0008")); // Number of Frames
- GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0028|0004")); // Photometric Interpretation
- GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0028|0103")); // Pixel Representation
-
- GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0020|0032")); // Image Position Patient
- GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0020|0037")); // Image Orientation Patient
- GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0020|1041")); // Slice Location
- GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0028|0006")); // Planar Configuration
-
- GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0028|0030")); // Pixel Spacing
- GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0028|0100")); // AlocatedBits
- GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0028|0101")); // StoredBits
-
- GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0008|0008")); // Image Type
- GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0008|0023")); // Content Date
- GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0008|0033")); // Content Time
-
- GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0020|4000")); // Image Comments
-
- GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0004|1500", // File Name
- AttributeDescriptor::LABEL));
- GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0004|1052")); // Rescale Intercept
- GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0004|1053")); // Rescale Slope
+ Add(LevelDescriptor("Image"));
+
+ Add(AttributeDescriptor(0x0020,0x0013),3); // Image Number
+
+ Add(AttributeDescriptor(0x0028,0x0010),3); // Rows
+ Add(AttributeDescriptor(0x0028,0x0011),3); // Columns
+ Add(AttributeDescriptor(0x0028,0x0012),3); // Planes
+ Add(AttributeDescriptor(0x0028,0x0002),3); // Sample per pixels
+ Add(AttributeDescriptor(0x0028,0x0008),3); // Number of Frames
+ Add(AttributeDescriptor(0x0028,0x0004),3); // Photometric Interpretation
+ Add(AttributeDescriptor(0x0028,0x0103),3); // Pixel Representation
+
+ Add(AttributeDescriptor(0x0020,0x0032),3); // Image Position Patient
+ Add(AttributeDescriptor(0x0020,0x0037),3); // Image Orientation Patient
+ Add(AttributeDescriptor(0x0020,0x1041),3); // Slice Location
+ Add(AttributeDescriptor(0x0028,0x0006),3); // Planar Configuration
+
+ Add(AttributeDescriptor(0x0028,0x0030),3); // Pixel Spacing
+ Add(AttributeDescriptor(0x0028,0x0100),3); // AlocatedBits
+ Add(AttributeDescriptor(0x0028,0x0101),3); // StoredBits
+
+ Add(AttributeDescriptor(0x0008,0x0008),3); // Image Type
+ Add(AttributeDescriptor(0x0008,0x0023),3); // Content Date
+ Add(AttributeDescriptor(0x0008,0x0033),3); // Content Time
+
+ Add(AttributeDescriptor(0x0020,0x4000),3); // Image Comments
+
+ Add(AttributeDescriptor(0x0004,0x1500, // File Name
+ AttributeDescriptor::LABEL),3);
+ Add(AttributeDescriptor(0x0028,0x1052),3); // Rescale Intercept
+ Add(AttributeDescriptor(0x0028,0x1053),3); // Rescale Slope
+
+ Add(AttributeDescriptor(0x0050,0x0004),3); // Calibration Image
+
+ Add(AttributeDescriptor(0x0020,0x0052 // Frame Reference UID
+ ),3);
+ Add(AttributeDescriptor(0x0008,0x0016),3); // SOP Class UID
+ Add(AttributeDescriptor("FullFileName", // Full file name
+ "Full file name",
+ AttributeDescriptor::IDENTIFIER),3);
+
+
+ }
+ //==================================================================
- GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0050|0004")); // Calibration Image
+ //==================================================================
+ /// Adds a LevelDescriptor at the end of the list
+ void Descriptor::Add(const LevelDescriptor& d)
+ {
+ mLevelDescriptorList.push_back(d);
+ }
+ //==================================================================
+
+ //==================================================================
+ /// Adds an AttributeDescriptor to level l
+ void Descriptor::Add(const AttributeDescriptor& d, int l)
+ {
+ mLevelDescriptorList[l].Add(d);
+ // TO DO : update DicomTagToName and NameToDicomTag map
+ }
+ //==================================================================
- GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0020|0052", // Frame Reference UID
- AttributeDescriptor::KEY));
- GetAttributeDescriptorList(3).push_back(AttributeDescriptor("0008|0016")); // SOP Class UID
-
-
+ //==================================================================
+ /// Clears the Descriptor
+ void Descriptor::Clear()
+ {
+ mLevelDescriptorList.clear();
}
//==================================================================
a!= l->GetAttributeDescriptorList().end();
++a)
{
- map[a->GetName()]="";
+ map[a->GetKey()]="";
}
}
}