←Select platform

GetRoleSelection Method

Summary

Gets RoleSelectionFlags that define how the SCP will accept/reject any role selection proposed by the SCU for a particular

abstractSyntax.

Syntax
C#
C++/CLI
public RoleSelectionFlags GetRoleSelection( 
   string abstractSyntax 
) 
public:  
   RoleSelectionFlags^ GetRoleSelection( 
      String^ abstractSyntax 
   ) 

Parameters

abstractSyntax

An abstract syntax in the DicomAssociation.

Return Value

RoleSelectionFlags that define how the SCP will accept/reject any role selection proposed by the SCU for a particular abstractSyntax.

Remarks

Role selection occurs during DICOM Association negotiation between an SCU and an SCP.

For more information, see RoleSelectionFlags.

For example usage, see the Leadtools.Medical.Storage.AddIns.dll sample.

Example
C#
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; 
   } 
} 
Requirements

Target Platforms

Help Version 22.0.2023.2.9
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Dicom.AddIn Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.