fo-dicom を使用して超高速の PACS サーバーを実装しました。この時点での唯一の本当の問題は、CMove 要求の処理です。
IDicomCMoveProvider には 1 つのメソッドIEnumerable<DicomCMoveResponse> OnCMoveRequest(DicomCMoveRequest request);
がありますが、実装した方法は間違っているように見え、かなり遅いです。
具体的には CMove メソッド内で、スタディを受信する必要があるモダリティに送信する新しい CStore リクエストを作成しています。インスタンスごとに、新しい CStore リクエスト、新しい DicomClient を作成し、それを送信して応答を待ちます。次に発生するのは遅い部分です。各インスタンスは、DICOM 通信のシバン、接続、関連付け、インスタンスの送信、分離、切断をすべて実行し、研究全体を送信するには時間がかかります。
私の質問は、これを適切に実装して、1 つの接続のみを開き、すべての画像を送信して閉じるようにする方法です。これが fo-dicom でどのように行われるかの例が理想的です。