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

Enable Study-level queries without requiring patient info #38

Closed
sjoerdk opened this issue Mar 23, 2023 · 4 comments
Closed

Enable Study-level queries without requiring patient info #38

sjoerdk opened this issue Mar 23, 2023 · 4 comments

Comments

@sjoerdk
Copy link
Owner

sjoerdk commented Mar 23, 2023

  • dicomtrolley version: 2.1.8

Description

The following code

searcher: DICOMQR

query = Query(
        min_study_date=datetime(year=2000, month=1, day=5),
        max_study_date=datetime(year=2000, month=1, day=5)

studies = searcher.find_studies(query)

Does not yield any results (studies =[]), even though this is a valid query and a study corresponding to these criteria actually exists.

Tried this on Agfa PACS DICOM-QR.

@sjoerdk
Copy link
Owner Author

sjoerdk commented Mar 23, 2023

The issue is probably that dicomtrolley uses the patient as root for the query retrieve model (see https://dicom.nema.org/dicom/2013/output/chtml/part04/sect_C.6.html)

@sjoerdk
Copy link
Owner Author

sjoerdk commented Mar 23, 2023

Did some reading and tests to find out what we are talking about.

  • The issues is tricky to pin down as it is unclear whether it is in dicomtrolley code, the implementation of the query standard in the specific server, or configuration issues on that server.
  • Preliminary tests reveal that using PatientRootQueryRetrieveInformationModelFind in DICOM-QR qeries is indeed causing queries without patientID to return nothing.

Studying https://dicom.nema.org/dicom/2013/output/chtml/part04/sect_C.6.html it seems there is no harm in switching to the Study level information model. In fact, this seems a better fit as throughout dicomtrolley the study, not the patient is the default root level of query and download.

@sjoerdk
Copy link
Owner Author

sjoerdk commented Mar 24, 2023

The following query works now for DICOMQR in dicomtrolley >= 2.2.0:

searcher: DICOMQR

query = Query(
        min_study_date=datetime(year=2000, month=1, day=5),
        max_study_date=datetime(year=2000, month=1, day=5)

studies = searcher.find_studies(query)

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

1 participant