Ejemplo n.º 1
0
        public void SetPart(PersonNameParts currentPart, string value)
        {
            switch (currentPart)
            {
            case PersonNameParts.Family:
            {
                LastName = value;
            }
            break;

            case PersonNameParts.Given:
            {
                GivenName = value;
            }
            break;

            case PersonNameParts.Middle:
            {
                MiddleName = value;
            }
            break;

            case PersonNameParts.Prefix:
            {
                Prefix = value;
            }
            break;

            case PersonNameParts.Suffix:
            {
                Suffix = value;
            }
            break;
            }
        }
Ejemplo n.º 2
0
        private void ReadTags(string columnName, object value, uint[] dicomTags)
        {
            foreach (var dicomTag in dicomTags)
            {
                DicomDictionaryEntry dicEntry = DicomDictionary.Default[dicomTag];
                var  vr        = dicEntry.ValueRepresentations.First();
                Type valueType = value.GetType( );

                if (vr == DicomVR.PN)
                {
                    PersonNameParts currentPart = SchemaProvider.GetPNColumnPart(columnName);

                    if (CurrentData.CurrentPersonNameData == null)
                    {
                        CurrentData.CurrentPersonNameData     = new PersonNameData( );
                        CurrentData.CurrentPersonNameTagValue = (uint)dicEntry.Tag;
                        CurrentData.CurrentPersonNames.Add(CurrentData.CurrentPersonNameTagValue, CurrentData.CurrentPersonNameData);
                    }
                    else
                    {
                        if (dicEntry.Tag != CurrentData.CurrentPersonNameTagValue)
                        {
                            if (CurrentData.CurrentPersonNames.TryGetValue((uint)dicEntry.Tag, out CurrentData.CurrentPersonNameData))
                            {
                                CurrentData.CurrentPersonNameTagValue = (uint)dicEntry.Tag;
                            }
                            else
                            {
                                CurrentData.CurrentPersonNameData     = new PersonNameData( );
                                CurrentData.CurrentPersonNameTagValue = (uint)dicEntry.Tag;
                                CurrentData.CurrentPersonNames.Add(CurrentData.CurrentPersonNameTagValue, CurrentData.CurrentPersonNameData);
                            }
                        }
                    }

                    CurrentData.CurrentPersonNameData.SetPart(currentPart, (string)value);
                }

                if (valueType == typeof(String)) //shortcut
                {
                    CurrentData.CurrentDs.AddOrUpdate <string>(dicomTag, (string)value);
                }
                else if (valueType == typeof(DateTime))
                {
                    CurrentData.CurrentDs.AddOrUpdate <DateTime>(dicomTag, (DateTime)value);
                }
                else if (valueType == typeof(Int32))
                {
                    DicomTag tag = (DicomTag)dicomTag;
                    var      VR  = tag.DictionaryEntry.ValueRepresentations.First();

                    // Unsigned String must be stored as Int in SQL DB
                    // https://social.msdn.microsoft.com/Forums/en-US/ff08c190-a981-4896-9542-3f64b95a84a2/sql-server-data-type-for-signedunsigned-integral-c-types?forum=adodotnetdataproviders
                    if (VR == DicomVR.US)
                    {
                        CurrentData.CurrentDs.AddOrUpdate <UInt16>(dicomTag, Convert.ToUInt16(value));
                    }
                    else
                    {
                        CurrentData.CurrentDs.AddOrUpdate <Int32>(dicomTag, (Int32)value);
                    }
                }
                else if (valueType == typeof(Int64))
                {
                    CurrentData.CurrentDs.AddOrUpdate <Int64>(dicomTag, (Int64)value);
                }
                else
                {
                    CurrentData.CurrentDs.AddOrUpdate <string>(dicomTag, value as string);

                    System.Diagnostics.Debug.Assert(false, "Unknown element db value");
                }
            }
        }
