/// <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); } } }
/// <summary> /// Enumerates DICOM items for specified group. /// </summary> /// <param name="dataset">Dataset from which group items should be retrieved.</param> /// <param name="group">Requested group.</param> /// <returns>Enumeration of DICOM items for specified <paramref name="group"/>.</returns> public static IEnumerable <DicomItem> EnumerateGroup(this DicomDataset dataset, ushort group) { return(dataset.Where(x => x.Tag.Group == group && x.Tag.Element != 0x0000)); }
/// <summary> /// Enumerates DICOM items matching mask. /// </summary> /// <param name="dataset">Dataset from which masked items should be retrieved.</param> /// <param name="mask">Requested mask.</param> /// <returns>Enumeration of masked DICOM items.</returns> public static IEnumerable <DicomItem> EnumerateMasked(this DicomDataset dataset, DicomMaskedTag mask) { return(dataset.Where(x => mask.IsMatch(x.Tag))); }