private void _queryButton_Click(object sender, EventArgs e) { var scu = new StudyRootFindScu(); var query = new DicomAttributeCollection(); scu.AssociationRejected += scu_AssociationRejected; scu.AssociationAccepted += scu_AssociationAccepted; scu.AssociationReleased += scu_AssociationReleased; scu.AssociationAborted += scu_AssociationAborted; scu.NetworkError += scu_NetworkError; query[DicomTags.QueryRetrieveLevel].SetStringValue("STUDY"); query[DicomTags.PatientId].SetStringValue(""); query[DicomTags.PatientsName].SetStringValue(""); query[DicomTags.AccessionNumber].SetStringValue(""); query[DicomTags.StudyDescription].SetStringValue(""); query[DicomTags.StudyDate].SetStringValue(""); query[DicomTags.StudyInstanceUid].SetStringValue(""); if (_studyDateTextBox.Text != "") { query[DicomTags.StudyDate].SetStringValue(_studyDateTextBox.Text + "-" + DateTime.Today.ToString("yyyyMMdd")); } _results = null; _results = scu.Find(_aeTitleTextbox.Text, _calledAETitleTextbox.Text, _hostnameTextbox.Text, int.Parse(_portTextbox.Text), query); scu.Dispose(); }
private void _queryButton_Click(object sender, EventArgs e) { var scu = new StudyRootFindScu(); var query = new DicomAttributeCollection(); scu.AssociationRejected += scu_AssociationRejected; scu.AssociationAccepted += scu_AssociationAccepted; scu.AssociationReleased += scu_AssociationReleased; scu.AssociationAborted += scu_AssociationAborted; scu.NetworkError += scu_NetworkError; query[DicomTags.QueryRetrieveLevel].SetStringValue("STUDY"); query[DicomTags.PatientId].SetStringValue(""); query[DicomTags.PatientsName].SetStringValue(""); query[DicomTags.AccessionNumber].SetStringValue(""); query[DicomTags.StudyDescription].SetStringValue(""); query[DicomTags.StudyDate].SetStringValue(""); query[DicomTags.StudyInstanceUid].SetStringValue(""); if (_studyDateTextBox.Text != "") { query[DicomTags.StudyDate].SetStringValue(_studyDateTextBox.Text +"-" + DateTime.Today.ToString("yyyyMMdd")); } _results = null; _results = scu.Find(_aeTitleTextbox.Text, _calledAETitleTextbox.Text, _hostnameTextbox.Text, int.Parse(_portTextbox.Text), query); scu.Dispose(); }
private void buttonQueryScuSearch_Click(object sender, EventArgs e) { XmlDocument theDoc = new XmlDocument(); try { theDoc.LoadXml(textBoxQueryMessage.Text); InstanceXml instanceXml = new InstanceXml(theDoc.DocumentElement, null); DicomAttributeCollection queryMessage = instanceXml.Collection; if (queryMessage == null) { Logger.LogError("Unexpected error parsing query message"); } int maxResults; if (!int.TryParse(textBoxQueryScuMaxResults.Text, out maxResults)) { maxResults = -1; } IList <DicomAttributeCollection> resultsList; if (comboBoxQueryScuQueryType.SelectedIndex == 0) { StudyRootFindScu findScu = new StudyRootFindScu(); findScu.MaxResults = maxResults; resultsList = findScu.Find(textBoxQueryScuLocalAe.Text, textBoxQueryScuRemoteAe.Text, textBoxQueryScuRemoteHost.Text, int.Parse(textBoxQueryScuRemotePort.Text), queryMessage); findScu.Dispose(); } else { PatientRootFindScu findScu = new PatientRootFindScu(); findScu.MaxResults = maxResults; resultsList = findScu.Find(textBoxQueryScuLocalAe.Text, textBoxQueryScuRemoteAe.Text, textBoxQueryScuRemoteHost.Text, int.Parse(textBoxQueryScuRemotePort.Text), queryMessage); findScu.Dispose(); } foreach (DicomAttributeCollection msg in resultsList) { Logger.LogInfo(msg.DumpString); } } catch (Exception x) { Logger.LogErrorException(x, "Unable to perform query"); return; } }
/// <summary> /// Called by the framework when the user clicks the "apply" menu item or toolbar button. /// </summary> public void SeriesQuery() { string callingAE = ServerTree.GetClientAETitle(); List <SeriesItem> SeriesList = new List <SeriesItem>(); #region remote datastore // If remote data store, need to query server for series level information if (!this.Context.SelectedServerGroup.IsLocalDatastore) { // Loop through all selected servers foreach (Server node in this.Context.SelectedServerGroup.Servers) { DicomAttributeCollection dicomAttributeCollection = new DicomAttributeCollection(); // Query on "Series" Level dicomAttributeCollection[DicomTags.QueryRetrieveLevel].SetStringValue("SERIES"); string studyUID = this.Context.SelectedStudies[0].StudyInstanceUid; dicomAttributeCollection[DicomTags.StudyInstanceUid].SetStringValue(studyUID); dicomAttributeCollection[DicomTags.SeriesDescription].SetNullValue(); dicomAttributeCollection[DicomTags.SeriesInstanceUid].SetNullValue(); dicomAttributeCollection[DicomTags.SeriesNumber].SetNullValue(); dicomAttributeCollection[DicomTags.Modality].SetNullValue(); dicomAttributeCollection[DicomTags.Date].SetNullValue(); dicomAttributeCollection[DicomTags.Time].SetNullValue(); dicomAttributeCollection[DicomTags.RepetitionTime].SetNullValue(); IList <DicomAttributeCollection> resultsList; StudyRootFindScu findScu = new StudyRootFindScu(); List <string> seriesUIDs = new List <string>(); resultsList = findScu.Find( callingAE, node.AETitle, node.Host, node.Port, dicomAttributeCollection); findScu.CloseAssociation(); findScu.Dispose(); foreach (DicomAttributeCollection msg in resultsList) { string text = msg[DicomTags.SeriesInstanceUid]; Platform.Log(LogLevel.Info, text); SeriesItem series = new SeriesItem(); series.SeriesNumber = msg[DicomTags.SeriesNumber]; series.SeriesDescription = msg[DicomTags.SeriesDescription]; series.StudyInstanceUID = msg[DicomTags.StudyInstanceUid]; series.SeriesInstanceUID = msg[DicomTags.SeriesInstanceUid]; series.Modality = msg[DicomTags.Modality]; series.Date = msg[DicomTags.Date]; series.Time = msg[DicomTags.Time]; //series.NumberOfSeriesRelatedInstances = int.Parse(msg[DicomTags.NumberOfSeriesRelatedInstances].ToString()); SeriesList.Add(series); } _component = new SeriesBrowserComponent(SeriesList, node); _shelf = ApplicationComponent.LaunchAsShelf(this.Context.DesktopWindow, _component, "Series Browser", ShelfDisplayHint.DockBottom | ShelfDisplayHint.DockAutoHide); _shelf.Closed += Shelf_Closed; } } #endregion #region Local Datastore // If local datastore, can obtain series information by building study tree else { IImageViewer viewer = new ImageViewerComponent(); StudyTree studyTree = viewer.StudyTree; // Add selected objects studies to study tree foreach (StudyItem selectedstudy in this.Context.SelectedStudies) { string studyUID = selectedstudy.StudyInstanceUid; int numberOfSops = LocalStudyLoader.Start(new StudyLoaderArgs(studyUID, null)); for (int i = 0; i < numberOfSops; ++i) { Sop imageSop = LocalStudyLoader.LoadNextSop(); studyTree.AddSop(imageSop); } } foreach (Patient patient in studyTree.Patients) { foreach (Study study in patient.Studies) { foreach (Series series in study.Series) { SeriesItem seriesitem = new SeriesItem(); seriesitem.SeriesNumber = series.SeriesNumber.ToString(); seriesitem.SeriesDescription = series.SeriesDescription; seriesitem.StudyInstanceUID = study.StudyInstanceUid; seriesitem.SeriesInstanceUID = series.SeriesInstanceUid; seriesitem.Modality = series.Modality; seriesitem.Date = series.SeriesDate; seriesitem.Time = series.SeriesTime; //series.NumberOfSeriesRelatedInstances = int.Parse(msg[DicomTags.NumberOfSeriesRelatedInstances].ToString()); seriesitem.NumberOfSeriesRelatedInstances = series.Sops.Count.ToString(); SeriesList.Add(seriesitem); } _component = new SeriesBrowserComponent(SeriesList, null); _shelf = ApplicationComponent.LaunchAsShelf(this.Context.DesktopWindow, _component, DicomDataFormatHelper.PersonNameFormatter(patient.PatientsName), ShelfDisplayHint.DockBottom | ShelfDisplayHint.DockAutoHide); _shelf.Closed += Shelf_Closed; } } } #endregion }
private void buttonQueryScuSearch_Click(object sender, EventArgs e) { XmlDocument theDoc = new XmlDocument(); try { theDoc.LoadXml(textBoxQueryMessage.Text); InstanceXml instanceXml = new InstanceXml(theDoc.DocumentElement, null); DicomAttributeCollection queryMessage = instanceXml.Collection; if (queryMessage == null) { Logger.LogError("Unexpected error parsing query message"); } int maxResults; if (!int.TryParse(textBoxQueryScuMaxResults.Text, out maxResults)) maxResults = -1; IList<DicomAttributeCollection> resultsList; if (comboBoxQueryScuQueryType.SelectedIndex == 0) { StudyRootFindScu findScu = new StudyRootFindScu(); findScu.MaxResults = maxResults; resultsList = findScu.Find(textBoxQueryScuLocalAe.Text, textBoxQueryScuRemoteAe.Text, textBoxQueryScuRemoteHost.Text, int.Parse(textBoxQueryScuRemotePort.Text), queryMessage); findScu.Dispose(); } else { PatientRootFindScu findScu = new PatientRootFindScu(); findScu.MaxResults = maxResults; resultsList = findScu.Find(textBoxQueryScuLocalAe.Text, textBoxQueryScuRemoteAe.Text, textBoxQueryScuRemoteHost.Text, int.Parse(textBoxQueryScuRemotePort.Text), queryMessage); findScu.Dispose(); } foreach (DicomAttributeCollection msg in resultsList) { Logger.LogInfo(msg.DumpString); } } catch (Exception x) { Logger.LogErrorException(x, "Unable to perform query"); return; } }
/// <summary> /// Called by the framework when the user clicks the "apply" menu item or toolbar button. /// </summary> public void SeriesQuery() { string callingAE = ServerTree.GetClientAETitle(); List<SeriesItem> SeriesList = new List<SeriesItem>(); #region remote datastore // If remote data store, need to query server for series level information if (!this.Context.SelectedServerGroup.IsLocalDatastore) { // Loop through all selected servers foreach (Server node in this.Context.SelectedServerGroup.Servers) { DicomAttributeCollection dicomAttributeCollection = new DicomAttributeCollection(); // Query on "Series" Level dicomAttributeCollection[DicomTags.QueryRetrieveLevel].SetStringValue("SERIES"); string studyUID = this.Context.SelectedStudies[0].StudyInstanceUid; dicomAttributeCollection[DicomTags.StudyInstanceUid].SetStringValue(studyUID); dicomAttributeCollection[DicomTags.SeriesDescription].SetNullValue(); dicomAttributeCollection[DicomTags.SeriesInstanceUid].SetNullValue(); dicomAttributeCollection[DicomTags.SeriesNumber].SetNullValue(); dicomAttributeCollection[DicomTags.Modality].SetNullValue(); dicomAttributeCollection[DicomTags.Date].SetNullValue(); dicomAttributeCollection[DicomTags.Time].SetNullValue(); dicomAttributeCollection[DicomTags.RepetitionTime].SetNullValue(); IList<DicomAttributeCollection> resultsList; StudyRootFindScu findScu = new StudyRootFindScu(); List<string> seriesUIDs = new List<string>(); resultsList = findScu.Find( callingAE, node.AETitle, node.Host, node.Port, dicomAttributeCollection); findScu.CloseAssociation(); findScu.Dispose(); foreach (DicomAttributeCollection msg in resultsList) { string text = msg[DicomTags.SeriesInstanceUid]; Platform.Log(LogLevel.Info, text); SeriesItem series = new SeriesItem(); series.SeriesNumber = msg[DicomTags.SeriesNumber]; series.SeriesDescription = msg[DicomTags.SeriesDescription]; series.StudyInstanceUID = msg[DicomTags.StudyInstanceUid]; series.SeriesInstanceUID = msg[DicomTags.SeriesInstanceUid]; series.Modality = msg[DicomTags.Modality]; series.Date = msg[DicomTags.Date]; series.Time = msg[DicomTags.Time]; //series.NumberOfSeriesRelatedInstances = int.Parse(msg[DicomTags.NumberOfSeriesRelatedInstances].ToString()); SeriesList.Add(series); } _component = new SeriesBrowserComponent(SeriesList, node); _shelf = ApplicationComponent.LaunchAsShelf(this.Context.DesktopWindow, _component, "Series Browser", ShelfDisplayHint.DockBottom | ShelfDisplayHint.DockAutoHide); _shelf.Closed += Shelf_Closed; } } #endregion #region Local Datastore // If local datastore, can obtain series information by building study tree else { IImageViewer viewer = new ImageViewerComponent(); StudyTree studyTree = viewer.StudyTree; // Add selected objects studies to study tree foreach (StudyItem selectedstudy in this.Context.SelectedStudies) { string studyUID = selectedstudy.StudyInstanceUid; int numberOfSops = LocalStudyLoader.Start(new StudyLoaderArgs(studyUID, null)); for (int i = 0; i < numberOfSops; ++i) { Sop imageSop = LocalStudyLoader.LoadNextSop(); studyTree.AddSop(imageSop); } } foreach (Patient patient in studyTree.Patients) { foreach (Study study in patient.Studies) { foreach (Series series in study.Series) { SeriesItem seriesitem = new SeriesItem(); seriesitem.SeriesNumber = series.SeriesNumber.ToString(); seriesitem.SeriesDescription = series.SeriesDescription; seriesitem.StudyInstanceUID = study.StudyInstanceUid; seriesitem.SeriesInstanceUID = series.SeriesInstanceUid; seriesitem.Modality = series.Modality; seriesitem.Date = series.SeriesDate; seriesitem.Time = series.SeriesTime; //series.NumberOfSeriesRelatedInstances = int.Parse(msg[DicomTags.NumberOfSeriesRelatedInstances].ToString()); seriesitem.NumberOfSeriesRelatedInstances = series.Sops.Count.ToString(); SeriesList.Add(seriesitem); } _component = new SeriesBrowserComponent(SeriesList, null); _shelf = ApplicationComponent.LaunchAsShelf(this.Context.DesktopWindow, _component, DicomDataFormatHelper.PersonNameFormatter(patient.PatientsName), ShelfDisplayHint.DockBottom | ShelfDisplayHint.DockAutoHide); _shelf.Closed += Shelf_Closed; } } } #endregion }