PACS-Integration Weasis

Hi everyone :slight_smile:

I am currently trying to implement the Bahmni PACS-Integration Module with the Weasis Viewer. I now want to integrate the URL to the finished Study in the Bahmni Clinical Page, as described here. When I click on the link of the Order, the weasis call is made, however, the method of the call (as you can see in line 1 of the screenshot) is HTTP “HEAD”. This results in a 404 error.

When I manually change the HTTP Method to “GET” it works as expected. As I do not expect my Radiology department staff to perform the same procedure, I would kindly ask you for help:

How can I change the clinical/dashboard.json file, so the URL is called as “GET”?

This is what my dashboard.json looks like:

        "pacs":{  
            "orderType":"Radiology Order",
            "type":"pacsOrders",
            "translationKey":"DASHBOARD_TITLE_PACS_KEY",
            "displayOrder":8,
            "dashboardConfig":{  
                "pacsImageUrl":"http://10.181.135.102:8080/weasis-pacs-connector/IHEInvokeImageDisplay?requestType=STUDY&accessionNumber={{orderNumber}}",
                "numberOfVisits":4
            }
        },

Feel free to ask for further information :wink:

2 Likes

The use of HEAD is actually intention, so as to get only the header of the resource, without fetching the content, and allowing the client (say OVIYAM viewer) to subsequently make appropriate requests by inspecting the headers (e.g Content-Type).

We haven’t heard of this problem before. Can you provide more details like OS, Browser, versions etc?

2 Likes

Thanks a lot for your reply :slight_smile:

The OS of the Bahmni Server is CentOS 6.8. The DCM4CHEE PACS Server is Ubuntu 14.04. The Clients OS is Windows 7. The Browser is Chrome 60.0.3112.113.

Please note that the PACS server is not HTTPS secured.

The following configuration changes were used to solve our problem TEMPORARY:

  1. Change /opt/bahmni-web/etc/bahmniapps/clinical/clinical.min.693a7b99.js to make a GET Request instead of a HEAD Request The above one changed the HTTP status from 404 to 200.

  2. Install a Chrome Extension that enables Cross-Origin-Resource-Sharing

After applying both changes, I was able to successfully receive images from weasis. This is handeled via the download of a jnlp file that contains the link to the dicom resource.

BUT: I assume these changes as dirty. How can we make a clean way for Weasis to work? The Cross-Origin stuff must be related to my Weasis on the pacs server side, am I right about this?

1 Like

Did you install Dcm4Chee separately? Seems so, as the OS that you have mentioned is Ubuntu. I can think that the request from Bahmni UI is considered as going to a different server, and hence considered as different domain. You can actually think of the following

  • We use apache as proxy for all the other services. We don’t expose other services directly outside. You can do the same, from apache on the main server, have a proxy pass config to your ubuntu server. e.g. pacs.yourdomain.org You can then have a ssl conf in /etc/httpd/conf.d/dcm4chee_ssl.conf, and define proxypass rule defined there.

That should work

1 Like

Dear @angshuonline thank you for your help.

Yes, the DCM4CHEE Server is installed separatley. SSL indeed was part of the issue! After installing all the certificates the right way and enabling CORS support on the server, everything worked fine :slight_smile:

For future reference:

The good news: I got weasis to work! The bad news: The standard URL call does not work :disappointed_relieved: Instead I use:

"pacs":{
  "orderType":"Radiology Order",
  "type":"pacsOrders",
  "translationKey":"DASHBOARD_TITLE_PACS_KEY",
  "displayOrder":8,
  "dashboardConfig":{
  "pacsImageUrl":"https://10.181.135.103:8443/weasis-pacs-connector/weasis.jnlp?requestType=STUDY&cdb=/weasis&arg=$dicom:get%20-w%20https://10.181.135.103:8443/weasis-pacs-connector/manifest?accessionNumber={{orderNumber}}",
  "numberOfVisits":4
}

Explanation:

    https://10.181.135.103:8443/weasis-pacs-connector/weasis.jnlp?requestType=STUDY&cdb=/weasis&arg=$dicom:get%20-w%20https://10.181.135.103:8443/weasis-pacs-connector/manifest?accessionNumber={{orderNumber}}
    
    * 10.181.135.103...........IP Adress of the Weasis Installation
    * 8443.....................HTTPS Port
    * weasis-pacs-connector....servlet responsible for fetching DICOM images from the PACS
    * weasis.jnlp..............VERY IMPORTANT. The jnlp is called directly!!!
    * requestType=STUDY........Query for studies from the PACS (patientID,studyUID,accessionNumber,seriesUID,objectUID) can only be used once in whole URL
    * cdb=/weasis..............The codebase of all files called from the jnlp. The default code base weasis-pacs-connector does NOT work
    * arg=.....................This argument is the command called by weasis to display the DICOM image. It fetches the manifest file with the accesion Number as argument. The accessionNumber is replaced by Bahmni dynamically!

Background: The Viewer is called with an HTTP “HEAD” Request from Bahmni. This results in an error caused here. HTTP “GET” again, works fine.

The downside of this approach now is, that I do not get errors for non-existing studies, as the .jnlp file is always executed. I am going to contact the weasis team about this issue.

On the other side: What is the Bahmni-Team planning to do about the HTTP HEAD issue? Can anyone reproduce this?

DCM4CHEE: 2.18.1 Weasis: 2.0.7 Weasis PACS Connector:5.0.1

Here is my issue on the weasis-pacs-connector github repository:

I managed to compile a working version of weasis-pacs-connector, it now integrates with bahmni :heart_eyes: Here is my release:

I did not only update the HTTP HEAD method, I also integrated a 404 error for non-existing studies so Bahmni displays the correct error message, this is related to another issue i submitted on github :sunglasses:

I now use the following URL in dashboard.json

  "pacsImageUrl":"https://10.181.135.102:8443/weasis-pacs-connector/viewer?requestType=STUDY&accessionNumber={{orderNumber}}",

Closing this thread or not depends on whether the Bahmni developers say: “HTTP GET is the way to go” or the weasis developers say “we fix the HTTP HEAD issue”.

2 Likes