Kuali Research integrates with CITI (www.citiprogram.org) in order to populate person training. This integration works by downloading CITI training data into a staging table. The staging table is processed and validated. Valid records are converted (using configured mapping information) to person training records. Error messages are persisted for invalid records. These error messages can be queried through standard maintenance screen from within the System Admin section of the application.
Subscribe to and configure the appropriate CITI services.
REQUIRED - Automated Report Downloads (CITI charges a one-time fee for this)
- CITI will provide URLs for report downloads.
- These reports must be configured to return comma-separated value (CSV) data
- Reports must have the following data elements:
- Group Id
- Passing Score
- Stage Number
- Institutional Username
- Date Completed
- Expiration Date
- Registration Date (converts as Date Requested)
- Retrieving data from multiple reports can be configured within Kuali Research
- NOTE: If you have multiple CITI accounts for your institution you can integrate all with Kuali Research but the CSV report downloads would need to have the same headers. The URLs should be a comma separated list to the CSV formatted report locations.
OPTIONAL BUT RECOMMENDED - Single-Sign-On (CITI one-time fee if not already a subscriber)
- SSO with CITI ensures that usernames will match between institutional data, CITI, and Kuali
- CITI will establish SAML based Federation with your institution
- CITI will provide a report of existing users to ensure accuracy with institutional systems
Enabling Reports - Kuali Hosted
Create a ZenDesk ticket with the URL(s) provided by CITI to download the institutional report(s) and a sample of the report. Kuali Engineers will configure institutional instances to enable CITI integration.
Enabling Reports - Self Hosted
Enable the following kc-config.xml parameters:
- citi.endpoints - The URL(s) of the report data that will be integrated with Kuali Research
- citi.delimiter - The character used to delimit data in the report
- citi.header.label.xxxx - Used to map custom report labels to appropriate Kuali Research columns
Configuring Kuali Research
The following Parameters control aspects of the CITI Integration:
- citi.job.enabled - Determines whether or not the job runs and whether maintenance links (on System Admin screen) will be displayed.
- citi.job.cronExpression - The schedule at which the job will run. CITI prefers institutions run jobs no more than twice a day. (Hosted schools can communicate the desired schedule via ZenDesk, Kuali engineers will configure this parameter).
Configuration can be completed once an initial CITI report has been loaded into Kuali Research.
- Map CITI Group/Stage numbers to Kuali Training Type - Kuali Research will detect unique Group/Stage combinations.
- If mapping data is not present and CITI integration is turned on mapping records will automatically be created without training codes selected.
Once all setup is complete, the job will run on the schedule specified by the citi.job.cronExpression job. The job executes in multiple phases:
- Download and process raw data from CITI into the database table PERSON_TRAINING_CITI. All records are marked with the Status Code of “Staged” prior to processing.
- Raw CITI data is processed and mapped to Kuali Research Users and Training Courses (mapped via the above described maintenance documents). Records that successfully populate will be updated with the Status Code of “Processed”.
- Multiple error-checks occur during the processing of the CITI data, including user validation as well as training mapping. Errors that occur during the processing do not halt the process. If an error is encountered, the impacted record is marked as “Error” and the details of the are captured in the PERSON_TRAINING_CITI table. Errors are visible within the Kuali Research Application from the Person CITI Training lookup screen.
Training Integration with Kuali Research
Training information (including CITI) is available in some of the Kuali Research modules for display and functional use. In Proposal it's visible in the Key Personnel section for each individual if training is configured and present for the user:
More information on configuring this for Proposal Development can be found in the Training Types and Person Training article.
These training configurations can also be setup to integrate with the Kuali COI module as shown in the COI - Training Integration for MySQL COI or using the Training Template Gadget for COI or Protocol modules.