var client =新的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,则CMoveResponse成功,但没有获得任何CStoreRequest
如果AEClient和QRServer不同,则会出现类似Move destination Unknown的错误
发布于 2020-12-18 02:16:50
如何请求数据有几种DICOM协议:C-Get和C-Move。它们的行为完全不同。下面是一个很好的解释:https://saravanansubramanian.com/dicomtutorials/
C-Move请求告诉服务器将图像发送到新关联中的特定AETitle ( MoveDestination)。因此,您必须启动一个新的StoreSCP服务器实例才能接收图像。因此,服务器当然必须知道AETitle,因为根据MoveDestination,服务器也必须知道IP和端口。
另一方面,C-Get返回相同交互上的数据。在这种情况下,您将调用OnCStoreRequestCallback。
https://stackoverflow.com/questions/65272201
复制相似问题