string getImagesInSeries(SeriesQueryOut seriesResponse) { // find images ............................... DicomCFindRequest cfind = new DicomCFindRequest(DicomQueryRetrieveLevel.Image); cfind.Dataset.Add(DicomTag.StudyInstanceUID, seriesResponse.StudyInstanceUID); cfind.Dataset.Add(DicomTag.SeriesInstanceUID, seriesResponse.SeriesInstanceUID); cfind.Dataset.Add(DicomTag.SOPInstanceUID, ""); cfind.Dataset.Add(DicomTag.InstanceNumber, ""); int numImages = 0; cfind.OnResponseReceived = (request, response) => { if (response.HasDataset) { imageIDs.Add(response.Dataset.GetSingleValue <string>(DicomTag.SOPInstanceUID)); numImages++; } if (!response.HasDataset) { Console.WriteLine("got " + numImages + " images" + Environment.NewLine); } }; var client = new DicomClient(); client.AddRequest(cfind); /* var pcs = DicomPresentationContext.GetScpRolePresentationContextsFromStorageUids( * DicomStorageCategory.Image, * DicomTransferSyntax.ExplicitVRLittleEndian, * DicomTransferSyntax.ImplicitVRLittleEndian, * DicomTransferSyntax.ImplicitVRBigEndian); * client.AdditionalPresentationContexts.AddRange(pcs); */ imageIDs = new List <string>(); try { Console.WriteLine(Environment.NewLine + "Querying server " + configuration.ip + ":" + configuration.port + " for IMAGES in series no. " + seriesResponse.SeriesInstanceUID); client.Send(configuration.ip, configuration.port, false, configuration.thisNodeAET, configuration.AET); } catch (Exception ec) { Console.WriteLine("Impossible to connect to server"); } string SOPInstanceUID = ""; if (imageIDs.Count > 0) { SOPInstanceUID = imageIDs[(int)(imageIDs.Count / 2.0f)]; } return(SOPInstanceUID); }
public static void addElementToSeriesTable(DownloadPage downloadPage, SeriesQueryOut response) { dynamic myItem = new System.Dynamic.ExpandoObject(); IDictionary <string, object> myItemValues; PropertyInfo[] property = typeof(SeriesQueryOut).GetProperties(); for (int j = 0; j < property.Length; j++) { myItemValues = (IDictionary <string, object>)myItem; myItemValues[property[j].Name] = property[j].GetValue(response); } downloadPage.dataGrid.Items.Add(myItem); }
BitmapImage downloadSampleImage(SeriesQueryOut seriesResponse, string SOPInstanceUID) { var cmove = new DicomCMoveRequest(configuration.thisNodeAET, seriesResponse.StudyInstanceUID, seriesResponse.SeriesInstanceUID, SOPInstanceUID); var client = new DicomClient(); client.AddRequest(cmove); File.Create("singleImage.txt").Close(); DirectoryInfo di = new DirectoryInfo("./images/"); foreach (FileInfo file in di.GetFiles()) { file.Delete(); } client.Send(configuration.ip, configuration.port, false, configuration.thisNodeAET, configuration.AET); var image = new BitmapImage(); if (File.Exists("./images/file.jpg")) { var uriSource = new Uri(Path.GetFullPath("./images/file.jpg")); image.BeginInit(); image.CacheOption = BitmapCacheOption.OnLoad; image.CreateOptions = BitmapCreateOptions.IgnoreImageCache; image.UriSource = uriSource; image.EndInit(); } else { MessageBox.Show("Listener didn't receive anything or didn't work"); } File.Delete("singleImage.txt"); return(image); }