1.7.13 Release Notes
Highlight of Features
Frontend Features
LOTS OF TABS!
Community-Contributed Features
Contribution | Contributor | |
Backend Features
SAML Authentication
i2b2 now includes support for SAML-based enterprise authentication via an institutional Identity Provider. To configure this, you need to configure SimpleSAMLPHP (now included with i2b2) to talk to your institution's Identity Provider. Follow these guides:
1) Setting up Apache and simplesamlphp: https://simplesamlphp.org/docs/latest/simplesamlphp-install.html
2) Configure the service provider and add an identity provider: https://simplesamlphp.org/docs/latest/simplesamlphp-sp.html
Improved Totalnum Scripts
Totalnum Scripts for Postgres and MSSQL have been updated to improve the Totalnum counter performance on very large(>1.5 million) ontology elements such as ACT medications, Debug messages have also been added for troubleshoot purposes
Totalnum Scripts Setup
In the Release_1-7/NewInstall/Metadata/ run the ant script to create the stored procedures. ant -f data_build.xml create_metadata_procedures_release_1-7
Run the stored procedures on your database. This can be done in two ways.
a. Run the ant command to execute the data_build.xml file with below specified target
- 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
b. Execute the RunTotalNum stored procedure manully against your database in from a sql Client. 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
- 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.
I2b2-Synthea data Load
A new option is now available for loading Synthea data files into i2b2. Synthetic patient data generated by Synthea is hosted on SyntheticMass..The Synthea sample files have been converted to i2b2-ACT format. The zipped data files can be downloaded from https://github.com/i2b2/i2b2-synthea
Synthea Load Process:
- Create db Schema with name labeled synthea
- Load Synthea data from the sample data files provided
- Download the zipped flat files and extract to them to a local directory
- Using SSMS, import the sample obs file into obvseration_fact table
- Import the sample obs-pat file into patient dimension table.
- Download latest stored procedures from github
- Execute the stored procedures on your database to create the patientnum and encounternumbers
- Download SyntheticMass Data, Version 2 (24 May, 2017)
- Set up an i2b2 project with the ACT ontology.
- Run
create_synthea_table_sqlserver.sql
in your project to create the Synthea tables. - Import the Synthea data you downloaded in step one into the Synthea tables in your project.
- Load the i2b2-to-SNOMED table in this repository into your project. https://www.nlm.nih.gov/healthit/snomedct/us_edition.html
- Run
synthea_to_i2b2_sqlserver.sql
to convert synthea data into i2b2 tables (this will truncate your existing fact and dimension tables!)- Replace references to
i2b2metadata.dbo
in the script. Use the database and schema where your ACT ontology tables are.
- Replace references to
ACT Version-4 Ontology data load
Metadata scripts are now available to load the latest ACT Version-4 Ontology into your i2b2 db schema
ACT4 dataload process:
- Download the newinstall zip package from https://www.i2b2.org/software/download.html?d=452
- Extract the metadata\act folder from the downloaded zip folder
- Replace edu.harvard.i2b2.data\Release_1-7\NewInstall\Metadata\act folder with extracted new act folder
- Edit the db.properties file in your metadata folder to update the project properties to 'ACT'db.project=ACT
- From the edu.harvard.i2b2.data\Release_1-7\NewInstall\Metadata folder, run the ant command: ant -f data_build.xml db_metadata_load_data
- This will execute the SQL scripts form the edu.harvard.i2b2.data\Release_1-7\NewInstall\Metadata\act folder to create the new ACT4 Ontology tables
- and loads the corresponding metadata.
- You can now verify the new Ontology by logging into the webclient.
The following command will load the corresponding concept_dimension data of the Onbtology tables that will enable you to run queries in the webclient
From a sql Client>select 'insert into concept_dimension select c_dimcode AS concept_path, c_basecode AS concept_cd, c_name AS name_char, null AS concept_blob, update_date AS update_date, download_date as download_date, import_date as import_date, sourcesystem_cd as sourcesystem_cd, 1 as upload_id from '
+c_table_name+' where m_applied_path=''@'' and c_tablename=''CONCEPT_DIMENSION'' and c_columnname=''concept_path'' and c_visualattributes not like ''%I%'' and (c_columndatatype=''T'' or c_columndatatype=''N'') and c_synonym_cd = ''N'' and (m_exclusion_cd is null or m_exclusion_cd='''') and c_basecode is not null and c_basecode!='''''
from <your_dbschema>.dbo.TABLE_ACCESS where c_visualattributes like '%A%'
Improved db Upgrade Process
Currently i2b2 db upgrade is a multi-step process of running upgrade scripts and stored procedures. This release provides a set of upgrade scripts which will perform the complete db upgrade.
based on your current build version.
For example: Following Ant command will upgrade your db instance from 1.7.09c to latest version.
>ant -f data_build.xml upgrade_table_release_1-7-09c upgrade_table_release_1-7-10 upgrade_table_release_1-7-11 upgrade_table_release_1-7-12
Steps to Perform db upgrade:
- Backup your existing data folder
- Copy all the folders from the extracted download data folder into your existing data Upgrade folder
Example: Downloads\2b2core-upgrade-1712a\i2b2\data to C:\opt\edu.harvard.i2b2.data\Release_1-7\Upgrade\. This will replace
existing Crcdata, Hivedata, Metadata, PMdata folders.
Alternative to above step, navigate to the edu.harvard.i2b2.data\Release_1-7\Upgrade\ directory of your extracted folder - Copy the db.properties files from your back up into the respective locations(namely Crcdata, Hivedata, Metadata, PMdata )
- Open the command prompt and navigate to cell folders and run the following upgrade ant commands on your i2b2 database instance, where {db} can be Oracle, sqlserver or postgresql.
Alternative to above Step, you can run individual SQL scripts on your db instance in place of ant commands.
In data folder\Release_1-7\Upgrade\ run the ant commands under each individual cell subfolder as below. | |
Upgrade From Build | Upgrade to Latest build |
1.7.09c | In the Crcdata folder run the following ant command: ant -f data_build.xml upgrade_table_release_1-7-09c upgrade_table_release_1-7-10 upgrade_table_release_1-7-11 upgrade_table_release_1-7-12 In the Hivedata folder run the following ant command: ant -f data_build.xml upgrade_hive_tables_release_1-7-09c upgrade_hive_tables_release_1-7-10 upgrade_hive_tables_release_1-7-11 upgrade_hive_tables_release_1-7-12 In the Metadata folder run the following ant command: ant -f data_build.xml upgrade_tables_release_1-7-09c upgrade_tables_release_1-7-10 upgrade_tables_release_1-7-11 upgrade_tables_release_1-7-12 In the PMdata folder run the following ant command: ant -f data_build.xml upgrade_pm_tables_release_1-7-09c upgrade_pm_tables_release_1-7-10 upgrade_pm_tables_release_1-7-11 upgrade_pm_tables_release_1-7-12 |
1.7.10 | In the Crcdata folder run the following ant command: ant -f data_build.xml upgrade_table_release_1-7-10 upgrade_table_release_1-7-11 upgrade_table_release_1-7-12 In the Hivedata folder run the following ant command: ant -f data_build.xml upgrade_hive_tables_release_1-7-10 upgrade_hive_tables_release_1-7-11 upgrade_hive_tables_release_1-7-12 In the Metadata folder run the following ant command: ant -f data_build.xml upgrade_tables_release_1-7-10 upgrade_tables_release_1-7-11 upgrade_tables_release_1-7-12 In the PMdata folder run the following ant command: ant -f data_build.xml upgrade_pm_tables_release_1-7-10 upgrade_pm_tables_release_1-7-11 upgrade_pm_tables_release_1-7-12 |
1.7.11 | In the Crcdata folder run the following ant command: ant -f data_build.xml upgrade_table_release_1-7-11 upgrade_table_release_1-7-12 In the Hivedata folder run the following ant command: ant -f data_build.xml upgrade_hive_tables_release_1-7-11 upgrade_hive_tables_release_1-7-12 In the Metadata folder run the following ant command: ant -f data_build.xml upgrade_tables_release_1-7-11 upgrade_tables_release_1-7-12 In the PMdata folder run the following ant command: ant -f data_build.xml upgrade_pm_tables_release_1-7-11 upgrade_pm_tables_release_1-7-12 |
1.7.12 | In the Crcdata folder run the following ant command: ant -f data_build.xml upgrade_table_release_1-7-12 In the Hivedata folder run the following ant command: ant -f data_build.xml upgrade_hive_tables_release_1-7-12 In the Metadata folder run the following ant command: ant -f data_build.xml upgrade_tables_release_1-7-12 In the PMdata folder run the following ant command: ant -f data_build.xml upgrade_pm_tables_release_1-7-12 |
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 |
Supported Db Server versions
Type | Version |
SQL Server | 2012+ (tested with up to 2019) |
Oracle | 12g+ and 21c |
Postgres | 9 to 14 |
Supported software versions
Application | Version |
Java | 8 or 11 |
Wildfly | 17.0.0 |
Apache HTD | 2.4.17 or higher |
Apache Ant | 1.9.6 |
Apache Axis2 | 1.7.1 |
PHP | 7.2.27 or higher |
i2b2 Database Changes
New db updates include
- DATA-7 QT_PATIENT_SET_ENC_COLLECTION should be a bigint
- DATA-5 Synthea i2b2 data
- DATA-8 Synthea data load test from Github files
- DATA-6 i mprove i2b2 db upgrade process
- DATA-12
i2b2 Server and Client Changes
New Features and Improvements
- CORE-389 Totalnum performance improvements
- CORE-399 Oracle index hints must use the table alias
- CORE-400 CORE-389 Show totalnums in top-level folders
- CORE-382 Username / password errors should not specify which had the problem
- WEBCLIENT-334 Provide tabs for major plugins and temporal query
- WEBCLIENT-344 Cleanup Analysis Tools list of Plugins to only Supported Items
- WEBCLIENT-325 Wayne's improvements to hierarchical find-by-name
- WEBCLIENT-320 Provide REFRESH ALL context menu in FindTerms panel
- WEBCLIENT-307 Drag and drop in term info panel
- WEBCLIENT-306 Beth Israel contribution: commas in counts, query option infrastructure
- WEBCLIENT-342 switch response status check from "OK" to 200 to handle lab value pop up in http/2 protocols
- CORE-402 Fix Veracode identified Security flaws in i2b2 Server-Side Code
- WEBCLIENT-343 Fix Veracode identified Security flaws in i2b2Webclient Code
- CORE-404 Adding support for JDK 11. Now including the gensrc due to jaxb has been removed.
- CORE-413 (FetchAllChildren)
- CORE-414 (SAML)
- CORE-415 (Log4J)
- RedCAP improvements: read from file
Bug Fixes
8/21 - If Oracle has different timezone settings than the i2b2 application server, i2b2 sessions used to match the Oracle server. Now they will match i2b2.
- WEBCLIENT 12/9/20 - 63ddf0cedcb6f92f71621b73dcf4c9b9bf45bc5b - Changed response status check from "OK" to 200 for HTTP/2 compatibility
WEBCLIENT-335 5/7/20 - 4bedf1cdfa5e193510ef2bf3e7d7b76cebb40113 - Temporal Query Should Not Need a Constraining Population
WEBCLIENT 8/7/20 - 66313cc2e4bf4a9a09a03bcdfb66587c14061cba, 38ed9ec859e1dcfdbf4c28062a96092d18d53c5a - Obfuscated User Not Showing Graph
- WEBCLIENT-350 Unable to drag items in workplace
- WEBCLIENT-325 Wayne's improvements to hierarchical find-by-name
- WEBCLIENT-341 Toggle between <and > group panel buttons resulting in blank QueryResults view
- WEBCLIENT-319 FindTerms- exceeding more than 200(default) return count - displaying server error
- WEBCLIENT-316 Admin tool unresponsive in IE11
- WEBCLIENT-305 Occasionally items in Find Terms by name are not draggable
- WEBCLIENT-304 Hierarchical levels in Find Terms might not work in ontologies that have extra backslashes
- WEBCLIENT-294 Webclient Reports "QUERY CANCELLED" While Query Is Still Running
- WEBCLIENT-291 Date constraints popup OK button disabled, maintains new date if canceled
- WEBCLIENT-196 Temporal query more than 2 events is not populating query name in the query name textbox and displaying new event added msg
- WEBCLIENT-156 switching from events grouppanel view to 'same financial encounter' selection is not switching to original concept group panel view
- CORE-282 Error returned when obfuscated user is locked out
- CORE-281 Query continues to run after user receives lockout message
- CORE-412 (AggService login)
- CORE-405 Upgrade JDBC Drivers
- CORE-403 Add result path
CORE-399 use alias for index hint
Notes for Developers
For Java 11 install, if you change xsd, then modify the gensource.