The webclient keeps saying "The PM Cell or the address in the properties file is incorrect."
Try these possible fixes:
- 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.
- SELinux might be on and causing access problems. (If this is the problem, /var/log/audit/audit.log will have DENY messages.)
- Option 1 (not recommended): turn off SELinux - Run sudo setenforce 0. (Only works until reboot.)
- 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
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?
- Create a JIRA issue
- Make a GitHub pull request and reference the JIRA issue in the commit comment (e.g., "CORE-589: Fixed hyperspeed drive rotor").
- Attest to the DCO (can be done by including text like 'I attest to https://developercertificate.org/' in the Pull Request)
- E-mail someone on the i2b2 core development team (Mike Mendis or Jeff Klann at the time of writing).
Additionally, your contribution:
- Must be tested
- Must include unit tests (for new features)
- Must include documentation (can be part of the pull request)
Tips for Optimizing i2b2 query speed
- Do not use '%' in any concept code. In Postgres, this is known to prevent the database from using indexes.
- In Postgres, consider using table partitioning
- Use clustered columnstore indexes for the fact table.
- If your fact table is extremely large, consider splitting it into multiple fact tables.
- ... more to come...