Table of Contents

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

bool

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

bool

IsSendQueueEmpty

Gets whether or not the send queue is empty, i.e. if all requests are sent and handled

bool IsSendQueueEmpty { get; }

Property Value

bool

Listener

Gets the long running listener task that waits for incoming DICOM communication from the server.

Task Listener { get; }

Property Value

Task

NetworkStream

Gets the network stream of this connection

INetworkStream NetworkStream { get; }

Property Value

INetworkStream

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

request DicomCStoreRequest

C-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

exception Exception

Exception, if any, that forced connection to close.

Returns

Task

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

request DicomNEventReportRequest

N-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

source DicomAbortSource

Abort source.

reason DicomAbortReason

Detailed reason for abort.

Returns

Task

OnReceiveAssociationAcceptAsync(DicomAssociation)

Callback for handling association accept scenarios.

Task OnReceiveAssociationAcceptAsync(DicomAssociation association)

Parameters

association DicomAssociation

Accepted association.

Returns

Task

OnReceiveAssociationRejectAsync(DicomRejectResult, DicomRejectSource, DicomRejectReason)

Callback for handling association reject scenarios.

Task OnReceiveAssociationRejectAsync(DicomRejectResult result, DicomRejectSource source, DicomRejectReason reason)

Parameters

result DicomRejectResult

Specification of rejection result.

source DicomRejectSource

Source of rejection.

reason DicomRejectReason

Detailed reason for rejection.

Returns

Task

OnReceiveAssociationReleaseResponseAsync()

Callback on response from an association release.

Task OnReceiveAssociationReleaseResponseAsync()

Returns

Task

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

request DicomRequest

The original request that was sent, which has now been fulfilled

response DicomResponse

The final response from the DICOM server

Returns

Task

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

request DicomRequest

The original request that was sent

response DicomResponse

A pending response from the DICOM server

Returns

Task

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

request DicomRequest

The original request that was sent, which could not be fulfilled

timeout TimeSpan

The timeout duration that has been exceeded

Returns

Task

SendAbortAsync(DicomAbortSource, DicomAbortReason)

Send abort request.

Task SendAbortAsync(DicomAbortSource source, DicomAbortReason reason)

Parameters

source DicomAbortSource

Abort source.

reason DicomAbortReason

Abort reason.

Returns

Task

SendAssociationReleaseRequestAsync()

Send association release request.

Task SendAssociationReleaseRequestAsync()

Returns

Task

SendAssociationRequestAsync(DicomAssociation)

Send association request.

Task SendAssociationRequestAsync(DicomAssociation association)

Parameters

association DicomAssociation

DICOM association.

Returns

Task

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

Task

SendRequestAsync(DicomRequest)

Send request from service.

Task SendRequestAsync(DicomRequest request)

Parameters

request DicomRequest

Request to send.

Returns

Task

StartListener()

Opens a long running listener task that waits for incoming DICOM communication

void StartListener()