Interface IDicomClientConnection
- Namespace
- FellowOakDicom.Network.Client
- Assembly
- fo-dicom.core.dll
public interface IDicomClientConnection : IDisposable
- Inherited Members
- Extension Methods
Properties
CanStillProcessPDataTF
Gets whether or not the connection can still process P-DATA-TF This can be false when a previous P-DATA-TF timed out before it was sent completely In this scenario, the connection can only be used for control PDUs anymore
bool CanStillProcessPDataTF { get; }
Property Value
IsSendNextMessageRequired
Gets whether or not SendNextMessage is required, i.e. if any requests still have to be sent and there is no send loop currently running.
bool IsSendNextMessageRequired { get; }
Property Value
IsSendQueueEmpty
Gets whether or not the send queue is empty, i.e. if all requests are sent and handled
bool IsSendQueueEmpty { get; }
Property Value
Listener
Gets the long running listener task that waits for incoming DICOM communication from the server.
Task Listener { get; }
Property Value
NetworkStream
Gets the network stream of this connection
INetworkStream NetworkStream { get; }
Property Value
Methods
OnCStoreRequestAsync(DicomCStoreRequest)
Callback for handling a client related C-STORE request, typically emanating from the client's C-GET request.
Task<DicomResponse> OnCStoreRequestAsync(DicomCStoreRequest request)
Parameters
requestDicomCStoreRequestC-STORE request.
Returns
- Task<DicomResponse>
The DicomCStoreResponse related to the C-STORE
request.
OnConnectionClosedAsync(Exception)
Callback when connection is closed.
Task OnConnectionClosedAsync(Exception exception)
Parameters
exceptionExceptionException, if any, that forced connection to close.
Returns
OnNEventReportRequestAsync(DicomNEventReportRequest)
Callback for handling a client related N-EVENT-REPORT-RQ request, typically emanating from the client's N-ACTION request.
Task<DicomResponse> OnNEventReportRequestAsync(DicomNEventReportRequest request)
Parameters
requestDicomNEventReportRequestN-EVENT-REPORT-RQ request.
Returns
- Task<DicomResponse>
The DicomNEventReportResponse related to the N-EVENT-REPORT-RQ
request.
OnReceiveAbortAsync(DicomAbortSource, DicomAbortReason)
Callback on receiving an abort message.
Task OnReceiveAbortAsync(DicomAbortSource source, DicomAbortReason reason)
Parameters
sourceDicomAbortSourceAbort source.
reasonDicomAbortReasonDetailed reason for abort.
Returns
OnReceiveAssociationAcceptAsync(DicomAssociation)
Callback for handling association accept scenarios.
Task OnReceiveAssociationAcceptAsync(DicomAssociation association)
Parameters
associationDicomAssociationAccepted association.
Returns
OnReceiveAssociationRejectAsync(DicomRejectResult, DicomRejectSource, DicomRejectReason)
Callback for handling association reject scenarios.
Task OnReceiveAssociationRejectAsync(DicomRejectResult result, DicomRejectSource source, DicomRejectReason reason)
Parameters
resultDicomRejectResultSpecification of rejection result.
sourceDicomRejectSourceSource of rejection.
reasonDicomRejectReasonDetailed reason for rejection.
Returns
OnReceiveAssociationReleaseResponseAsync()
Callback on response from an association release.
Task OnReceiveAssociationReleaseResponseAsync()
Returns
OnRequestCompletedAsync(DicomRequest, DicomResponse)
Callback when a request has been completed (a final response was received, causing it to be removed from the pending queue) One request can only receive one completed response
Task OnRequestCompletedAsync(DicomRequest request, DicomResponse response)
Parameters
requestDicomRequestThe original request that was sent, which has now been fulfilled
responseDicomResponseThe final response from the DICOM server
Returns
OnRequestPendingAsync(DicomRequest, DicomResponse)
Callback when a request has received a pending response (this is not the final response, the request is still in the pending queue) One request can receive multiple pending responses
Task OnRequestPendingAsync(DicomRequest request, DicomResponse response)
Parameters
requestDicomRequestThe original request that was sent
responseDicomResponseA pending response from the DICOM server
Returns
OnRequestTimedOutAsync(DicomRequest, TimeSpan)
Callback when a request has timed out (no final response was received, but the timeout was exceeded and the request has been removed from the pending queue)
Task OnRequestTimedOutAsync(DicomRequest request, TimeSpan timeout)
Parameters
requestDicomRequestThe original request that was sent, which could not be fulfilled
timeoutTimeSpanThe timeout duration that has been exceeded
Returns
SendAbortAsync(DicomAbortSource, DicomAbortReason)
Send abort request.
Task SendAbortAsync(DicomAbortSource source, DicomAbortReason reason)
Parameters
sourceDicomAbortSourceAbort source.
reasonDicomAbortReasonAbort reason.
Returns
SendAssociationReleaseRequestAsync()
Send association release request.
Task SendAssociationReleaseRequestAsync()
Returns
SendAssociationRequestAsync(DicomAssociation)
Send association request.
Task SendAssociationRequestAsync(DicomAssociation association)
Parameters
associationDicomAssociationDICOM association.
Returns
SendNextMessageAsync()
Sometimes, DICOM requests can be enqueued but not immediately sent. This can happen for the following reasons: -- The same DicomService is already sending other requests -- The active association is temporarily saturated (too many open pending requests), see MaxAsyncOpsInvoked
Task SendNextMessageAsync()
Returns
SendRequestAsync(DicomRequest)
Send request from service.
Task SendRequestAsync(DicomRequest request)
Parameters
requestDicomRequestRequest to send.
Returns
StartListener()
Opens a long running listener task that waits for incoming DICOM communication
void StartListener()