Пример #1
0
        public void Transform(DicomDataset dataset, DicomDataset modifiedAttributesSequenceItem = null)
        {
            dataset.CopyTo(modifiedAttributesSequenceItem, _tag);
            var uid = dataset.GetSingleValue <DicomUID>(_tag);

            dataset.AddOrUpdate(_tag, _generator.Generate(uid));
        }
Пример #2
0
        public virtual void ReadData(string tableName, string columnName, object value)
        {
            var column    = SchemaProvider.GetColumn(tableName, columnName);
            var dicomTags = column.Tags;

            if (column.IsKey)
            {
                CurrentData.KeyValue = value.ToString( );
            }

            if (column.IsForeign)
            {
                string keyString = value.ToString( );

                KeyToDataSetCollection resultSet = null;

                if (ResultSets.TryGetValue(column.Table.Parent, out resultSet))
                {
                    fo.DicomDataset foreignDs = (fo.DicomDataset)resultSet[keyString];

                    if (QueryLevelTableName == column.Table.Name)
                    {
                        foreignDs.Merge(CurrentData.CurrentDs);

                        //resultSet[keyString] = CurrentData.CurrentDs ;
                    }
                    else
                    {
                        if (column.Table.IsSequence)
                        {
                            fo.DicomSequence sq   = (fo.DicomSequence)CurrentData.ForeignDs.Get <fo.DicomSequence> (CurrentData.ForeignTagValue);
                            fo.DicomDataset  item = new fo.DicomDataset( );

                            sq.Items.Add(item);

                            CurrentData.CurrentDs.Merge(item);

                            CurrentData.CurrentDs = item;
                        }
                        else if (column.Table.IsMultiValue)
                        {
                            CurrentData.CurrentDs = foreignDs;
                        }
                        else
                        {
                            CurrentData.CurrentDs.Merge(foreignDs);

                            foreignDs.CopyTo(CurrentData.CurrentDs);     //TODO: check if above merge is still necessary with this new CopyTo method
                        }
                    }
                }
            }

            if (null == dicomTags)
            {
                return;
            }

            ReadTags(columnName, value, dicomTags);
        }
Пример #3
0
        public static fo.DicomDataset GetDefaultStudyQuery( )
        {
            fo.DicomDataset ds = new fo.DicomDataset( );
            _studyDs.CopyTo(ds);

            return(ds);
        }
Пример #4
0
 public void Transform(DicomDataset dataset, DicomDataset modifiedAttributesSequenceItem = null)
 {
     if (dataset.Contains(_tag) && dataset.Get <string>(_tag, -1, String.Empty) == _match)
     {
         dataset.CopyTo(modifiedAttributesSequenceItem, _tag);
         dataset.Add(_tag, _value);
     }
 }
Пример #5
0
        public static fo.DicomDataset GetDefaultInstanceQuery( )
        {
            fo.DicomDataset ds = new fo.DicomDataset( );

            _instanceDs.CopyTo(ds);

            return(ds);
        }
Пример #6
0
 public void Transform(DicomDataset dataset, DicomDataset modifiedAttributesSequenceItem = null)
 {
     if (dataset.Contains(_src))
     {
         dataset.CopyTo(modifiedAttributesSequenceItem, _dst);
         dataset.Add(_dst, dataset.Get <IByteBuffer>(_src));
     }
 }
Пример #7
0
 public void Transform(DicomDataset dataset, DicomDataset modifiedAttributesSequenceItem = null)
 {
     if (dataset.Contains(_src))
     {
         dataset.CopyTo(modifiedAttributesSequenceItem, _dst);
         dataset.AddOrUpdate(_dst, dataset.GetDicomItem <DicomElement>(_src).Buffer);
     }
 }
Пример #8
0
        public static fo.DicomDataset GetDefaultSeriesQuery( )
        {
            fo.DicomDataset ds = new fo.DicomDataset( );

            _seriesDs.CopyTo(ds);

            return(ds);
        }
Пример #9
0
 public void Transform(DicomDataset dataset, DicomDataset modifiedAttributesSequenceItem = null)
 {
     if (_match.Match(dataset))
     {
         dataset.CopyTo(modifiedAttributesSequenceItem, _match.Tag);
         dataset.AddOrUpdate(_match.Tag, _value);
     }
 }
Пример #10
0
 public void Transform(DicomDataset dataset, DicomDataset modifiedAttributesSequenceItem = null)
 {
     if (dataset.Contains(_tag))
     {
         dataset.CopyTo(modifiedAttributesSequenceItem, _tag);
         var value = dataset.GetString(_tag);
         dataset.AddOrUpdate(_tag, value.ToLower());
     }
 }
Пример #11
0
 public void Transform(DicomDataset dataset, DicomDataset modifiedAttributesSequenceItem = null)
 {
     if (dataset.Contains(_tag))
     {
         dataset.CopyTo(modifiedAttributesSequenceItem, _tag);
         var value = dataset.Get <string>(_tag, -1, String.Empty);
         dataset.Add(_tag, value.ToUpper());
     }
 }
