i2b2 Web Client
Space shortcuts
Space Tools

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

All deployments of the i2b2 web client will require modification of the Hive Connection configuration file. This configuration file is located at /i2b2_config_data.js. An example file is as follows:

{
urlProxy    urlProxy: "http://localhost/services/proxy/Service.asmx/webProxy" ,
urlFramework    urlFramework: "js-i2b2/",
   //-------------------------------------------------------------------------------
   // THESE ARE ALL THE DOMAINS A USER CAN LOGIN TO
lstDomains    lstDomains: [
   { domain: "HarvardDemo",
      name: "VM Java 1.3 RC5",
      project: "Demo2",
      debug: true,
      urlCellPM: "http://services.i2b2.org/PM/rest/PMService/"
   },
   { domain: "HMS_JAVA" ,
      name: "Harvard Demo (Java 1.2)",
      debug: true,
      urlCellPM: "http://services.i2b2.org/PM/rest/PMService/"
   }
   //--------------------------------------------------------------------------------
}



The first configuration attribute urlProxy must be changed for every deployment. It should be set to point to your web proxy cell. In all cases it must be the same base URL (hostname and port) as the website that serves the default.htm file. For more information on the web Proxy communication with the hive please see the document called Web Client Architecture Guide.

Name

Null

Type

Description

urlProxy

N

String

The full path URL for the i2b2 web services proxy server.

urlFramework

N

String

The full path URL to the root js-i2b2 directory.

lstDomains

N

Array

An array containing 1 or more domain definition data objects.



The domain definition data object contains the following attributes for each data object:

Name

Null

Type

Description

domain

N

String

A short code used by the proxy server for the domain/group ID.

name

N

String

A human-readable string containing the domain's name.

urlCellPM

N

String

The full path URL that should be used by the back-end PM Cell.

project

Y

String

Login to a specific project without prompting the user to select one from a list.

isSHRINE

Y

Boolean

Should this domain use SHRINE processing functions?

debug

Y

Boolean

Are debugging messages logged? (uses additional memory).

...

The framework is aware of various code modules after they are registered in the main component list configuration file. This list is located within the /js-i2b2/i2b2_loader.js file in a section containing JSON-based configuration information which has the following structure:

// THESE ARE ALL THE CELLSTJAT THAT ARE INSTALLED ONTO THE SERVER
i2b2.hive.tempCellsList = [
   { code: "PM",
forceLoading    forceLoading: true // <------- this must be set to true for the PM cell!
   },
   { code: "ONT" } ,
   { code: "CRC" } ,
   { code: "ANALYSIS" ,
      forceLoading: true,
      forceConfigMsg: {
params

Wiki Markup
:  \[\]
}
      params: []
   }
  }
];



This JSON structure is used to register a list of cells / plug-ins that are able to be loaded if the user has been authorized to use them (via the data returned from the Project Management cell during successful login). The above code listing has information for registering the following cells / modules (in order):

...

For the framework to be able to properly load a plug-in module, information which defines the new module must be provided. This is accomplished by creating a JSON-based configuration file within the plug-in's root directory. An example would be located at:

             /js-i2b2/cells/plugins/examples/ExampHello/cell_config_data.js


This file would have the following structure:

// This file contains a list of all files that need to be loaded dynamically
// for this module. Every file in this list will be loaded after the module's Init()
// function is called
{
files

Wiki Markup
:\[
   files:[ "ExampHello.js" ],
css
Wiki Markup
:\[
   css:[ "ExampHello.css" ],
config    config: {
      // additional configuration variables that are set by the system
      short_name: "Hello World",
      name: "Example #1 - Hello World",
      description: "This plugin cell demonstrates how to register your plugin
with                  with the i2b2 thin-client framework and display simple HTML.",
      category: ["celless", "plugin", "examples"],
      plugin: {
isolateHtml          isolateHtml: false,
html          html: {
            source: 'injected_screens.html',
            mainDivId: 'ExampHello-mainDiv'
         }
      }
   }
}



The configuration file has three main parts to it:

...

Info
titleBe Careful

It is important to note that all version of Microsoft Internet Explorer limit the number of dynamically loaded style sheets to a total of 31 files. The web client framework uses several style sheets and each cell or plug-in may have dynamically loaded style sheets as well.


An important best practice is to only define one CSS file in your plug-in's configuration file.


To use more than one CSS file in your plug-in, create a CSS file to subsequently load your other CSS files using the @import (file.css) command.

...