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; } }