- itk::EncapsulateMetaData<std::string>(*dict,"0008|0018", sopInstanceUID);
- itk::EncapsulateMetaData<std::string>(*dict,"0002|0003", sopInstanceUID);
-
- // Change fields that are slice specific
- std::ostringstream value;
- value.str("");
- //unsigned int f = 0;
- value << f + 1;
-
- // Image Number
- itk::EncapsulateMetaData<std::string>(*dict,"0020|0013", value.str());
-
- // Series Description - Append new description to current series
- // description
- std::string oldSeriesDesc;
- itk::ExposeMetaData<std::string>(*inputDict, "0008|103e", oldSeriesDesc);
-
- value.str("");
- value << oldSeriesDesc
- << ": Resampled with pixel spacing "
- << outputSpacing[0] << ", "
- << outputSpacing[1] << ", "
- << outputSpacing[2];
- // This is an long string and there is a 64 character limit in the
- // standard
- unsigned lengthDesc = value.str().length();
-
- std::string seriesDesc( value.str(), 0,
- lengthDesc > 64 ? 64
- : lengthDesc);
- itk::EncapsulateMetaData<std::string>(*dict,"0008|103e", seriesDesc);
-
- // Series Number
- value.str("");
- value << 1001;
- itk::EncapsulateMetaData<std::string>(*dict,"0020|0011", value.str());
-
- // Derivation Description - How this image was derived
- value.str("");
-
- value << ": " << ITK_SOURCE_VERSION;
-
- lengthDesc = value.str().length();
- std::string derivationDesc( value.str(), 0,
- lengthDesc > 1024 ? 1024
- : lengthDesc);
- itk::EncapsulateMetaData<std::string>(*dict,"0008|2111", derivationDesc);
-
- // Image Position Patient: This is calculated by computing the
- // physical coordinate of the first pixel in each slice.
- typename InputImageType::PointType position;
- typename InputImageType::IndexType index;
- index[0] = 0;
- index[1] = 0;
- index[2] = f;
- input->TransformIndexToPhysicalPoint(index, position);
-
- value.str("");
- value << position[0] << "\\" << position[1] << "\\" << position[2];
- itk::EncapsulateMetaData<std::string>(*dict,"0020|0032", value.str());
- // Slice Location: For now, we store the z component of the Image
- // Position Patient.
- value.str("");
- value << position[2];
- itk::EncapsulateMetaData<std::string>(*dict,"0020|1041", value.str());
-
-
- // Slice Thickness: For now, we store the z spacing
- value.str("");
- value << outputSpacing[2];
- itk::EncapsulateMetaData<std::string>(*dict,"0018|0050",
- value.str());
- // Spacing Between Slices
- itk::EncapsulateMetaData<std::string>(*dict,"0018|0088",
- value.str());
-
- /*
- value.str("");
- value << 0.999987 << "\\" << -0.005061 << "\\" << 0.000000 << "\\" << 0.000000 << "\\" << 0.000000 << "\\" << -1.000000;
- itk::EncapsulateMetaData<std::string>(*dict, "0020|0037", value.str());
-
- value.str("");
- value << 196;
- itk::EncapsulateMetaData<std::string>(*dict, "0002|0000", value.str());
- value.str("");
- value << 510;
- itk::EncapsulateMetaData<std::string>(*dict, "0008|0000", value.str());
- value.str("");
- value << 362;
- itk::EncapsulateMetaData<std::string>(*dict, "0009|0000", value.str());
- value.str("");
- value << 116;
- itk::EncapsulateMetaData<std::string>(*dict, "0010|0000", value.str());
- value.str("");
- value << 1008;
- itk::EncapsulateMetaData<std::string>(*dict, "0011|0000", value.str());
- value.str("");
- value << 0 << "\\" << 0;
- itk::EncapsulateMetaData<std::string>(*dict, "0011|1011", value.str());
- value.str("");
- value << 1 << "\\" << 1;
- itk::EncapsulateMetaData<std::string>(*dict, "0011|1015", value.str());
- value.str("");
- value << 1 << "\\" << 2;
- itk::EncapsulateMetaData<std::string>(*dict, "0011|1016", value.str());
- value.str("");
- value << 0 << "\\" << 0;
- itk::EncapsulateMetaData<std::string>(*dict, "0011|1017", value.str());
- value.str("");
- value << 0 << "\\" << 0;
- itk::EncapsulateMetaData<std::string>(*dict, "0011|1018", value.str());
- value.str("");
- value << 0 << "\\" << 0;
- itk::EncapsulateMetaData<std::string>(*dict, "0011|1019", value.str());
- value.str("");
- value << 0 << "\\" << 0;
- itk::EncapsulateMetaData<std::string>(*dict, "0011|101a", value.str());
- value.str("");
- value << 0 << "\\" << 0;
- itk::EncapsulateMetaData<std::string>(*dict, "0011|101f", value.str());
- value.str("");
- value << 0 << "\\" << 0;
- itk::EncapsulateMetaData<std::string>(*dict, "0011|1026", value.str());
- value.str("");
- value << 0 << "\\" << 0 << "\\" << 0 << "\\" << 0;
- itk::EncapsulateMetaData<std::string>(*dict, "0011|1027", value.str());
- value.str("");
- value << 0 << "\\" << 0 << "\\" << 0 << "\\" << 0;
- itk::EncapsulateMetaData<std::string>(*dict, "0011|1028", value.str());
- value.str("");
- value << 0 << "\\" << 0;
- itk::EncapsulateMetaData<std::string>(*dict, "0011|102c", value.str());
- value.str("");
- value << 0 << "\\" << 0;
- itk::EncapsulateMetaData<std::string>(*dict, "0011|102d", value.str());
- value.str("");
- value << 0 << "\\" << 0;
- itk::EncapsulateMetaData<std::string>(*dict, "0011|102e", value.str());
- std::ostringstream valueVec[2];
- valueVec[0].str("");
- valueVec[0] << 32767;
- valueVec[1].str("");
- valueVec[1] << 32767;
- std::string valueVec2[2];
- valueVec2[0]=valueVec[0].str();
- valueVec2[1]=valueVec[1].str();
- itk::EncapsulateMetaData<std::string*>(*dict, "0011|102f", valueVec2);
- value.str("");
- value << 1 ;
- itk::EncapsulateMetaData<std::string>(*dict, "0020|1011", value.str());
- value.str("");
- value << 63 ;
- itk::EncapsulateMetaData<std::string>(*dict, "0028|0107", value.str());
-
- value.str("");
- value << 0 ;
- itk::EncapsulateMetaData<std::string>(*dict, "0018|1130", value.str());
- value.str("");
- value << 563.7 ;
- itk::EncapsulateMetaData<std::string>(*dict, "0018|1131", value.str());
- value.str("");
- value << "CC" ;
- itk::EncapsulateMetaData<std::string>(*dict, "0018|1140", value.str());
- value.str("");
- value << 243.5 ;
- itk::EncapsulateMetaData<std::string>(*dict, "0018|1142", value.str());
- value.str("");
- value << 360 ;
- itk::EncapsulateMetaData<std::string>(*dict, "0018|1143", value.str());
- value.str("");
- value << 6 ;
- itk::EncapsulateMetaData<std::string>(*dict, "0018|1144", value.str());
- value.str("");
- value << 10000 ;
- itk::EncapsulateMetaData<std::string>(*dict, "0018|1242", value.str());
- value.str("");
- value << 60 ;
- itk::EncapsulateMetaData<std::string>(*dict, "0054|0053", value.str());
- value.str("");
- value << 180.29 ;
- itk::EncapsulateMetaData<std::string>(*dict, "0054|0200", value.str());
- value.str("");
- value << "F-10450" ;
- itk::EncapsulateMetaData<std::string>(*dict, "0008|0100", value.str());
- value.str("");
- value << "99SDM" ;
- itk::EncapsulateMetaData<std::string>(*dict, "0008|0102", value.str());
- value.str("");
- value << "recumbent" ;
- itk::EncapsulateMetaData<std::string>(*dict, "0008|0104", value.str());
- value.str("");
- value << 114 ;
- itk::EncapsulateMetaData<std::string>(*dict, "0054|0014", value.str());
- value.str("");
- value << 126 ;
- itk::EncapsulateMetaData<std::string>(*dict, "0054|0015", value.str());
- value.str("");
- value << "Tc99m_SC" ;
- itk::EncapsulateMetaData<std::string>(*dict, "0054|0018", value.str());
- value.str("");
- value << 0 ;
- itk::EncapsulateMetaData<std::string>(*dict, "0018|1120", value.str());
- value.str("");
- value << 0 ;
- itk::EncapsulateMetaData<std::string>(*dict, "0018|1145", value.str());
- value.str("");
- value << 0 << "\\" << 0;
- itk::EncapsulateMetaData<std::string>(*dict, "0018|1149", value.str());
- value.str("");
- value << "LEHR" ;
- itk::EncapsulateMetaData<std::string>(*dict, "0018|1180", value.str());
- value.str("");
- value << "PARA" ;
- itk::EncapsulateMetaData<std::string>(*dict, "0018|1181", value.str());
- value.str("");
- value << 0 ;
- itk::EncapsulateMetaData<std::string>(*dict, "0018|1182", value.str());
- value.str("");
- value << 0 ;
- itk::EncapsulateMetaData<std::string>(*dict, "0018|1183", value.str());
- value.str("");
- value << 0 ;
- itk::EncapsulateMetaData<std::string>(*dict, "0018|1184", value.str());
- value.str("");
- value << 1.000000 << "\\" << 1.000000 ;
- itk::EncapsulateMetaData<std::string>(*dict, "0028|0031", value.str());
- value.str("");
- value << 0.000000 << "\\" << 0.000000 ;
- itk::EncapsulateMetaData<std::string>(*dict, "0028|0032", value.str());
- value.str("");
- value << 0 ;
- itk::EncapsulateMetaData<std::string>(*dict, "0011|101c", value.str());
- value.str("");
- value << 0 ;
- itk::EncapsulateMetaData<std::string>(*dict, "0011|101d", value.str());
- value.str("");
- value << 0 ;
- itk::EncapsulateMetaData<std::string>(*dict, "0013|1016", value.str());
- value.str("");
- value << 0 ;
- itk::EncapsulateMetaData<std::string>(*dict, "0013|1017", value.str());
- value.str("");
- value << 0 ;
- itk::EncapsulateMetaData<std::string>(*dict, "0011|1023", value.str());
- value.str("");
- value << 0 ;
- itk::EncapsulateMetaData<std::string>(*dict, "0011|1024", value.str());
- value.str("");
- value << 0 ;
- itk::EncapsulateMetaData<std::string>(*dict, "0011|1025", value.str());
- value.str("");
- value << 0 ;
- itk::EncapsulateMetaData<std::string>(*dict, "0011|1029", value.str());
- value.str("");
- value << 0 ;
- itk::EncapsulateMetaData<std::string>(*dict, "0011|103e", value.str());
- value.str("");
- value << 0 ;
- itk::EncapsulateMetaData<std::string>(*dict, "0013|1018", value.str());
- value.str("");
- value << 0 ;
- itk::EncapsulateMetaData<std::string>(*dict, "0013|1019", value.str());
- value.str("");
- value << 0 ;
- itk::EncapsulateMetaData<std::string>(*dict, "0013|101a", value.str());
- value.str("");
- value << "GEMS_GENIE_1" ;
- itk::EncapsulateMetaData<std::string>(*dict, "0035|0010", value.str());
- value.str("");
- value << 29 ;
- itk::EncapsulateMetaData<std::string>(*dict, "0035|1001", value.str());
-
- */
- // Save the dictionary
- outputArray.push_back(inputDict);
- }
-
+ itk::EncapsulateMetaData<std::string>(*dict,"0008|0018", sopInstanceUID);
+ itk::EncapsulateMetaData<std::string>(*dict,"0002|0003", sopInstanceUID);
+
+ // Change fields that are slice specific
+ std::ostringstream value;
+ value.str("1");
+
+ // Image Number
+ itk::EncapsulateMetaData<std::string>(*dict,"0020|0013", value.str());
+
+ // Series Description - Append new description to current series
+ // description
+ std::string oldSeriesDesc;
+ itk::ExposeMetaData<std::string>(*inputDict, "0008|103e", oldSeriesDesc);
+
+ value.str("");
+ value << oldSeriesDesc
+ << ": Resampled with pixel spacing "
+ << outputSpacing[0] << ", "
+ << outputSpacing[1] << ", "
+ << outputSpacing[2];
+ // This is an long string and there is a 64 character limit in the
+ // standard
+ unsigned lengthDesc = value.str().length();
+
+ std::string seriesDesc( value.str(), 0,
+ lengthDesc > 64 ? 64
+ : lengthDesc);
+ itk::EncapsulateMetaData<std::string>(*dict,"0008|103e", seriesDesc);
+
+ // Series Number
+ value.str("");
+ value << 1001;
+ itk::EncapsulateMetaData<std::string>(*dict,"0020|0011", value.str());
+
+ // Derivation Description - How this image was derived
+ value.str("");
+
+ value << ": " << ITK_SOURCE_VERSION;
+
+ lengthDesc = value.str().length();
+ std::string derivationDesc( value.str(), 0,
+ lengthDesc > 1024 ? 1024
+ : lengthDesc);
+ itk::EncapsulateMetaData<std::string>(*dict,"0008|2111", derivationDesc);
+
+ // Image Position Patient: This is calculated by computing the
+ // physical coordinate of the first pixel in each slice.
+ typename InputImageType::PointType position;
+ typename InputImageType::IndexType index;
+ index[0] = 0;
+ index[1] = 0;
+ index[2] = 0;
+ input->TransformIndexToPhysicalPoint(index, position);
+
+ value.str("");
+ value << position[0] << "\\" << position[1] << "\\" << position[2];
+ itk::EncapsulateMetaData<std::string>(*dict,"0020|0032", value.str());
+ // Slice Location: For now, we store the z component of the Image
+ // Position Patient.
+ value.str("");
+ value << position[2];
+ itk::EncapsulateMetaData<std::string>(*dict,"0020|1041", value.str());
+
+ // Slice Thickness: For now, we store the z spacing
+ value.str("");
+ value << outputSpacing[2];
+ itk::EncapsulateMetaData<std::string>(*dict,"0018|0050", value.str());
+ // Spacing Between Slices
+ itk::EncapsulateMetaData<std::string>(*dict,"0018|0088", value.str());
+ // Save the dictionary
+ outputArray.push_back(inputDict);
+