X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src2%2FcreaImageIOTreeDescriptor.cpp;h=5b2a447d78cc6a2b26f9b6948a7fb75b6f6643b6;hb=57608b6038aaf31b21948e6244aeb814f0bb7cbd;hp=fc4166f7d0b327046fa1ff8dfd2295e92b968c94;hpb=cbf693fa62cd51f4ca5c881838bbb609edc447b0;p=creaImageIO.git diff --git a/src2/creaImageIOTreeDescriptor.cpp b/src2/creaImageIOTreeDescriptor.cpp index fc4166f..5b2a447 100644 --- a/src2/creaImageIOTreeDescriptor.cpp +++ b/src2/creaImageIOTreeDescriptor.cpp @@ -9,9 +9,9 @@ namespace creaImageIO //================================================================== /// 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; //================================================================== @@ -31,7 +31,7 @@ namespace creaImageIO //================================================================== void Descriptor::CreateLevel0Descriptor() { - GetLevelDescriptorList().push_back(LevelDescriptor("Root")); + Add(LevelDescriptor("Root")); } //================================================================== @@ -40,90 +40,124 @@ namespace creaImageIO 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(0x1111,0x0011, // Number of Series + AttributeDescriptor::LABEL),1); + 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(0x1111,0x0011, // Number of Images + AttributeDescriptor::LABEL),2); + 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(); } //================================================================== @@ -142,11 +176,10 @@ namespace creaImageIO a!= l->GetAttributeDescriptorList().end(); ++a) { - map[a->GetName()]=""; + map[a->GetKey()]=""; } } } - //================================================================== } }