public async Task OnCGetRequestAsync_ImmediateSuccess_ShouldRespond() { var port = Ports.GetNext(); using (DicomServerFactory.Create <ImmediateSuccessAsyncDicomCGetProvider>(port, logger: _logger.IncludePrefix("DicomServer"))) { var client = DicomClientFactory.Create("127.0.0.1", port, false, "SCU", "ANY-SCP"); client.Logger = _logger.IncludePrefix(typeof(DicomClient).Name); DicomCGetResponse response = null; DicomRequest.OnTimeoutEventArgs timeout = null; var studyInstanceUID = DicomUIDGenerator.GenerateDerivedFromUUID().ToString(); var request = new DicomCGetRequest(studyInstanceUID) { OnResponseReceived = (req, res) => response = res, OnTimeout = (sender, args) => timeout = args }; await client.AddRequestAsync(request).ConfigureAwait(false); await client.SendAsync().ConfigureAwait(false); Assert.NotNull(response); Assert.Equal(DicomStatus.Success, response.Status); Assert.Null(timeout); } }
private void CGetResponse(DicomCGetRequest request, DicomCGetResponse response) { RoutedItem ri = (RoutedItem)request.UserState; var taskInfo = $"id: {ri.id} messageID: {request.MessageID} connection: {Connection.name}"; _logger.Log(LogLevel.Debug, $"{taskInfo} response: {response.Status}"); try { //if(response.Status.ToString().Equals("Success") || response.Status.ToString().Equals("Pending")){ if (response.HasDataset) { foreach (var data in response.Dataset) { _logger.Log(LogLevel.Debug, $"{taskInfo} response.dataset.tag: {data} "); } _logger.Log(LogLevel.Debug, $"{taskInfo} StudyID: {response.Dataset.GetValue<string>(DicomTag.StudyID, 0)} "); _logger.Log(LogLevel.Debug, $"{taskInfo} StudyInstanceUID: {response.Dataset.GetValue<string>(DicomTag.StudyInstanceUID, 0)} "); _logger.Log(LogLevel.Debug, $"{taskInfo} SOPInstanceUID: {response.Dataset.GetValue<string>(DicomTag.SOPInstanceUID, 0)} "); _logger.Log(LogLevel.Debug, $"{taskInfo} QueryRetrieveLevel: {response.Dataset.GetValue<string>(DicomTag.QueryRetrieveLevel, 0)} "); _logger.Log(LogLevel.Debug, $"{taskInfo} PatientName: {response.Dataset.GetValue<string>(DicomTag.PatientName, 0)} "); _logger.Log(LogLevel.Debug, $"{taskInfo} PatientBirthDate: {response.Dataset.GetValue<string>(DicomTag.PatientBirthDate, 0)} "); _logger.Log(LogLevel.Debug, $"{taskInfo} StudyDate: {response.Dataset.GetValue<string>(DicomTag.StudyDate, 0)} "); } } catch (Exception e) { _logger.LogFullException(e, taskInfo); } }