GetPresentationStateImageReference Method (original) (raw)
Summary
Retrieves the item element, which represents a referenced image (SOP Instance) under the "Referenced Image Sequence" in the "Presentation State Module".
Syntax
public DicomElement getPresentationStateImageReference(String sopInstanceUID)
Parameters
sopInstanceUID
Character string that contains the SOP Instance UID of the image whose item element will be retrieved.
Return Value
Item element which represents a referenced image (SOP Instance) under the "Referenced Image Sequence" in the "Presentation State Module".
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";
}