I've implemented a super fast PACS server with fo-dicom, my only real problem at this point is handling a CMove request.
The IDicomCMoveProvider has one method IEnumerable<DicomCMoveResponse> OnCMoveRequest(DicomCMoveRequest request); however the way I've implemented it looks wrong and is rather slow.
Specifically inside the CMove method I'm creating a new CStore request that I send to the modality which has to receive the study, for each instance I create a new CStore request, a new DicomClient then I send that and wait for the response. What happens then is the slow part, each instance does the whole DICOM communication shebang, connect, associate, send instance, dissociate, disconnect and it takes ages to send a whole study.
My question is how are you supposed to implement this properly so that its opens only one connection, send all images and close. An example how this is done with fo-dicom would be ideal.