【问题标题】:fo-dicom C-Move Query does not call CStoreRequestCallbackfo-dicom C-Move Query 不调用 CStoreRequestCallback
【发布时间】:2020-12-13 03:54:02
【问题描述】:

var client = new DicomClient();

        var pcs = DicomPresentationContext.GetScpRolePresentationContextsFromStorageUids(
            DicomStorageCategory.Image,
            DicomTransferSyntax.ExplicitVRLittleEndian,
            DicomTransferSyntax.ImplicitVRLittleEndian,
            DicomTransferSyntax.ImplicitVRBigEndian);
        client.AdditionalPresentationContexts.AddRange(pcs);

        DicomDataset dataset = null;
        client.OnCStoreRequest = request =>
        {
            dataset = request.Dataset;
            return new DicomCStoreResponse(request, DicomStatus.Success);
        };

       
        var get = new DicomCMoveRequest(QRServer,
            StudyId,
            SeriesUd);


        var handle = new ManualResetEventSlim();
        get.OnResponseReceived = (request, response) =>
        {
            handle.Set();
        };
        client.AddRequest(get);
        client.Send(ipAddress, 104, false, AEClient, QRServer);
        handle.Wait();
        Thread.Sleep(10000);

在上面的代码中,如果 AEClient 和 QRServer 相同 /same AETitle ,则在上面的代码 sn-p 中,CMoveResponse 成功但没有收到任何 CStoreRequest

如果 AEClient 和 QRServer 不同,则会出现 Move destination Unknown 等错误

【问题讨论】:

    标签: fo-dicom


    【解决方案1】:

    有几种 DICOM 协议如何请求数据:C-GetC-Move。他们的行为完全不同。 请参阅此处的示例以获得很好的解释:https://saravanansubramanian.com/dicomtutorials/

    C-Move 请求告诉服务器将图像发送到新关联中的特定AETitle(MoveDestination)。所以你必须启动一个新的 StoreSCP 服务器实例来接收图像。因此,服务器当然必须知道 AETitle,因为从 MoveDestination 服务器也必须知道 IP 和端口。

    另一方面,C-Get 会返回相同关联上的数据。在这种情况下,您将调用 OnCStoreRequestCallback。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多