Allows implementors to support DICOM role selection features in an add-in.
public interface IRoleSelectionProvider : IExtendedPresentationContextProvider, IPresentationContextProvider
public:
interface class IRoleSelectionProvider abstract : IExtendedPresentationContextProvider, IPresentationContextProvider
Role selection occurs during DICOM Association negotiation between an SCU and an SCP. Role selection is of particular interest in the following DICOM classes:
In the PACS Framework, Role Selection can be specified in two ways:
For more information, see RoleSelectionFlags.
For example usage, see the Leadtools.Medical.Storage.AddIns.dll sample.
This example shows a basic PACS Framework add-in that implements the IRoleSelectionProvider interface.
using Leadtools.Dicom.AddIn.Attributes;
using Leadtools.Dicom.AddIn.Interfaces;
using Leadtools.Dicom;
using Leadtools.Dicom.AddIn;
public class RoleSelectionProviderAddin : IRoleSelectionProvider
{
private List<string> _acceptUserProviderProposedList = new List<string>();
public RoleSelectionProviderAddin()
{
// Storage Commitment classes
_acceptUserProviderProposedList.Add(DicomUidType.StorageCommitmentPullModelClass);
_acceptUserProviderProposedList.Add(DicomUidType.StorageCommitmentPullModelInstance);
_acceptUserProviderProposedList.Add(DicomUidType.StorageCommitmentPushModelClass);
_acceptUserProviderProposedList.Add(DicomUidType.StorageCommitmentPushModelInstance);
// Procedure Step SOP Classes
_acceptUserProviderProposedList.Add(DicomUidType.GeneralPurposePerformedProcedureStepSopClass);
_acceptUserProviderProposedList.Add(DicomUidType.GeneralPurposeScheduledProcedureStepSopClass);
// Media Creation Management Service Class
_acceptUserProviderProposedList.Add(DicomUidType.MediaCreationManagement);
// C-MOVE
_acceptUserProviderProposedList.Add(DicomUidType.PatientRootQueryMove);
_acceptUserProviderProposedList.Add(DicomUidType.PatientStudyQueryMove);
_acceptUserProviderProposedList.Add(DicomUidType.StudyRootQueryMove);
// C-GET
_acceptUserProviderProposedList.Add(DicomUidType.PatientRootQueryGet);
_acceptUserProviderProposedList.Add(DicomUidType.PatientStudyQueryGet);
_acceptUserProviderProposedList.Add(DicomUidType.StudyRootQueryGet);
}
public DicomClient Client
{
private get;
set;
}
public ExtendedNegotiation GetExtended(string abstractSyntax)
{
return ExtendedNegotiation.None;
}
public RoleSelectionFlags GetRoleSelection(string abstractSyntax)
{
RoleSelectionFlags roleSelectionFlags = RoleSelectionFlags.Disabled;
if (_acceptUserProviderProposedList.Contains(abstractSyntax))
{
roleSelectionFlags = RoleSelectionFlags.AcceptAllProposed;
}
return roleSelectionFlags;
}
public bool IsAbstractSyntaxSupported(string abstractSyntax)
{
bool supported = _acceptUserProviderProposedList.Contains(abstractSyntax) || (abstractSyntax == DicomUidType.VerificationClass);
return supported;
}
public bool IsTransferSyntaxSupported(string abstractSyntax, string transferSyntax)
{
bool supported = (
transferSyntax == DicomUidType.ExplicitVRLittleEndian ||
transferSyntax == DicomUidType.ExplicitVRBigEndian ||
transferSyntax == DicomUidType.ImplicitVRLittleEndian
);
return supported;
}
}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document