Release Management
Space shortcuts
Space Tools

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Contribution

Contributor


SAML Authentication

Kevin Bui (lead developer)
Michelle Morris
University of Pittsburgh

Justin Prosser (security expert)
University of Washington

Mike Mendis
Jeff Klann
Reeta Metta
Mass General Brigham

i2b2 now includes support for SAML-based enterprise authentication via an institutional Identity Provider. See more information below.


Ability to specify user parameter defaults

Michael Horvath
Wake Forest University

This change is meant to allowing allow user params to take precedence over hive params. Currently, it's the other way around.

Particularly, if you have the situation where you have a large number of users who use an authentication method other than the default basic, but your service account (AGG_SERVICE_ACCOUNT) is using basic then you need to specify a user param for each of your users.

With this change, you can set default authentication params in pm_hive_params for all users, and then set your service account specifically to be authentication_method = 'BASIC'. May seem like a small change, but it would be very welcome not to need to assign params for each new user at our institution.
In the process of making this change, I re-organized basic authentication into its own package and removed some code duplication. 

LDAP UPN Support

Michael Horvath
Wake Forest University

Active Directory enables other methods of binding which are more flexible besides just using the distinguished name. https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-adts/6a5891b8-928e-4b75-a4a5-0e3b77eaca52. This change is to enable binding the the User Principle Name form, which is very convenient when the distinguished names for users is not easily available (OU by department, etc.).

API to get all children of an ontology node

Kevin Bui
Michelle Morris
University of Pittsburgh

The metadata GetChildren API call, which returns information on the children of an ontology node, can now be configured to return multiple levels of children (e.g., children, children's children, etc.). This is done by specifying the numLevel parameters. 

By default, the function assumes numLevel = 1 and will return the direct descendants of the concept, which is one level of children.  When the numLevel = -1 the function will return ALL descendants of the concept, otherwise the function will return up to and including the number of levels specified by numLevel (eg. numlevel=2 returns two levels of descendants, numLevel=4 returns four levels of descendants).

Totalnum Counter Performance ImprovementsDarren Henderson
University of Kentucky
Performance enhancements on SQL Server totalnum counting to not : stop unnecessarily recompute recomputing temp tables.
ACT v4 Postgres bugfixes

Ambreen Zaver
University of Colorado

Bugfixes in time interval calculation (for age and age-at-visit) in ACT v4 ontology for Postgres.

...

  1. If upgrading, create the totalnum and totalnum_report tables. In Release_1-7/Upgrade/Metadata, run the ant upgrade script.
    ant -f data_build.xml upgrade_tables_release_1-7-12a
  2. 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 
  3. Set privileges: If using multiple schemas, the stored procedure should be run from the metadata schema. Make sure the stored procedure can read the tables in the crcdata schema (observation_fact, visit_dimension, patient_dimension) and can both read an update ontology tables in the metadata schema (including table_access). 
  4. If using multiple fact tables, the recommended approach is to create a fact table view as the union of all your fact tables. (This is essentially going back to a single fact table, but it is only used for totalnum counting. This is needed to correctly count patients that mention multiple fact tables within a hierarchy.)
        e.g., 
           create view observation_fact_view as
           select * from CONDITION_VIEW 
           union all
           select * from drug_view
    If running the counting script in SQL Server, add the wildcard flag, to ignore multifact references in the ontology: e.g. exec RunTotalnum 'observation_fact_view','dbo','@','Y'
    This is automatically accounted for in the other database platforms. Note this approach does not work if you have conflicting concept_cds across fact tables.
  5. Run the stored procedures on your database. This can be done in two ways:
    1. 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   
    2. Execute the RunTotalNum  stored procedure manually against your database in from a sql SQL Client. This can take several hours.  Example is   Examples are below. 

Running the totalnum stored procedure directly

...

You can optionally include a table named name if you only want to count one ontology table (this IS case sensitive):
begin
  runtotalnum('observation_fact','i2b2demodata','I2B2');
end;

...

SQL server:              
       exec RunTotalnum 'observation_fact','dbo','@'
Parameters are: 1) the observation table name (for multi-fact-table setups), 2) the schemanameschema name, 3) a single table name to run on a single ontology table or '@' to run on all, and 4) and a wildcard flag that will ignore multifact references in the ontology if 'Y'

...

When the CRC data is installed via ant, a new SQL script updates the age_in_years_num in the patient dimension based on the birth datedates of the sample patients.

As a reminder, this load process can be triggered with ant -f data_build.xml db_demodata_load_data in the CRC directory of NewInstall.

...

Insert_Concept_FROMTableAccess  is designed to populate concept_dimenison table using Table_access table records.
The stored procedure loops through the table_access  and  inserts values from corresponding each metadata table (specified in the c_table_name metadatatable which have column), when
c_tablename column value as dimtablename is set to 'concept_dimension'
Example usage: exec Insert_Concept_FROMTableAccess

...

  1. i2b2 has been made more secure by addressing parameterization and other potential vulnerabilities found in an internal a Veracode scan.
  2. Log4J has been upgraded to the latest version. Following The following jars are updated in lib/axis2.war/WEB-INF/lib the folder:
    1. log4j-api-2.17.1.jar
    2. log4j-core-2.17.1.jar
    3. log4j-jcl-2.17.1.jar

...

Currently i2b2 db upgrade is a multi-step process of running upgrade SQL scripts and stored procedures individually on db instance. This release simplifies the process of running the  the table upgrade SQL scripts from a the  data_build.xml.

Steps to Perform db upgrade:

  1. Backup your existing data folder
  2. Copy all the folders from created by extracting the extracted latest version download data folder   into into your existing  data Upgrade folder. This will replace existing Crcdata, Hivedata, Metadata, PMdata folders. Example:  Downloads\i2b2core-upgrade-1713\i2b2\data to C:\opt\edu.harvard.i2b2.data\Release_1-7\Upgrade\.
  3. Copy the db.properties files from your back up into the respective locations (namely Crcdata, Hivedata, Metadata, PMdata )
  4. Open the command prompt and navigate  navigate to each cell folder 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.
  5. In datafolder\Release_1-7\Upgrade\  run the ant commands under each individual cell folder as below

...

The JDBC drivers were updated to the following versions.

Driver

ojdbc8.jar

postgresql-42.2.

5

14.jar

mssql-jdbc-

7

8.

0

2.

0

2.jre8.jar

New Version

Oracle 21.5

PostgreSQL 42.3.2

MS Sql Server 9.2


Supported Db Server versions

...