Пример #12
0
 public void Transform(DicomDataset dataset, DicomDataset modifiedAttributesSequenceItem = null)
 {
     if (dataset.Contains(_tag))
     {
         dataset.CopyTo(modifiedAttributesSequenceItem, _tag);
         var value = dataset.GetString(_tag);
         value = Regex.Replace(value, _pattern, _replacement);
         dataset.AddOrUpdate(_tag, value);
     }
 }
Пример #13
0
        public void Transform(DicomDataset dataset, DicomDataset modifiedAttributesSequenceItem = null)
        {
            var remove = dataset.EnumerateMasked(_mask).Select(x => x.Tag).ToList();

            foreach (DicomTag tag in remove)
            {
                dataset.CopyTo(modifiedAttributesSequenceItem, tag);
                dataset.Remove(tag);
            }
        }
Пример #14
0
 public void Transform(DicomDataset dataset, DicomDataset modifiedAttributesSequenceItem = null)
 {
     if (dataset.Contains(_tag))
     {
         dataset.CopyTo(modifiedAttributesSequenceItem, _tag);
         var      value = dataset.GetString(_tag);
         string[] parts = value.Split(_seperators);
         value = String.Format(_format, parts);
         dataset.AddOrUpdate(_tag, value);
     }
 }
Пример #15
0
        public void Transform(DicomDataset dataset, DicomDataset modifiedAttributesSequenceItem = null)
        {
            IDbConnection connection = null;

            try {
                if (_dbType == DatabaseType.Odbc)
#if TOUCH
                { throw new NotSupportedException("ODBC data provider not supported on Monotouch platform."); }
#else
                { connection = new OdbcConnection(_connectionString); }
#endif
                else if (_dbType == DatabaseType.MsSql)
                {
                    connection = new SqlConnection(_connectionString);
                }

                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.Add(_output[i], str);
                                }
                            }
                        }
                    }

                    connection.Close();

                    connection = null;
                }
            } finally {
Пример #16
0
 public void Transform(DicomDataset dataset, DicomDataset modifiedAttributesSequenceItem = null)
 {
     if (dataset.Contains(_tag))
     {
         dataset.CopyTo(modifiedAttributesSequenceItem, _tag);
         var value = dataset.GetString(_tag);
         if (_totalLength < 0)
         {
             value = value.PadLeft(-_totalLength, _paddingChar);
         }
         else
         {
             value = value.PadRight(_totalLength, _paddingChar);
         }
         dataset.AddOrUpdate(_tag, value);
     }
 }
Пример #17
0
 public void Transform(DicomDataset dataset, DicomDataset modifiedAttributesSequenceItem = null)
 {
     if (dataset.Contains(_tag))
     {
         dataset.CopyTo(modifiedAttributesSequenceItem, _tag);
         var      value = dataset.GetString(_tag);
         string[] parts = value.Split('\\');
         for (int i = 0; i < parts.Length; i++)
         {
             if (parts[i].Length > _length)
             {
                 parts[i] = parts[i].Substring(0, _length);
             }
         }
         value = String.Join("\\", parts);
         dataset.AddOrUpdate(_tag, value);
     }
 }
Пример #18
0
 public void Transform(DicomDataset dataset, DicomDataset modifiedAttributesSequenceItem = null)
 {
     if (dataset.Contains(_tag))
     {
         dataset.CopyTo(modifiedAttributesSequenceItem, _tag);
         var value = dataset.GetString(_tag);
         if (_position == DicomTrimPosition.Both)
         {
             if (_trim != null)
             {
                 value = value.Trim(_trim);
             }
             else
             {
                 value = value.Trim();
             }
         }
         else if (_position == DicomTrimPosition.Start)
         {
             if (_trim != null)
             {
                 value = value.TrimStart(_trim);
             }
             else
             {
                 value = value.TrimStart();
             }
         }
         else
         {
             if (_trim != null)
             {
                 value = value.TrimEnd(_trim);
             }
             else
             {
                 value = value.TrimEnd();
             }
         }
         dataset.AddOrUpdate(_tag, value);
     }
 }
Пример #19
0
 public void Transform(DicomDataset dataset, DicomDataset modifiedAttributesSequenceItem = null)
 {
     if (dataset.Contains(_tag))
     {
         dataset.CopyTo(modifiedAttributesSequenceItem, _tag);
         var value = dataset.GetString(_tag);
         if (_position == DicomTrimPosition.Start || _position == DicomTrimPosition.Both)
         {
             while (value.StartsWith(_trim))
             {
                 value = value.Substring(_trim.Length);
             }
         }
         if (_position == DicomTrimPosition.End || _position == DicomTrimPosition.Both)
         {
             while (value.EndsWith(_trim))
             {
                 value = value.Substring(0, value.Length - _trim.Length);
             }
         }
         dataset.AddOrUpdate(_tag, value);
     }
 }
Пример #20
0
        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();
                }
            }
        }
Пример #21
0
 public void Transform(DicomDataset dataset, DicomDataset modifiedAttributesSequenceItem = null)
 {
     dataset.CopyTo(modifiedAttributesSequenceItem, _tag);
     dataset.Add(_tag, _value);
 }