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; } }
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"); } } }
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"); } } } }