Pre fetch of WADO objects - dcm4che/dcm4chee-arc-light GitHub Wiki

Overview

By enabling this feature, user can configure the pre fetch of WADO objects by a proxy server. Proxy server caches the WADO responses and makes these objects available as and when required by the Viewer.

Use Cases with Configuration

Note : Wado Exporter code and configuration has been redesigned as part of issue wherein WADO service specific Web Application are required. Normally the use cases for WADO export may be to

  1. Pre-fetch the image and/or metadata on some cache server for faster access. In such use cases it is required that the user configure a separate device and configure HTTP Protocol specific connections on it which are then used for referencing in Web Application to be configured on this new created device used as a cache device.
  2. Use this exporter to create copies of images and/or metadata files on same device to be used for some processing by a third party application. The configurations explained below are for this use case.
    • As the default configuration of archive device dcm4chee-arc does not contain any HTTP Protocol specific connections, create one by going to Configuration -> Devices -> dcm4chee-arc -> Child Objects -> Network Connections -> Add new network connections(+). Specify Name, Hostname and Port and Save. Then go to its Extensions -> Network Connection Extension -> Add dcm4che proprietary Network Connection attributes (+). Select HTTP as Protocol and Save. Repeat the step if service should be invoked over secured HTTP i.e. https. Additionally, for https connection configure also the required TLS cipher suites.
    • Reference the new created HTTP connection(s) in the 2 pre-configured web Applications DCM4CHEE and DCM4CHEE-WADO which contain the WADO service classes WADO_RS and WADO_URI respectively, as these web applications have been used in the explained configurations.
    • Refer Keycloak Client and reference the Keycloak Client ID in the web applications if secured archive WADO services are invoked.
    • Below configurations explain settings both for pre/post archive version 5.23.2 where one may want to prefetch bulkdata or metadata or both

Storage

This section shall be referred with second use case explained above. It briefly explains configuration of Storage of objects' JPEG image data and/or metadata invoked using WADO services on a file system.

Configure storage descriptors as explained in Generic Storage. Sample configurations for the wado-jpeg and/or wado-metadata storage directories are shown below :

Using Archive UI :

  • Go to Configuration page -> Devices tab -> dcm4chee-arc -> Device Extension -> Archive Device Extension -> Child Objects -> Storage Descriptors

  • For Prefetch WADO Bulkdata and Prefetch WADO Bulkdata and Metadata add a new Storage Descriptor with following field values :

    Storage ID : wado-jpeg
    Storage URI : ${jboss.server.data.url}/wado/
    Storage Property : pathFormat={0020000D}/{0020000E}/{00080018}/{00081160}.jpeg
    Storage Property : checkMountFile=NO_MOUNT
    
  • For Prefetch WADO Metadata and Prefetch WADO Bulkdata and Metadata add a new Storage Descriptor with following field values :

    Storage ID : wado-json
    Storage URI : ${jboss.server.data.url}/wado/
    Storage Property : pathFormat={0020000D}.json
    Storage Property : checkMountFile=NO_MOUNT
    

Using LDAP :

  • For Prefetch WADO Bulkdata and Prefetch WADO Bulkdata and Metadata

      version: 1
      
      dn: dcmStorageID=wado-jpeg,dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
      objectClass: dcmStorage
      dcmStorageID: wado-jpeg
      dcmURI: ${jboss.server.data.url}/wado/
      dcmProperty: pathFormat={0020000D}/{0020000E}/{00080018}/{00081160}.jpeg
      dcmProperty: checkMountFile=NO_MOUNT
    
  • For Prefetch WADO Metadata and Prefetch WADO Bulkdata and Metadata

      version: 1
      
      dn: dcmStorageID=wado-json,dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
      objectClass: dcmStorage
      dcmStorageID: wado-json
      dcmURI: ${jboss.server.data.url}/wado/
      dcmProperty: pathFormat={0020000D}.json
      dcmProperty: checkMountFile=NO_MOUNT
    

One may refer to Storage Descriptor to understand the description of attributes.

Go to the Control tab on Configuration page in archive UI and reload the configuration.

Keycloak Client

Following configurations are only needed if the WADO export is used with secured version of archive (UI and RESTful services secured). These configurations are required to pass the Authorization Bearer Token on invocation of WADO requests.

  • Login to Keycloak's admin console at http[s]://<host>:<port>/auth/admin/dcm4che/console

    • Create a new client

      Client Id : wado-export  (This will be required for dcmKeycloakClientID in LDAP Configuration)
      Access Type : Confidential
      Service Accounts Enabled : ON
      Standard Flow Enabled : OFF
      Note down its Secret-Key under the Credentials tab (This will be required for dcmKeycloakClientSecret in LDAP Configuration)
      
    • Once the client is created, go to the Service Account Roles tab and assign the role user.

  • Configure a Keycloak Client in archive

    • Using Archive UI :

      • Go to Configuration page -> Devices tab -> dcm4chee-arc -> Device Extension -> Child Objects -> Keycloak Clients

      • Add a new Keycloak Client with following field values :

         Keycloak Client ID : wado-export
         Server URL : http://localhost:8880/auth
         Keycloak Realm : dcm4che
         Keycloak grant type : client_credentials
         Keycloak Client secret : 1e04f856-9c76-46f3-91ae-c5624a82fa6d
         TLS Allow Any Hostname : True
        
    • Using LDAP :

      version: 1
      
      dn: dcmKeycloakClientID=wado-export,dicomDeviceName=dcm4chee-arc,cn=Devices,cn=DICOM Configuration,dc=dcm4che,dc=org
      objectClass: dcmKeycloakClient
      dcmKeycloakClientID: wado-export
      dcmKeycloakRealm: dcm4che
      dcmURI: http://localhost:8880/auth
      dcmKeycloakGrantType: client_credentials
      dcmKeycloakClientSecret: 1e04f856-9c76-46f3-91ae-c5624a82fa6d
      dcmTLSAllowAnyHostname: TRUE
      

NOTE : Server URL or dcmURI value shall be same as the Keycloak's auth server URL that was configured when setting up the secured archive.

Go to the Control tab on Configuration page in archive UI and reload the configuration.

Tests and Verification

  • Store studies to archive using storescu tool
  • Once the configured Export Delay and Export Polling Interval is reached, verify in Monitoring page -> Export tab by selecting the configured Exporter ID to check if the WADO export task is COMPLETED. If no Export Rule, was configured, one may still use archive UI to use WADO exporter to export the objects.
  • Verify at the WADO retrieve destination or optionally in the configured wado storages that the jpegs / metadata were retrieved.
⚠️ **GitHub.com Fallback** ⚠️