InstanceAvailability Enumeration (original) (raw)
Summary
The availability of the referenced Instance
Syntax
public enum InstanceAvailability
public enum class InstanceAvailability : public System.Enum, System.IComparable, System.IConvertible, System.IFormattable
Members
Value | Member | Description |
---|---|---|
0 | NotProvided | Value not provided. |
1 | Online | Instances are immediately available from the Retrieve AE Title (0008,0054), and if a C-MOVE were to be requested, it would succeed in a reasonably short time. |
2 | Nearline | Instances need to be retrieved from relatively slow media such as optical disk or tape. If a C-MOVE were to be requested from the Retrieve AE Title (0008,0054), it would succeed, but may take a considerable time' |
3 | Offline | A manual intervention is needed before the instances may be retrieved. If a C-MOVE were to be requested from the Retrieve AE Title (0008,0054), it would fail (e.g., by timeout) without such manual intervention. |
4 | Unavailable | Instances cannot be retrieved from the Retrieve AE Title (0008,0054). If a C-MOVE were to be requested, it would fail. Note that SOP Instances that are unavailable from this AE may be available from other AEs, or may have an alternate representation that is available from this AE. |
Example
using Leadtools;
using Leadtools.Dicom.Scu;
using Leadtools.Dicom.Scu.Common;
using Leadtools.Dicom;
using Leadtools.Dicom.Common.DataTypes;
using Leadtools.Dicom.Common.DataTypes.Status;
public void FindInstances()
{
DicomEngine.Startup();
DicomNet.Startup();
QueryRetrieveScu findInstance = new QueryRetrieveScu();
FindQuery query = new FindQuery();
DicomScp scp = new DicomScp();
//
// Change these parameters to reflect the calling AETitle.
//
findInstance.AETitle = "LEAD_CLIENT";
findInstance.HostPort = 1000;
findInstance.HostAddress = Dns.GetHostEntry(Dns.GetHostName()).AddressList.FirstOrDefault(ip => ip.AddressFamily == AddressFamily.InterNetwork);
//
// Change these parameters to reflect the called AETitle (server).
//
scp.AETitle = "MI_SERVER";
scp.Port = 104;
scp.Timeout = 60;
scp.PeerAddress = IPAddress.Parse("10.1.1.96");
query.QueryLevel = QueryLevel.Image;
query.StudyInstanceUID = "1.2.840.114257.3.6.5.41964868";
query.SeriesInstanceUID = "1.2.840.114257.3.6.5.5.4214471";
findInstance.BeforeCFind += new BeforeCFindDelegate(findInstance_BeforeCFind);
findInstance.MatchInstance += new MatchInstanceDelegate(findInstance_MatchInstance);
findInstance.AfterCFind += new AfterCFindDelegate(findInstance_AfterCFind);
findInstance.Find(scp, query, true, Path.Combine(LEAD_VARS.ImagesDir, "DICOM", "Image1.dcm"));
DicomNet.Shutdown();
DicomEngine.Shutdown();
}
void findInstance_BeforeCFind(object sender, BeforeCFindEventArgs e)
{
Console.WriteLine("Before CFind: " + e.QueryLevel.ToString());
}
void findInstance_MatchInstance(object sender, MatchEventArgs<CompositeObjectInstance> e)
{
Console.WriteLine("SOP Instance UID: " + e.Info.SOPInstanceUID);
Console.WriteLine("SOP Class UID: " + e.Info.SOPClassUID);
Console.WriteLine("Instance #: " + e.Info.InstanceNumber);
Console.WriteLine("Availability: " + e.Availability);
}
void findInstance_AfterCFind(object sender, AfterCFindEventArgs e)
{
Debug.Assert(e.Status == DicomCommandStatusType.Success);
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images";
}