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

Configure Google Healthcare extension? #753

Closed
bcli4d opened this issue Aug 6, 2019 · 8 comments · Fixed by #989
Closed

Configure Google Healthcare extension? #753

bcli4d opened this issue Aug 6, 2019 · 8 comments · Fixed by #989
Assignees

Comments

@bcli4d
Copy link

bcli4d commented Aug 6, 2019

Our webapp presents the user with a list of DICOM studies related to cases in a cohort that the user has created based on various criteria. The user can then select a one more studies to view in separate tabs. In our current implementation, using OHIF 1.x, I just pass the study ID in the URL. BTW, we don't expose the studylist button.

I'm interested in moving to Google Healthcare as our PACS, but don't see a similar ability to command OHIF 2.0 to open a specific study in a chc datastore via the URL. Ideally, I think I'd like to be able to set the default project/location/dataset/dicomstore in a config file, but then override any of those in the URL. E.G., having configured the default project/location/dataset/dicomstore as chc-tcia/us-central1/foo/bar, I could then override the dataset/dicomstore in the URL. Something like:

https://viewer.ohif.org/dataset/tcga-brca/dicomstore/tcga-brca/StudyInstanceUID/1.3.6...

Is there any such functionality now or planned?

Thanks.

@pieper
Copy link
Member

pieper commented Aug 7, 2019

+1 I'd like that functionality too but I don't believe it's available yet. It would be great if someone could add an example.

@dannyrb
Copy link
Member

dannyrb commented Aug 7, 2019

This sounds like a nice value add. A couple of ways to approach this:

Option 1

  1. Configure a default Server
  2. Provide an alternative server config with query parameters

Option 2

  1. Configure multiple servers, identify one as the default
  2. Specify a configured server's alias or index in the URL to use instead of the default

If I'm missing the mark, or you think there are alternative implementations worth considering, don't hesitate to chime in ^_^

@pieper
Copy link
Member

pieper commented Aug 7, 2019

Hi @dannyrb - It would be ideal if one could visit the url @bcli4d provided and then get redirected to a google oauth login / permissions page. Then if you have permissions you would get redirected back to the ohif viewer with the correct tokens to access the study in the original url. There shouldn't need to be any custom servers involved.

@bcli4d
Copy link
Author

bcli4d commented Aug 7, 2019

Hi @dannyrb . We currently only expose TCGA images, but there are 21 TCGA cancer types with DICOM images, and Google Healthcare has dedicated a separate dataset/datastore to each in its TCIA public data set. If I understand your proposal, you would have us create and configure a server for each? (Not to mention the 56 other Google Healthcare dataset/datastores.)

@dannyrb
Copy link
Member

dannyrb commented Aug 7, 2019

@bcli4d, I didn't have a clear understanding of the problem. @pieper's comment is a much more appropriate solution.

@swederik
Copy link
Member

swederik commented Aug 12, 2019

This would definitely be a nice addition! We'd be happy to review a PR.

If I understand your proposal, you would have us create and configure a server for each? (Not to mention the 56 other Google Healthcare dataset/datastores.

You don't have to add all of them, you can add the one you need dynamically based on the URL. This is exactly what currently happens via the DICOM Store picker. It erases all other servers and adds a DICOMWeb server for the specific DICOM Store when it is selected, and makes that server active:

const servers = [
{
name: data.dicomStore,
imageRendering: 'wadors',
thumbnailRendering: 'wadors',
qidoSupportsIncludeField: false,
type: 'dicomWeb',
qidoRoot: data.qidoRoot,
wadoRoot: data.wadoRoot,
wadoUriRoot: data.wadoUriRoot,
active: true,
},
];
this.props.setServers(servers);

I think you would need to do this:

  • Add a custom route for '/dataset'/ here: (
    const routes = [
    {
    path: '/local',
    Component: ViewerLocalFileData,
    },
    {
    path: '/viewer',
    Component: StandaloneRouting,
    },
    ) if enableGoogleCloudAdapter is true (
    if (window.config.enableGoogleCloudAdapter) {
    healthCareApiWindows = (
    <ConnectedDicomStorePicker
    isOpen={this.state.modalComponentId === 'DicomStorePicker'}
    onClose={this.closeModals}
    />
    );
    )
  • The custom route component parses dataset/tcga-brca/dicomstore/tcga-brca (I think you would need to include the project as well, or make that configurable somewhere?) and calls setServers. It then parses the rest of the URL (e.g. IHEInvokeImageDisplay) and displays the Viewer or Study List.

If you have configured the OIDC settings then the redirect behaviour should work automatically.

We haven't planned to implement this, but we would be happy to review a PR.

Hope that helps!

@bcli4d
Copy link
Author

bcli4d commented Aug 13, 2019

Erik,

Thanks for the suggestions. I think I understand what you propose. I don't have any React experience so might be back for help!

Regards,
Bill

@dannyrb
Copy link
Member

dannyrb commented Sep 8, 2019

Related to #790
Scoped here: #753 (comment)
Added to backlog with Story 🙌 label

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

Successfully merging a pull request may close this issue.

5 participants