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

Acknowledge which query providers list DICOM meta-data #122

Closed
Enet4 opened this issue Sep 23, 2015 · 5 comments
Closed

Acknowledge which query providers list DICOM meta-data #122

Enet4 opened this issue Sep 23, 2015 · 5 comments

Comments

@Enet4
Copy link
Collaborator

Enet4 commented Sep 23, 2015

Indexer plugins exist to serve two key purposes:

  1. To make an abstraction over the underlying database technology, thus being able to benchmark different DICOM indexation techniques. Query providers bound to this indexer will have the necessary logic to retrieve DICOM data from such a database.
  2. To obtain different interpretations over the DICOM data (e.g. applying CBIR, statistical analysis, ...). Query providers will allows us to retrieve the resulting data (e.g. feature vectors).

With that in mind, we know that some indices will hold DICOM data, while others will not. Only the query providers that hold DICOM should be selected for operations such as retrieving DIM identifiers (StudyInstanceUID, SeriesInstanceUID, SOPInstanceUID), and all DICOM-specific protocols (Q/R, WADO, ...). However, right now there's no way to know where DICOM data is kept. Even if some query providers may understand our Lucene-based queries, they might not give us the intended results, and our DICOM service implementations could (in the worst case) fail against this situation.

The actual request: To have a means in the Dicoogle core to identify which of the query providers are DICOM providers. A few possible approaches:

  • Have a list of DICOM providers in the global configuration file. It requires manual intervention on installing a new plugin (this piece of information is fixed and plugin-dependant), but requires no modification to the SDK or existing plugins. Added: If no query provider was listed here, then it is assumed that all providers are DICOM.
  • Add a new method to QueryInterface with a signature similar to bool providesDICOM(), thus leaving the flag defined by the plugin itself, as it's meant to be. Unfortunately, this demands a change to the SDK, as well as existing plugins.
  • A mid-term: Have a flag in the plugin's local configuration file. The plugin can force it to a constant value and the core can read these files too. Only requires modifying the plugin controller and our DICOM providers.

Have any additional ideas? What do you think?

@Enet4
Copy link
Collaborator Author

Enet4 commented Apr 16, 2016

I will take the first approach while keeping the same behaviour if no specific configuration was given.

Have a list of DICOM providers in the global configuration file. It requires manual intervention on installing a new plugin (this piece of information is fixed and plugin-dependant), but requires no modification to the SDK or existing plugins. If no query provider was listed here, then it is assumed that all providers are DICOM.

@bastiao
Copy link
Member

bastiao commented Apr 16, 2016

After the discussion, and agreement, I will only highlight the points for the record:
if there are no defined settings, all the plugins will be assumed as DICOM.
Next major jump, we may think to adopt SDK changes.

@bastiao bastiao added this to the 3.0.0 milestone May 27, 2016
@Enet4 Enet4 self-assigned this Sep 29, 2016
@Enet4
Copy link
Collaborator Author

Enet4 commented Mar 16, 2018

The new configuration property dim-provider allows us to specify which query sources are DICOM. All that's left to do is rely on this internally for certain services (DICOM network services, /dump, possibly others).

@Enet4
Copy link
Collaborator Author

Enet4 commented Apr 2, 2019

#342 Makes it so that Dicoogle /search and /dump services acknowledge DICOM sources only. To complete this issue, we would need to integrate this to the remaining services (DICOM query/retrieve comes to mind).

@Enet4
Copy link
Collaborator Author

Enet4 commented Sep 30, 2021

I have decided to close this as resolved by #342 and delegate the application of DIM provider information to DICOM services in #513.

@Enet4 Enet4 closed this as completed Sep 30, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants