internal DicomAttributeSQ(DicomAttributeSQ attrib, bool copyBinary, bool copyPrivate, bool copyUnknown) : base(attrib) { DicomSequenceItem[] items = (DicomSequenceItem[])attrib.Values; if (items != null) { _values = new DicomSequenceItem[items.Length]; for (int i = 0; i < items.Length; i++) _values[i] = (DicomSequenceItem) items[i].Copy(copyBinary, copyPrivate, copyUnknown); } }
internal DicomAttributeSQ(DicomAttributeSQ attrib, bool copyBinary, bool copyPrivate, bool copyUnknown) : base(attrib) { DicomSequenceItem[] items = (DicomSequenceItem[])attrib.Values; if (items != null) { _values = new DicomSequenceItem[items.Length]; for (int i = 0; i < items.Length; i++) { _values[i] = (DicomSequenceItem)items[i].Copy(copyBinary, copyPrivate, copyUnknown); } } }
private void AddSourceImageSequence(DicomFile file, string oldSopUid) { DicomAttributeSQ sourceImageSq; if (!file.DataSet.Contains(DicomTags.SourceImageSequence)) { sourceImageSq = new DicomAttributeSQ(DicomTags.SourceImageSequence); file.DataSet[DicomTags.SourceImageSequence] = sourceImageSq; } else sourceImageSq = file.DataSet[DicomTags.SourceImageSequence] as DicomAttributeSQ; DicomSequenceItem item = new DicomSequenceItem(); item[DicomTags.ReferencedSopClassUid].SetStringValue(file.SopClass.Uid); item[DicomTags.ReferencedSopInstanceUid].SetStringValue(oldSopUid); sourceImageSq.AddSequenceItem(item); }
public override bool Equals(object obj) { //Check for null and compare run-time types. if (obj == null || GetType() != obj.GetType()) { return(false); } DicomAttributeSQ a = (DicomAttributeSQ)obj; DicomSequenceItem[] array = (DicomSequenceItem[])a.Values; if (Count != a.Count) { return(false); } if (Count == 0 && a.Count == 0) { return(true); } if (IsNull && a.IsNull) { return(true); } if (_values.Length != array.Length) { return(false); } for (int i = 0; i < _values.Length; i++) { if (!array[i].Equals(_values[i])) { return(false); } } return(true); }
public static DicomSequenceItem CreateOriginalAttributesSequence(IEnumerable<DicomAttribute> originalValues, string originalAttributesSource, string modifyingSystem, string reasonForModification) { DicomSequenceItem item = new DicomSequenceItem(); item[DicomTags.AttributeModificationDatetime] .SetDateTime(0, DateTime.Now); if (!string.IsNullOrEmpty(originalAttributesSource)) { item[DicomTags.SourceOfPreviousValues] .SetStringValue(originalAttributesSource); } if (!string.IsNullOrEmpty(modifyingSystem)) { item[DicomTags.ModifyingSystem] .SetStringValue(modifyingSystem); } if (!string.IsNullOrEmpty(reasonForModification)) { item[DicomTags.ReasonForTheAttributeModification] .SetStringValue(reasonForModification); } DicomAttributeSQ sq = new DicomAttributeSQ(DicomTags.ModifiedAttributesSequence); item[sq.Tag] = sq; DicomSequenceItem modified = new DicomSequenceItem(); sq.AddSequenceItem(modified); foreach (DicomAttribute value in originalValues) { modified[value.Tag] = value; } return item; }
/// <summary> /// Initializes a new instance of the DicomDirectory class. /// </summary> /// <remarks>Sets most default values which can be changed via </remarks> /// <param name="aeTitle">The AE Title of the Media Reader/Writer accessing the DICOMDIR</param> public DicomDirectory(string aeTitle) { try { _dicomDirFile = new DicomFile(); _dicomDirFile.MetaInfo[DicomTags.FileMetaInformationVersion].Values = new byte[] { 0x00, 0x01 }; _dicomDirFile.MediaStorageSopClassUid = DicomUids.MediaStorageDirectoryStorage.UID; _dicomDirFile.SourceApplicationEntityTitle = aeTitle; _dicomDirFile.TransferSyntax = TransferSyntax.ExplicitVrLittleEndian; //_dicomDirFile.PrivateInformationCreatorUid = String.Empty; _dicomDirFile.DataSet[DicomTags.FileSetId].Values = String.Empty; ImplementationVersionName = DicomImplementation.Version; ImplementationClassUid = DicomImplementation.ClassUID.UID; _dicomDirFile.MediaStorageSopInstanceUid = DicomUid.GenerateUid().UID; // Set zero value so we can calculate the file Offset _dicomDirFile.DataSet[DicomTags.OffsetOfTheFirstDirectoryRecordOfTheRootDirectoryEntity].SetUInt32(0, 0); _dicomDirFile.DataSet[DicomTags.OffsetOfTheLastDirectoryRecordOfTheRootDirectoryEntity].SetUInt32(0,0); _dicomDirFile.DataSet[DicomTags.FileSetConsistencyFlag].SetUInt16(0,0); _directoryRecordSequence = (DicomAttributeSQ)_dicomDirFile.DataSet[DicomTags.DirectoryRecordSequence]; } catch (Exception ex) { Platform.Log(LogLevel.Error, ex, "Exception initializing DicomDirectory"); throw; } }
private void PopulateScheduledProcedureStepSequence(DicomAttributeSQ dicomAttribute, ExamsScheduled row) { DicomSequenceItem item; item = new DicomSequenceItem(); item[DicomTags.ScheduledStationAeTitle].SetStringValue(row.ScheduledAET); item[DicomTags.ScheduledProcedureStepStartDate].SetStringValue(GetDateStringOnly(row.ExamScheduledDateAndTime)); item[DicomTags.ScheduledProcedureStepStartTime].SetStringValue(GetTimeStringOnly(row.ExamScheduledDateAndTime)); item[DicomTags.Modality].SetStringValue(row.Modality); item[DicomTags.PerformedProcedureStepId].SetStringValue(string.Format("{0}",row.ProcedureStepID));//O M K supported item[DicomTags.ScheduledProcedureStepLocation].SetStringValue(row.ExamRoom);//return type 2 -O M K supported item[DicomTags.ScheduledProcedureStepDescription].SetStringValue(row.ExamDescription);//return type 2 -O M K supported dicomAttribute.AddSequenceItem(item); }