Page History
...
Release 1.7.
...
Release Date: October 31, 2019
Release Summary
Release 1.7.12 contains solutions for providing 12 contains solutions for providing an easier install solution of i2b2, supporting various redesigned Find Terms, totalnum counting scripts, new Authentication protocols, integration of and REDCAP import. Also Also included are are other enhancements to i2b2Weblcient, new database scripts the i2b2 Webclient, the ACT ontology, and bug fixes.
After reading this documentation, please go to the Quick Upgrade Guide for the details about upgrading your i2b2 software. If you are installing from scratch, refer instead to the Quick Install Guide (and optionally the full i2b2 Installation Guide).
i2b2 Release 1.7.12
Release Date: December, 2019
Table of Contents |
---|
Highlight of Features
...
Backend Features
- Easier Install
- Pre-built War file for easier distributions of the application
- Properties files are moved from static files to a table in the database
- Authentication protocol support for OKTA , and NTLM v2Provide database .
- Database scripts to update generate Totalnum counts for Ontology Terms for POSTGESSQLPOSTGRESQL, ORACLE and SQL SERVER databases.
- Enhanced Webclient Find Terms functionality-
- REDCap data import into i2b2, with ontology creation from REDCap forms
- Documentation updates for Apache Webserver timeout settings for previous queries run.
Frontend Features
Redesigned Find Terms By Name
- Find terms shows the terms' contextual hierarchy, and terms that are children of other search results are not returned. Shown here: 1.7.11 (left) vs. 1.7.12 (right)
- Right-clicking on a term and then "Find Term in Tree" shows the entire hierarchy around the selected term.
New Webclient Documentation
Included in the client and also on the Webclient Community Wiki page.
- Featuring:
- 3-minute screencast tutorial
- Better overviews and guideposts
- More task-oriented teaching
Improved view of Left Pane in
...
maximized mode
In maximized mode, the left pane now makes all tabs accessible.
Larger Query Results Panel view after Query run
...
Installation Note
The 1.7.11 Release Notes apply to you if you are upgrading your existing i2b2 system from an earlier version of the i2b2 software.
...
Upgrading an existing i2b2 (currently installed at your site)
...
Please go to the Upgrade Notes section for the details about upgrading your i2b2 software.
...
Upgrading your i2b2 in a SHRINE network
...
Please read the information in the SHRINE Networks section before proceeding.
...
Installing a new instance of i2b2. (Never installed it before)
...
We recommend you refer to the i2b2 Installation Guide found on the i2b2 Community Wiki
The install guide will take you through the entire installation process.
Upgrade Notes
Information about upgrading i2b2 to version 1.7.12 can be found in this section of the release notes.
i2b2 Components
In release 1.7.12 the following i2b2 components contain changes and therefore need to be updated when upgrading your i2b2 environment.
...
Database Drivers
The JDBC drivers were updated to the following versions.
...
Upgrade Paths
The i2b2 now provides two options for upgrading your i2b2 server.
- Continue to download the source code provided in the zip file released on www.i2b2.org/software
- Install the precompiled JAR files onto your existing i2b2 server to upgrade it to 1.7.11.
...
Upgrade Software
...
Software page (i2b2 Website)
...
Software page (i2b2 Website)
...
Software page (i2b2 Website)
...
Database Changes
Release 1.7.12 involves a few changes to the i2b2 Database. Included totalnum When a query with breakdowns has finished, the results panel temporarily expands slightly to accommodate the breakdown graphs display.
Community-Contributed Features
Contribution | Contributor | |
---|---|---|
ACT Technology and Data Harmonization Team University of Pittsburgh | ||
Easier-to-read counts | Nick Brown and Griffin Weber Beth Israel Deaconess Medical Center | |
Robert Bradford University of North Carolina | ||
Totalnum in find terms | Mauro Bucalo University of Pavia | |
Visual Design of new Find Terms | Leaf Team University of Washington | |
Totalnum Counter for Postgres | Dan Vianello Center for Biomedical Informatics, Washington University in St. Louis | (Part of overall totalnum scripts in this release.) |
Feature Configuration
Anchor | ||||
---|---|---|---|---|
|
Easier i2b2 Install
The i2b2 server can now be installed using a pre-built war file instead of having to build it from source, or the war file can be built from source much more easily. More information is in the updated Installation Guide. The properties files are now stored in the database.
Anchor Authentication-protocol-support Authentication-protocol-support
Authentication Protocol Support for NTLM2/OKTA
User Set up with OKTA Configuration: On the Admin page, under Manage Users,
Add a Parameter domain and assign the values as below. Parameter value will be your institution domain name.
Add a second parameter domain_controller as below. Parameter value will be your institution domain_controller value
Add the final parameter authentication_method as below. Parameter value will be OKTA
User Set up with NTLM2 Configuration: On the Admin page, under Manage Users,
Add a Parameter domain and assign the values as below. Parameter value will be your institution domain name.
Add a second parameter domain_controller as below. Parameter value will be your institution domain_controller value
Add the final parameter authentication_method as below. Parameter value will be NTLM2
RedCap Import Setup Anchor redcap redcap
redcap | |
redcap |
Currently, the following REDCAP Features are supported in i2b2.
- Project level :
- Only one unique redcap project id can be assigned to each i2b2 project( system finds the first project it encounters and assigns it, so two projects cannot have same REDCAP project id:
- Form level:
- Renaming a Form in Redcap will create a new record in table access instead of updating the original record which means in i2b2 the original survey will still show in Ontology in addition to creating the renamed survey as a new Ontology item.
- On adding a new Field/editing a field in the REDCAP form, the form needs to be explicitly associated with the record again to take effect in i2b2
- Data triggers happen only on Form SAVE button.
- Only Form SAVE as a URL survey or Admin edit/add record Saves, triggers i2b2 Ontology creation. Other forms of Form creation in REDCAP- by Data import tool, API format, will not trigger Ontology creation in i2b2)
- Ontology is only displayed in Tree structure format in i2b2. Pop up display (sometimes called query-by-value) is not supported. (example as below)
- There is no mapping of records submitted in REDCAP to existing patient_ids in i2b2. The scope of this release is limited to adding new record rows in Observation_fact table and Updating the fields of records added.
- Field level:
- The following project fields from REDCAP are supported in i2b2.
- TEXT BOX
- CHECKBOX
- RADIO BUTTON
- DROPDOWN
- YES-NO
- TRUE-FALSE
- SLIDER / VISUAL ANALOG SCALE
- DESCRIPTIVE TEXT
- NOTES BOX
- SIGNATURE
- DYNAMIC QUERY(SQL)
- Text box (Short text)Number and Date/Time ) with Validation capability in REDCAP - validation will work only as a simple text String search in i2b2
- Check box, Multiple Choice , Yes-No, True-False Form fields will appear as a Tree format in i2b2 ( Popup display is not supported)
- The following project fields from REDCAP are supported in i2b2.
REDCAP SETUP CONFIGURATION
1) Set Project Params (PM_PROJECT_PARAM)
Name | Value | Description |
---|---|---|
REDCAP_TOKEN_PID_{pid} | (7B42348B7C51123432048B51EAA) | Required:
|
REDCAP_SURVEY_PROJECT | (pid) | Required: Set the Value parameter to the pid value from the Redcap project url. |
REDCAP_ONTOLOGY_REFRESH | Y | Optional, Defaults to Y N - Do Not regenerate the metadata ontology. NOTE: When first setting up i2b2/redcap this needs to be set to Y at least once or the ontology will not be created. |
REDCAP_ROOT_ONTOLOGY | \REDCAP\ | Optional, Defaults to \REDCAP\ |
REDCAP_ONTOLOGY_FORMAT | tree | Optional, Defaults to tree tree - All enumerated values, Yes/No will be children on the ontology The only exception is items with checkbox, which will always be a popup |
RECAP_PROTECTED_ROLE | DATA_PROT | Optional, Defaults to DATA_PROT If this redcap form has the identified value set to true, then this ontology will be protected and only users with the following i2b2 access role will be able to access it. |
2) On the redcap side, set the Data Entry Trigger, it is under Project Setup → in Enable optional modules and customizations, select Additional customizations → Data Entry Trigger, and enter:
http://{i2b2 url}/i2b2/services/QueryToolService/redcapPush
Click Test to verify connection
3) Give Editor role to the project for AGG_SERVICE_ACCOUNT( optional DATA_PROT, DEID, LDS)
4) Submit a form and check to see if the ontology was created.
Totalnum Scripts Setup
Anchor | ||||
---|---|---|---|---|
|
- In the Release_1-7/NewInstall/Metadata/ run the ant script to create the stored procedures.
- POSTGRESQL : ant -f data_build.xml db_metadata_run_total_count_postgresql
- ORACLE : ant -f data_build.xml db_metadata_run_total_count_oracle
- SQL SERVER : ant -f data_build.xml db_metadata_run_total_count_sqlserver
- Execute the RunTotalNum stored procedure on your database. This can take several hours.
Example Usage:
Oracle:
begin
RUNTOTALNUM('observation_fact','i2b2demodata');
end;
Note: If you get the error as: ERROR at line 1: ORA-01031: insufficient privilege, then run the command:
grant create table to (DB USER)
SQL server:
exec RUNTOTALNUM
PostgreSQL:
select RUNTOTALNUM('observation_fact','public')
-- (replace 'public' by the schema name for the fact table)
-- If using a schema other than public for metadata, you might need to run "set search_path to 'i2b2metadata','public' " first as well
3. When finished, verify it is complete by checking that c_totalnum columns in your ontology tables contain numbers (not nulls).
These total counts will be visible in the ontology browser in the web client.
ACT Ontology Setup
Anchor | ||||
---|---|---|---|---|
|
This will allow you to install the ACT ontology as a separate project in i2b2. Note that this will create a project with ONLY the ontology - no data. At this time, using the demodata with the ACT ontology is not supported. You will need to load your own data to run queries using the ontology.
- In the Release_1-7/NewInstall/Metadata/db.properties file change the db.project from demo to act
- Create new Project ACT in the Admin tool
- Add AGG SERVICE Account to the Project
- Add new dblookup-row with parameters under CRC, Ontology and workplace to set up the project path( example as in below)
- Run the ant script against create_metadata_tables_release_1-7 and db_metadata_load_data.
This will create the new ACT Ontology structure under project ACT.
Using Extended Query-By-Value Flags Anchor flags flags
flags | |
flags |
Warning Box |
---|
This is a community contributed feature, turned off by default, and has only been minimally tested by the core i2b2 team. |
An expanded set of lab flag values can be easily modified by users to support their needs or expanded to the full set of HL7/LOINC flag values. The expanded list is toggleable via an added config setting in the i2b2_ui_config.js. (Note: Only numeric lab results have the flag functionality included.)
With the expanded set of lab values, the base 'A','L','H' are omitted to prevent collisions with things like "CH" (Critical High) or "CL" (Critical Low) due to the indexOf
function call to determine if a flag is in the list.
To use the expanded lab flag set, make ETL changes to accommodate the expanded list of values you would like to use and modify i2b2_ui_config.js to match.
Configuring the Expanded Webclient Left Pane
Anchor | ||||
---|---|---|---|---|
|
To set the webclient to start with the left pane in the new expanded mode, make sure this new parameter is added to i2b2_config.js.
startZoomed: true
The .zip file for this release defaults to this mode.
Changelog
Database Drivers
The JDBC drivers were updated to the following versions.
Driver | New Version |
---|---|
ojdbc8.jar | Oracle 12.2.0.1 |
postgresql-42.2.5.jar | PostgreSQL 42.2.5 |
mssql-jdbc-7.0.0.jre8.jar | MS Sql Server 7.0.0 |
i2b2 Database Changes
- Small changes to the i2b2 Database.
- Property files were moved into the database in the new Hive table HIVE_CELL_PARAMS.
- Query type classname property moved from the properties file to the CRC table QT_QUERY_RESULT_TYPE in a new CLASSNAME field
- Totalnum counts to Ontology Terms in the demo data that is delivered with the software along with the Stored procedures
...
- used for creating the counts.
Change Summary - Release 1.7.12
Did you know?
- Changes to the i2b2 server & database are listed under i2b2 Kernel (Core) Software
- Changes to the i2b2 Web Client are listed under i2b2 Web Client Software
- Additional information about the new features can be found in the Feature Details - Release 1.7.11 section located this Change Summary section.
i2b2 Kernel (Core Software)
- ACT Ontology
i2b2 Server and Client Changes
New Features and Improvements
- [CORE-378] - Find Terms should display partial results when maximum is exceeded
- [CORE-377] - Admin interface
- [CORE-352] - Show hierarchy in Find Terms
- [CORE-348] - Improve build process, auto-build entire WAR file
- [CORE-347] - Refactor to remove XML config files
- [CORE-346] - OKTA
- [CORE-345] - Replace old Spring Libraries
- [CORE-344] - Support for NTLM2
- [CORE-345] - Replace old Spring Libraries
- [CORE-343] - Replace old Spring Libraries
- [CORE-345] - Provide totalnum counting scripts
- [CORE-341] - Add a findByName filter for results inside other results
- [WEBCLIENT-310] - Mauro Bucalo contribution: totalnum in find, improved date filters
- [WEBCLIENT-309] - Find Terms should display partial results when maximum is exceeded
- [WEBCLIENT-308] - UNC Contribution: Configurable extended lab result flags
- [WEBCLIENT-306] - Beth Israel contribution: commas in counts, query option infrastructure
- [WEBCLIENT-299] - Fully spell out words in tabs
- [WEBCLIENT-298] - open web issue management for i2b2
- [WEBCLIENT-287] - Improved term info panel
- [WEBCLIENT-285] - New webclient documentation
- [WEBCLIENT-282] - Improve find terms view
- [WEBCLIENT-281] - Left side panels tabbed instead of stacked
- [WEBCLIENT-279] - Query status window resize to show graphs
- [WEBCLIENT-174] - Previous query run as a query-in-query containing unsupported concepts does not draw the timeline
- [WEBCLIENT-104] - Add Print functionality to i2b2 web client help files
Bug Fixes
- [CORE-278] - GetPDOFromInputList_requestType Fails on Postgresql367] - When a SHRINE query is rerun in i2b2 the date parameter seems to be lost.
- [CORE-307] - Fix internal key expiration date assigned when changing password366] - Error on API request on endpoint /i2b2/services/QueryToolService/publishDataRequest
- [CORE-308] - Full Request XML message is stored in the QT_PDO_QUERY_MASTER table
- [CORE-313] - CRC-PDO: AverageObservationPageMethod doesnt work362] - db_metadata_load_identified_data does not exist
- [CORE-315358] - Idenitified Data Plan- Demo_Oracle- Ontology term with No Protected access- is not visible if User role not Protected Issues with 1.7.10 VM image
- [CORE-331353] - GetCodeInfo DBLookup pages - not finding codes with an '_'all fields appear
- [WEBCLIENTCORE-231] - Able to set Date constraint on previous queries/ptset as concept
- [WEBCLIENT-247] - bad image filename
- [WEBCLIENT-248] - previousqueries panel-date option-'>' button not dispalying records after the specific date- same with '<' buttton
- [WEBCLIENT-249] - previous queries panel- date option- datetime stamp not consistent with previous queries date stamp
- [WEBCLIENT-252] - Ontology Options for Finding Terms- hidden Terms option is not validating hidden Terms
- [WEBCLIENT-256] - previous queries - pagination by date- buttons don't work after the last pagination
- [WEBCLIENT-259] - worplacefolder drag&drop- not working at subfolder level contents
- [WEBCLIENT-260] - Drag and drop of folder with multiple concepts appears stuck on group panel
- [WEBCLIENT-261] - Querytool- Ontology terms query run with breakdowns erroring out
- [WEBCLIENT-262] - Querytool- query run with query ( run as patientset)-erroring out
- [WEBCLIENT-263] - workplace folder drag and drop into simple temporal query events box - cannot drag and drop
- [WEBCLIENT-264] - worplacefolder drag&drop- query report not displaying individual patient name and subfolder naming and path?
- [WEBCLIENT-265] - Query run with individual pt is returning 0 results on rerun
- [WEBCLIENT-266] - Individual pt query run with Timeline option - not drawing the timeline, causing unresponsive webpage
- [WEBCLIENT-267] - Individual pt in Simple temporal query not working
- [WEBCLIENT-268] - Query run with a ptset is errorin gout on rerun
- [WEBCLIENT-269] - Individual Pt drag and drop- After query run, query not displaying the patient in panel
- [WEBCLIENT-270] - worplacefolder drag&drop- queryname gets '@' by default instead of name of the folder on run
- [WEBCLIENT-271] - workplace folder with empty contents is checked as zero pt instead of ignoring333] - Query run with Text search with words that contain a space and a dash is erroring out
- [CORE-332] - OracleLarge db give db error for Ontology terms 'Encounters', 'Enrollment, 'VitalSigns'
- [CORE-231] - CRC: PDO query does not escape characters
- [CORE-224] - SQL Server: Database error when no start_date on a temporal query
- [CORE-222] - Visit_Dimension event set in PDO not returning
- [WEBCLIENT-312] - Find Term tab- context menu shows Find Term in Tree" item without any item selection
- [WEBCLIENT-311] - Find Terms- Search by "Any Category" not displaying right msg if no match found
- [WEBCLIENT-303] - Find Terms - Category Diagnosis ICD10 showing as Diagnosis
- [WEBCLIENT-302] - Find Terms- Search by term matching more than 2000 count -resulting in application
- [WEBCLIENT-294] - Webclient Reports "QUERY CANCELLED" While Query Is Still Running
- [WEBCLIENT-293] - A large number of results when searching by name hangs the webclient
- [WEBCLIENT-288] - Right Click on Find Terms Persists
- [WEBCLIENT-273] - Query report displays individual pt as "undefined" on loading the previous query after run
- [WEBCLIENT-272] - temporal query with workplace contents in constraint population panel not running
- [WEBCLIENT-276] - workplace folder with multiple concepts taking long time to load in the query panel after drag and drop254] - 2b2 Admin page not displaying all the rows from dblookup table for the projects
- [WEBCLIENT-277231] - after workplace is deleted from the query panel Query run successful with empty contents
...
New Feature: Easier i2b2 Install
- If you are using a prebuilt WAR file: Copy the .war file into a wildfly 14 or 16 instance in the /opt/wildfly-VERSION-Final/standalone/deployments/ folder
- If you are creating a new WAR file : 1) Run in the edu.harvard.i2b2.server-common folder
2) ant clean dist war
3) Copy the i2b2.war from the dist folder to /opt/wildfly-VERSION-Final/standalone/deployments/ folder. - Run the data build for all the cell (PM, HIVE, ONT and CRC) . In the Hive there is a new table called HIVE_CELL_PARAM which contains all the previous XML and properties file.
- Modify the *-ds.xml in the deployment folder to point to the database
Example:
If you wanted to create a root level folder in your ontology called "PHI Demonstration" and only wanted users with the DATA_PROT role to be able to see it, you would make the following changes to your TABLE_ACCESS table:
...
New Feature: Workplace Folder drag and drop
Now you can drag a workplace folder to the query tool, the folder can contain sub folders. All the concepts, previous queries, and individual patients will be displayed in the panel.
Below is the workplace with combination of available items
After the drag and drop to the query panel the list of all the items are displayed
New Feature: Individual Patient drag and drop from Previous Query Panel
Once a patient set is created, that patient can be dragged and dropped to the Query Tool Panel
Below is a patient set with 2 patients
After drag and drop of the individual patient to the query tool panel
New Feature: Previous Queries Upgrade in Web Client
The Previous Queries panel in the web client has been upgraded to accommodate three new options.
...
New Feature: Support for WildFly 14
The i2b2 software now officially supports WildFly 14. The primary advantages are the faster install/upgrade of i2b2 as a pre-packaged collection (WAR) and managed data source connections/pooling.
New Feature: Inter-CELL SSL Setup
Create server and client certificates (Wildfly 10 & 14)
The keytool utility stores the keys and certificates in a file termed as keystore, a repository of certificates used for identifying a client or a server. Typically, a keystore contains one client or one server's identity, which are protected by using a password.
Create a Self Signed Certificate
You can create a certificate for your server using the following command:
...
1
...
$ keytool -genkey -keyalg RSA -keystore server.keystore -storepass secret -keypass secret -validity 365 -dname "cn=Partners Healtbcare,o=Partners,c=US"
Now let's copy this keystore into the configuration folder of the application server:
...
1
...
$ cp server.keystore $JBOSS_HOME/standalone/configuration
Now export the server certificate in a file called server.crt:
1
...
$ keytool -exportcert -keystore server.keystore -storepass secret -keypass secret -file server.crt
Certificate stored in file <server.crt>
Now import the cert into the CA for the Java JRE:
...
1
$ keytool -import -alias i2b2server -keystore /usr/java/latest/jre/lib/security/cacerts -file server.crt
The password might be changeit
In /opt/{wildfly} in bin run add-user.sh to create user and select (a) management user
Wildfly 10 Setup
In Wildfly 10 run jboss-cli.sh
Connect to the server
1 | connect |
Start by creating a Security Realm which will contain the keystore and trustore references
...
1
...
/core-service=management/security-realm=SSLRealm:add
Next, for one-way SSL, set the path to the keystore, along with the keystore path and password:
...
1
...
/core-service=management/security-realm=SSLRealm/server-identity=ssl:adJavathe2d(keystore-path="server.keystore", keystore-relative-to="jboss.server.config.dir", keystore-password="secret")
Finally, set the value of Undertow's https listener to your Security Realm:
...
1
...
/subsystem=undertow/server=default-server/https-listener=default-https:write-attribute(name=security-realm,value=SSLRealm)
If the above fails edit the standalone.xml and add right after http-listener
<https-listener name="default-https" security-realm="SSLRealm" socket-binding="https"/>
Wildfly 14 Setup
In Wildfly 14 run jboss.cli.sh
Connect to the server
...
1
...
connect
Finally, set the value of Undertow's https listener to your Security Realm:
...
1
...
/subsystem=undertow/server=default-server/https-listener=https:write-attribute(name=security-realm,value=ApplicationRealm)
Both Wildfly 10 and 14
Add the following to the axis2.xml file right after the <transportReceiver name="http"
<transportReceiver name="https"
class="org.apache.axis2.transport.http.AxisServletListener"/>
Change the crc.properties, ontology.properties and workplace.properties files to point to the https://localhost:8443
Database Changes
Change all the pm_cell_data within the PM Database to https://localhost:8443
After all the cells have been updated it should look like below.
Webclient Changes
Webclient, if using self-signed cert add the following to the index.php
curl_setopt($proxyRequest, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($proxyRequest, CURLOPT_SSL_VERIFYPEER, 0);
Also into the index.php add the new url to the whitelist such as:
$WHITELIST = array(
"http" . (($_SERVER['SERVER_PORT'] == '443') ? 's' : '' ) . "://" . $_SERVER['HTTP_HOST'],
);
Updated: i2b2 License
...
- Able to set Date constraint on previous queries/ptset as concept
- [WEBCLIENT-223] - Admin uses last URL from PM_CELL_DATA in getAllDbLookups call
- [WEBCLIENT-159] - Run/Rerun a temporal query without events is not displaying msg that minimum 2 events are required