GetPresentationStateImageReferenceCount Method (original) (raw)

Summary

Retrieves number of images (SOP Instances) that are referenced in an item under the "Referenced Series Sequence" (0008,1115) in the "Presentation State Module".

Syntax

public int getPresentationStateImageReferenceCount(DicomElement refSeriesSQItem) 

Parameters

refSeriesSQItem
An item element under the "Referenced Series Sequence" (0008,1115) in the "Presentation State Module".

Return Value

The number of referenced images.

Example

using Leadtools; using Leadtools.Dicom; public void DicomPresStateSample() { //Make sure to initialize the DICOM engine, this needs to be done only once //In the whole application DicomEngine.Startup(); using (DicomDataSet dicomDataset = new DicomDataSet()) { dicomDataset.Initialize(DicomClassType.GrayscaleSoftcopyPresentationState, DicomDataSetInitializeType.ExplicitVRLittleEndian); DicomPresentationStateInformation presentationStateInfo = new DicomPresentationStateInformation(); presentationStateInfo.InstanceNumber = 1; presentationStateInfo.PresentationLabel = "LABEL"; presentationStateInfo.PresentationDescription = "Description"; presentationStateInfo.PresentationCreator = "Creator"; DicomDateValue presentationCreationDate = new DicomDateValue(); presentationCreationDate.Year = 2004; presentationCreationDate.Month = 1; presentationCreationDate.Day = 8; DicomTimeValue presentationCreationTime = new DicomTimeValue(); presentationCreationTime.Hours = 2; presentationCreationTime.Minutes = 3; presentationCreationTime.Seconds = 5; presentationStateInfo.PresentationCreationDate = presentationCreationDate; presentationStateInfo.PresentationCreationTime = presentationCreationTime; dicomDataset.SetPresentationStateInformation(presentationStateInfo); DicomPresentationStateInformation presentationStateInfo1 = dicomDataset.GetPresentationStateInformation(); Debug.Assert(presentationStateInfo1 != null); Debug.Assert(presentationStateInfo1.InstanceNumber == 1); //RemovePresStateImageRefBySOPInstance can be used to remove indivual referened images dicomDataset.RemoveAllPresentationStateImageReferences(); Debug.Assert(dicomDataset.GetPresentationStateImageReferenceCount(null) == 0); // We can also load the dataset first and then call AddPresStateImageRefByDS dicomDataset.AddPresentationStateImageReference(Path.Combine(LEAD_VARS.ImagesDir, "DICOM", "IMAGE3.dcm"), null, 0); // We can also add the presentation state using a stream using (FileStream stream = new FileStream(Path.Combine(LEAD_VARS.ImagesDir, "DICOM", "image3.dcm"), FileMode.Open)) { dicomDataset.AddPresentationStateImageReference(stream, null, 0); } //We can also use FindNextPresStateRefSeriesItem to iterate through all items DicomElement item = dicomDataset.FindFirstPresentationStateReferencedSeriesItem(); string imageRefSOPInstanceUID = dicomDataset.GetPresentationStateImageReferenceSOPInstance(item, 0); Debug.Assert(imageRefSOPInstanceUID != null); DicomElement item1 = dicomDataset.GetPresentationStateImageReference(imageRefSOPInstanceUID); Debug.Assert(item1 != null); dicomDataset.Save(Path.Combine(LEAD_VARS.ImagesDir, "DICOM", "PresentationState.dcm"), DicomDataSetSaveFlags.None); } DicomEngine.Shutdown(); } static class LEAD_VARS { public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images"; }