Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add search_series and search_study #10

Open
yujanshrestha opened this issue Aug 6, 2018 · 7 comments
Open

Add search_series and search_study #10

yujanshrestha opened this issue Aug 6, 2018 · 7 comments
Assignees

Comments

@yujanshrestha
Copy link
Member

yujanshrestha commented Aug 6, 2018

In an identical api tosearch_patients, provide APIs for Study and Series level queries.

 def search_series(self, search_query, additional_tags=None):
    pass

 def search_study(self, search_query, additional_tags=None):
    pass

At each level, also return the additional query / retrieve attributes as found here. http://dicom.nema.org/medical/dicom/2017c/output/chtml/part04/sect_C.3.4.html

For example, for the search_study query return the Number of Study Related Series and for the search_series return the Number of Series Related Instances

@yujanshrestha
Copy link
Member Author

@dillonwilliams these APIs will be needed by the autoregister project.

@yujanshrestha
Copy link
Member Author

@orwonthe FYI this ticket is for autoregister.

@dillonwilliams
Copy link
Contributor

What fields would the search_query apply to? For example, the patient search queries on PatientID and PatientName.

@yujanshrestha
Copy link
Member Author

I see. My intention was to just pass in the search dataset directly. I think this will actually be trivial. In the case of pynetdicom:

 def search_series(self, query_dataset, additional_tags=None):
    query_dataset.QueryRetrieveLevel = 'SERIES'
    return assoc.send_c_find(query_dataset, query_model='S')

 def search_study(self, query_dataset, additional_tags=None):
    query_dataset.QueryRetrieveLevel = 'STUDY'
    return assoc.send_c_find(query_dataset, query_model='S')

@johndgiese
Copy link
Contributor

@yujanshrestha in this example code, where do we use additional_tags?

@yujanshrestha
Copy link
Member Author

We can probably remove it entirely. I think the convention is add the attributes into query_dataset but with empty values.

The implementation for this should be trivial, writing tests for it may be a bit more involved.

@dillonwilliams
Copy link
Contributor

It looks like we can get rid of the NumberOfImagesInSeries private tag and try to get the NumberOfSeriesRelatedInstances tag from the PACS instead. If not in the PACS, it should count up the instances returned with an IMAGE query like it does for the private tag now and put that in NumberOfSeriesRelatedInstances instead.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants