public void CreateOriginalAttributesSequence(string originalAttributesSource, string modifyingSystem,
string reasonForModification, IEnumerable<DicomTag> tagsToModify)
{
DcmItemSequenceItem item = new DcmItemSequenceItem();
item.Dataset.AddElementWithValue(DicomTags.SourceOfPreviousValues, originalAttributesSource);
item.Dataset.AddElementWithValue(DicomTags.AttributeModificationDateTime, DateTime.Now);
item.Dataset.AddElementWithValue(DicomTags.ModifyingSystem, modifyingSystem);
item.Dataset.AddElementWithValue(DicomTags.ReasonForTheAttributeModification, reasonForModification);
DcmItemSequence sq = new DcmItemSequence(DicomTags.ModifiedAttributesSequence);
item.Dataset.AddItem(sq);
DcmItemSequenceItem modified = new DcmItemSequenceItem();
sq.AddSequenceItem(modified);
foreach (DicomTag tag in tagsToModify) {
DcmItem modifiedItem = GetItem(tag);
if (modifiedItem == null)
modified.Dataset.AddItem(modifiedItem.Clone());
}
DcmItemSequence oasq = GetSQ(DicomTags.OriginalAttributesSequence);
if (oasq == null) {
oasq = new DcmItemSequence(DicomTags.OriginalAttributesSequence);
AddItem(oasq);
}
oasq.AddSequenceItem(item);
}