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
request
DicomCStoreRequestC-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
ExceptionException, 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
request
DicomNEventReportRequestN-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
DicomAbortSourceAbort source.
reason
DicomAbortReasonDetailed reason for abort.
Returns
OnReceiveAssociationAcceptAsync(DicomAssociation)
Callback for handling association accept scenarios.
Task OnReceiveAssociationAcceptAsync(DicomAssociation association)
Parameters
association
DicomAssociationAccepted association.
Returns
OnReceiveAssociationRejectAsync(DicomRejectResult, DicomRejectSource, DicomRejectReason)
Callback for handling association reject scenarios.
Task OnReceiveAssociationRejectAsync(DicomRejectResult result, DicomRejectSource source, DicomRejectReason reason)
Parameters
result
DicomRejectResultSpecification of rejection result.
source
DicomRejectSourceSource of rejection.
reason
DicomRejectReasonDetailed 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
request
DicomRequestThe original request that was sent, which has now been fulfilled
response
DicomResponseThe 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
request
DicomRequestThe original request that was sent
response
DicomResponseA 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
request
DicomRequestThe original request that was sent, which could not be fulfilled
timeout
TimeSpanThe timeout duration that has been exceeded
Returns
SendAbortAsync(DicomAbortSource, DicomAbortReason)
Send abort request.
Task SendAbortAsync(DicomAbortSource source, DicomAbortReason reason)
Parameters
source
DicomAbortSourceAbort source.
reason
DicomAbortReasonAbort reason.
Returns
SendAssociationReleaseRequestAsync()
Send association release request.
Task SendAssociationReleaseRequestAsync()
Returns
SendAssociationRequestAsync(DicomAssociation)
Send association request.
Task SendAssociationRequestAsync(DicomAssociation association)
Parameters
association
DicomAssociationDICOM 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
request
DicomRequestRequest to send.
Returns
StartListener()
Opens a long running listener task that waits for incoming DICOM communication
void StartListener()