Beispiel #1
0
 public DicomFieldAttribute(ushort group, ushort element)
 {
     _tag         = new DicomTag(group, element);
     _default     = DicomFieldDefault.None;
     _defltOnZL   = false;
     _createEmpty = false;
 }
Beispiel #2
0
 public DicomFieldAttribute(uint tag)
 {
     _tag         = new DicomTag(tag);
     _default     = DicomFieldDefault.None;
     _defltOnZL   = false;
     _createEmpty = false;
 }
Beispiel #3
0
        public DicomFieldAttribute(uint tag)
        {
            _tag = DicomTagDictionary.GetDicomTag(tag);
            if (_tag == null)
                _tag = new DicomTag(tag, "Unknown Tag", "UnknownTag", DicomVr.UNvr, false, 1, uint.MaxValue, false);

            _default = DicomFieldDefault.None;
            _defltOnZL = false;
            _createEmpty = false;
        }
        public DicomFieldAttribute(uint tag)
        {
            _tag = DicomTagDictionary.GetDicomTag(tag);
            if (_tag == null)
            {
                _tag = new DicomTag(tag, "Unknown Tag", "UnknownTag", DicomVr.UNvr, false, 1, uint.MaxValue, false);
            }

            _default     = DicomFieldDefault.None;
            _defltOnZL   = false;
            _createEmpty = false;
        }
Beispiel #5
0
 private object LoadDicomFieldValue(DcmElement elem, Type vtype, DicomFieldDefault deflt, bool udzl)
 {
     if (vtype.IsSubclassOf(typeof(DcmElement))) {
         if (elem != null && vtype != elem.GetType())
             throw new DicomDataException("Invalid binding type for Element VR!");
         return elem;
     } else if (vtype.IsArray) {
         if (elem != null) {
             if (vtype.GetElementType() != elem.GetValueType())
                 throw new DicomDataException("Invalid binding type for Element VR!");
             if (elem.GetValueType() == typeof(DateTime))
                 return (elem as DcmDateElementBase).GetDateTimes();
             else
                 return elem.GetValueObjectArray();
         } else {
             if (deflt == DicomFieldDefault.EmptyArray)
                 return Array.CreateInstance(vtype, 0);
             else
                 return null;
         }
     } else {
         if (elem != null) {
             if (elem.Length == 0 && udzl) {
                 return GetDefaultValue(vtype, deflt);
             }
             if (vtype != elem.GetValueType()) {
                 if (vtype == typeof(string)) {
                     return elem.GetValueString();
                 } else if (vtype == typeof(DicomUID) && elem.VR == DicomVR.UI) {
                     return (elem as DcmUniqueIdentifier).GetUID();
                 } else if (vtype == typeof(DicomTransferSyntax) && elem.VR == DicomVR.UI) {
                     return (elem as DcmUniqueIdentifier).GetTS();
                 } else if (vtype == typeof(DcmDateRange) && elem.GetType().IsSubclassOf(typeof(DcmDateElementBase))) {
                     return (elem as DcmDateElementBase).GetDateTimeRange();
                 } else if (vtype == typeof(Int32)) {
                     return Convert.ToInt32(elem.GetValueString(), 10);
                 } else if (vtype == typeof(object)) {
                     return elem.GetValueObject();
                 } else
                     throw new DicomDataException("Invalid binding type for Element VR!");
             } else {
                 return elem.GetValueObject();
             }
         } else {
             return GetDefaultValue(vtype, deflt);
         }
     }
 }
Beispiel #6
0
 private object GetDefaultValue(Type vtype, DicomFieldDefault deflt)
 {
     try {
         if (vtype == typeof(DicomUID) || vtype == typeof(DicomTransferSyntax) || vtype.IsSubclassOf(typeof(DcmElement)))
             return null;
         if (deflt == DicomFieldDefault.Null || deflt == DicomFieldDefault.None)
             return null;
         if (deflt == DicomFieldDefault.DBNull)
             return DBNull.Value;
         if (deflt == DicomFieldDefault.Default && vtype != typeof(string))
             return Activator.CreateInstance(vtype);
         if (vtype == typeof(string)) {
             if (deflt == DicomFieldDefault.StringEmpty || deflt == DicomFieldDefault.Default)
                 return String.Empty;
         } else if (vtype == typeof(DateTime)) {
             if (deflt == DicomFieldDefault.DateTimeNow)
                 return DateTime.Now;
             if (deflt == DicomFieldDefault.MinValue)
                 return DateTime.MinValue;
             if (deflt == DicomFieldDefault.MaxValue)
                 return DateTime.MaxValue;
         } else if (vtype.IsSubclassOf(typeof(ValueType))) {
             if (deflt == DicomFieldDefault.MinValue) {
                 PropertyInfo pi = vtype.GetProperty("MinValue", BindingFlags.Static);
                 if (pi != null) return pi.GetValue(null, null);
             }
             if (deflt == DicomFieldDefault.MaxValue) {
                 PropertyInfo pi = vtype.GetProperty("MaxValue", BindingFlags.Static);
                 if (pi != null) return pi.GetValue(null, null);
             }
             return Activator.CreateInstance(vtype);
         }
         return null;
     }
     catch (Exception) {
         Debug.Log.Error("Error in default value type! - {0}", vtype.ToString());
         return null;
     }
 }
Beispiel #7
0
		public DicomFieldAttribute(ushort group, ushort element) {
			_tag = new DicomTag(group, element);
			_default = DicomFieldDefault.None;
			_defltOnZL = false;
			_createEmpty = false;
		}
Beispiel #8
0
		public DicomFieldAttribute(uint tag) {
			_tag = new DicomTag(tag);
			_default = DicomFieldDefault.None;
			_defltOnZL = false;
			_createEmpty = false;
		}