当前位置: 首页>>代码示例>>C#>>正文


C# DicomDataset.AddOrUpdate方法代码示例

本文整理汇总了C#中DicomDataset.AddOrUpdate方法的典型用法代码示例。如果您正苦于以下问题:C# DicomDataset.AddOrUpdate方法的具体用法?C# DicomDataset.AddOrUpdate怎么用?C# DicomDataset.AddOrUpdate使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在DicomDataset的用法示例。


在下文中一共展示了DicomDataset.AddOrUpdate方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Transform

        public void Transform(DicomDataset dataset, DicomDataset modifiedAttributesSequenceItem = null)
        {
            IDbConnection connection = null;

            try
            {
                if (_dbType == DatabaseType.MsSql) connection = new SqlConnection(_connectionString);
#if !__IOS__ && !__ANDROID__ && !NETSTANDARD
                else if (_dbType == DatabaseType.Odbc) connection = new OdbcConnection(_connectionString);
#endif
                using (IDbCommand command = connection.CreateCommand())
                {
                    command.Connection = connection;
                    command.CommandText = _query;

                    for (int i = 0; i < _params.Count; i++)
                    {
                        var str = dataset.Get<string>(_params[i], -1, String.Empty);
                        SqlParameter prm = new SqlParameter(String.Format("@{0}", i), str);
                        command.Parameters.Add(prm);
                    }

                    connection.Open();

                    if (_output.Count == 0)
                    {
                        command.ExecuteNonQuery();
                    }
                    else
                    {
                        using (IDataReader reader = command.ExecuteReader())
                        {
                            if (reader.Read())
                            {
                                for (int i = 0; i < _output.Count; i++)
                                {
                                    dataset.CopyTo(modifiedAttributesSequenceItem, _output[i]);
                                    string str = reader.GetString(i);
                                    dataset.AddOrUpdate(_output[i], str);
                                }
                            }
                        }
                    }

                    connection.Close();

                    connection = null;
                }
            }
            finally
            {
                if (connection != null)
                {
                    if (connection.State == ConnectionState.Closed || connection.State == ConnectionState.Broken) connection.Close();
                    connection.Dispose();
                }
            }
        }
开发者ID:aerik,项目名称:fo-dicom,代码行数:58,代码来源:DatabaseQueryTransformRule.cs

示例2: Transform

 public void Transform(DicomDataset dataset, DicomDataset modifiedAttributesSequenceItem = null)
 {
     dataset.CopyTo(modifiedAttributesSequenceItem, _tag);
     var uid = dataset.Get<DicomUID>(_tag);
     dataset.AddOrUpdate(_tag, _generator.Generate(uid));
 }
开发者ID:aerik,项目名称:fo-dicom,代码行数:6,代码来源:DicomTransformRules.cs

示例3: ProcessOverlays

        private static void ProcessOverlays(DicomDataset input, DicomDataset output)
        {
            var overlays = DicomOverlayData.FromDataset(input.InternalTransferSyntax.IsEncapsulated ? output : input);

            foreach (var overlay in overlays)
            {
                var dataTag = new DicomTag(overlay.Group, DicomTag.OverlayData.Element);

                // Don't run conversion on non-embedded overlays.
                if (output.Contains(dataTag)) continue;

                // If embedded overlay, Overlay Bits Allocated should equal Bits Allocated (#110).
                var bitsAlloc = output.Get(DicomTag.BitsAllocated, (ushort)0);
                output.AddOrUpdate(new DicomTag(overlay.Group, DicomTag.OverlayBitsAllocated.Element), bitsAlloc);

                var data = overlay.Data;
                if (output.InternalTransferSyntax.IsExplicitVR) output.AddOrUpdate(new DicomOtherByte(dataTag, data));
                else output.AddOrUpdate(new DicomOtherWord(dataTag, data));
            }
        }
开发者ID:aerik,项目名称:fo-dicom,代码行数:20,代码来源:DicomTranscoder.cs

示例4: RegenerateAll

        /// <summary>
        /// Regenerate all UIDs in a DICOM dataset.
        /// </summary>
        /// <param name="dataset">Dataset in which UIDs should be regenerated.</param>
        public void RegenerateAll(DicomDataset dataset)
        {
            foreach (var ui in dataset.Where(x => x.ValueRepresentation == DicomVR.UI).ToArray())
            {
                var uid = dataset.Get<DicomUID>(ui.Tag);
                if (uid.Type == DicomUidType.SOPInstance || uid.Type == DicomUidType.Unknown) dataset.AddOrUpdate(ui.Tag, this.Generate(uid));
            }

            foreach (var sq in dataset.Where(x => x.ValueRepresentation == DicomVR.SQ).Cast<DicomSequence>().ToArray())
            {
                foreach (var item in sq)
                {
                    this.RegenerateAll(item);
                }
            }
        }
开发者ID:aerik,项目名称:fo-dicom,代码行数:20,代码来源:DicomUIDGenerator.cs


注:本文中的DicomDataset.AddOrUpdate方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。