IRoleSelectionProvider Interface (original) (raw)
Summary
Allows implementors to support DICOM role selection features in an add-in.
Example
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;
}
}