コード例 #1
0
        /// <summary>
        ///  Converts the <paramref name="dataset"/> into a new row <paramref name="inTable"/>.  Columns will automatically be created
        ///  for all top level tags that are in <paramref name="onlyTheseTags"/>.
        /// </summary>
        /// <param name="dataset"></param>
        /// <param name="inTable"></param>
        /// <param name="onlyTheseTags"></param>
        /// <returns></returns>
        public static DataRow ToRow(this DicomDataset dataset, DataTable inTable, ICollection <string> onlyTheseTags)
        {
            var row = inTable.Rows.Add();

            //for each item in the dataset
            foreach (DicomItem i in dataset)
            {
                if (onlyTheseTags.Contains(DicomTypeTranslaterReader.GetColumnNameForTag(i.Tag, false)))
                {
                    AddColumnValue(dataset, row, i);
                }
            }

            return(row);
        }
コード例 #2
0
        private static void AddColumnValue(DicomDataset dataset, DataRow row, DicomItem i)
        {
            //get the column name for the tag
            var name = DicomTypeTranslaterReader.GetColumnNameForTag(i.Tag, false);

            //if we don't have it in our table yet
            if (!row.Table.Columns.Contains(name))
            {
                //add it with the correct hard Type
                var type = DicomTypeTranslater.GetNaturalTypeForVr(i.ValueRepresentation, i.Tag.DictionaryEntry.ValueMultiplicity);
                row.Table.Columns.Add(name, type.CSharpType);
            }

            //populate row value
            row[name] = DicomTypeTranslaterReader.GetCSharpValue(dataset, i);
        }