Ejemplo n.º 3
0
        private void ReadTags(string columnName, object value, uint[] dicomTags)
        {
            foreach (var dicomTag in dicomTags)
            {
                fo.DicomDictionaryEntry dicEntry = fo.DicomDictionary.Default[dicomTag];


                if (DBNull.Value != value && value != null)
                {
                    var  vr        = dicEntry.ValueRepresentations.First();
                    Type valueType = value.GetType( );

                    if (vr == fo.DicomVR.PN)
                    {
                        PersonNameParts currentPart = SchemaProvider.GetPNColumnPart(columnName);

                        if (CurrentData.CurrentPersonNameData == null)
                        {
                            CurrentData.CurrentPersonNameData     = new PersonNameData( );
                            CurrentData.CurrentPersonNameTagValue = (uint)dicEntry.Tag;
                            CurrentData.CurrentPersonNames.Add(CurrentData.CurrentPersonNameTagValue, CurrentData.CurrentPersonNameData);
                        }
                        else
                        {
                            if (dicEntry.Tag != CurrentData.CurrentPersonNameTagValue)
                            {
                                if (CurrentData.CurrentPersonNames.TryGetValue((uint)dicEntry.Tag, out CurrentData.CurrentPersonNameData))
                                {
                                    CurrentData.CurrentPersonNameTagValue = (uint)dicEntry.Tag;
                                }
                                else
                                {
                                    CurrentData.CurrentPersonNameData     = new PersonNameData( );
                                    CurrentData.CurrentPersonNameTagValue = (uint)dicEntry.Tag;
                                    CurrentData.CurrentPersonNames.Add(CurrentData.CurrentPersonNameTagValue, CurrentData.CurrentPersonNameData);
                                }
                            }
                        }

                        CurrentData.CurrentPersonNameData.SetPart(currentPart, (string)value);
                    }

                    if (valueType == typeof(String)) //shortcut
                    {
                        CurrentData.CurrentDs.AddOrUpdate <string>(dicomTag, (string)value);
                    }
                    else if (valueType == typeof(DateTime))
                    {
                        CurrentData.CurrentDs.AddOrUpdate <DateTime>(dicomTag, (DateTime)value);
                    }

                    else if (valueType == typeof(Int32))
                    {
                        CurrentData.CurrentDs.AddOrUpdate <Int32>(dicomTag, (Int32)value);
                        //dicomElement.SetInt32((int)dicomElement.Count, (Int32)value);
                    }
                    else if (valueType == typeof(Int64))
                    {
                        CurrentData.CurrentDs.AddOrUpdate <Int64>(dicomTag, (Int64)value);
                        //dicomElement.SetInt64((int)dicomElement.Count, (Int64)value);
                    }
                    else
                    {
                        CurrentData.CurrentDs.AddOrUpdate <string>(dicomTag, value as string);
                        //dicomElement.SetStringValue((string)value);

                        System.Diagnostics.Debug.Assert(false, "Unknown element db value");
                    }
                }
            }
        }
        private void ReadTags(string columnName, object value, uint[] dicomTags)
        {
            foreach (var dicomTag in dicomTags)
            {
                var dicomElement = CurrentData.CurrentDs[dicomTag];


                if (null != dicomElement && DBNull.Value != value && value != null)
                {
                    var  vr        = dicomElement.Tag.VR;
                    Type valueType = value.GetType( );

                    if (vr == DicomVr.PNvr)
                    {
                        PersonNameParts currentPart = SchemaProvider.GetPNColumnPart(columnName);

                        if (CurrentData.CurrentPersonNameData == null)
                        {
                            CurrentData.CurrentPersonNameData     = new PersonNameData( );
                            CurrentData.CurrentPersonNameTagValue = dicomElement.Tag.TagValue;
                            CurrentData.CurrentPersonNames.Add(CurrentData.CurrentPersonNameTagValue, CurrentData.CurrentPersonNameData);
                        }
                        else
                        {
                            if (dicomElement.Tag.TagValue != CurrentData.CurrentPersonNameTagValue)
                            {
                                if (CurrentData.CurrentPersonNames.TryGetValue(dicomElement.Tag.TagValue, out CurrentData.CurrentPersonNameData))
                                {
                                    CurrentData.CurrentPersonNameTagValue = dicomElement.Tag.TagValue;
                                }
                                else
                                {
                                    CurrentData.CurrentPersonNameData     = new PersonNameData( );
                                    CurrentData.CurrentPersonNameTagValue = dicomElement.Tag.TagValue;
                                    CurrentData.CurrentPersonNames.Add(CurrentData.CurrentPersonNameTagValue, CurrentData.CurrentPersonNameData);
                                }
                            }
                        }

                        CurrentData.CurrentPersonNameData.SetPart(currentPart, (string)value);
                    }
                    else if (valueType == typeof(String))   //shortcut
                    {
                        dicomElement.SetStringValue((string)value);
                    }
                    else if (valueType == typeof(DateTime))
                    {
                        dicomElement.SetDateTime((int)dicomElement.Count, (DateTime)value);
                    }

                    else if (valueType == typeof(Int32))
                    {
                        dicomElement.SetInt32((int)dicomElement.Count, (Int32)value);
                    }
                    else if (valueType == typeof(Int64))
                    {
                        dicomElement.SetInt64((int)dicomElement.Count, (Int64)value);
                    }
                    else
                    {
                        dicomElement.SetStringValue((string)value);

                        System.Diagnostics.Debug.Assert(false, "Unknown element db value");
                    }
                }
            }
        }