Additional Tutorials and Documentation
Space shortcuts
Space Tools
Skip to end of metadata
Go to start of metadata

A query runs for awhile, then an error occurs, well before the 180 second timeout

There are other timeouts that might need to be configured:

  1. php timeout (default_socket_timeout in php.ini) too small
  2. Apache/IIS timeout too small
  3. Wildfly worker thread pool too small
  4. IIS PHP Fast CGI Activity Timeout might be set to 30 seconds by default. (Go to IIS --> Fast CGI Settings --> Edit )

The webclient keeps saying "The PM Cell or the address in the properties file is incorrect."

Try these possible fixes:

  1. Check that the URL for the PM cell that is specified in i2b2_config_data.js in the root directory of the webclient is set correctly.
  2. SELinux might be on and causing access problems. (If this is the problem, /var/log/audit/audit.log will have DENY messages.)
    1. Option 1 (not recommended): turn off SELinux - Run sudo setenforce 0. (Only works until reboot.)
    2. Option 2 (preferred): turn off the SELinux network connect protection - setsebool -P httpd_can_network_connect 1 (Persists across reboots.)

A user is locked out and I want to restore their access

User lockout information is stored in pm_project_user_params. To unlock, just execute this:
DELETE FROM pm_project_user_params WHERE user_id=[your user] AND param_name_cd='LOCKEDOUT'

Obfuscated users are automatically locked out if they ever perform the same query more than a certain number of times. This defaults to 7 and can be configured by the edu.harvard.i2b2.crc.lockout.setfinderquery.count parameter in the hive_cell_params table. To allow a user to repeat the same query after the lockout number of attempts, you must delete the previous queries from the qt_query_master table.


Encounter set breakdowns fail but other breakdowns work fine

Check that your QT_Patient_enc_collection has less than two billion rows. If it grows too large over time, generating new encounter sets will fail. Delete unneeded encounter sets.

Example query: SELECT max(PATIENT_ENC_COLL_ID) FROM [dbo].[QT_PATIENT_ENC_COLLECTION]

I want to use https on the Wildfly side (to communicate with the i2b2 cells)

You will want to enable Inter-cell SSL. See the 1.7.11 Release Notes.

I want to use Active Directory in SQLServer

If you are using SQL Server, it is possible to use Active Directory accounts for the database users (i.e., Integrated Login) in the db.properties files. To enable this, replace

<connection-url>jdbc:sqlserver://localhost:1433</connection-url>

with 

<connection-url>jdbc:sqlserver://localhost:1433;IntegratedSecurity=true;Trusted_Connection=Yes</connection-url>

Then the password field in the <security> section will be ignored and the SQLServer integrated security will be used.

How do I contribute to the i2b2 code?

  1. Create a JIRA issue
  2. Make a GitHub pull request and reference the JIRA issue in the commit comment (e.g., "CORE-589: Fixed hyperspeed drive rotor").
  3. Attest to the DCO (can be done by including text like 'I attest to https://developercertificate.org/' in the Pull Request)
  4. E-mail someone on the i2b2 core development team (Mike Mendis or Jeff Klann at the time of writing).


Additionally, your contribution:

  1. Must be tested
  2. Must include unit tests (for new features)
  3. Must include documentation (can be part of the pull request)

Tips for Optimizing i2b2 query speed

Postgres

  1. Do not use '%' in any concept code. In Postgres, this is known to prevent the database from using indexes.
  2. In Postgres, consider using table partitioning

MSSQL

  1. Use clustered columnstore indexes for the fact table.

All platforms

  1. If your fact table is extremely large, consider splitting it into multiple fact tables.
  2. ... more to come...

I can log in, but nothing else works. On the server, I see a lot of "invalid session" errors in the Wildfly log

Your database server and Wildfly server might not have the same system date and time. Make sure they are the same, and that they are in the same time zone. 


  • No labels