...
Ans: This is by design. The REDCap’s export records API gives a snapshot of ALL records of the project. This is undesirable for the following reasons -
Fetching all project records for a medium to a large project can be quite taxing on REDCap and OpenSpecimen server resources.
The plugin (frequently) synchronizes records between REDCap and OpenSpecimen. The plugin requires only those changes that have occurred in the REDCap project since the last synchronization run. There is no need to fetch all records every time the plugin run synchronization.
The plugin has been designed to fetch changes in the REDCap project in manageable chunks of 100 changes. It ensures that there is no undue memory pressure either on the REDCap server or OpenSpecimen server.
The redcap_log_events table will have no changes recorded for copied REDCap projects. How is this scenario handled?
...
Ans: Refer above question for the preamble. The custom REDCap PHP plugin is required for the following reasons:
There is no REDCap API to fetch changes in data that have occurred in a project since a given time point. The API always responds with ‘ALL changes’. The custom PHP plugin solves the problem by implementing an API that provides options like time point from when the changes need to be picked, how many changes, etc.
For longitudinal projects, the REDCap events API does not provide event IDs. It poses a problem in enforcing mapping between REDCap and OpenSpecimen events when there is a change in the REDCap event name (including unique_event_name). The custom PHP plugin implements an API to export project events along with their IDs. The OpenSpecimen plugin then uses these event IDs to create events mapping between REDCap and OpenSpecimen. The event IDs remain the same even when there is a change of event name. Significantly, data change records fetched from REDCap contain references to event ID.
Synchronization Run
How are visits synchronized between REDCap and OpenSpecimen?
...
Ans: The mandatory visit fields are populated as follows:
When the visit date field is not mapped, its value is set to the date/time of the corresponding REDCap event data entry.
When the visit site field is not mapped, its value is picked either from the mapped event's default site or the project site.
What sites are available for selection in the project site dropdown?
...
Ans: It depends on the type of configuration you set during the REDCap configuration:
The new instrument would be configured automatically if the forms were not defined in the 'Form inclusion/exclusion list'.
If any forms are included in the list, you will have to add the new form in the include list.
Why does OpenSpecimen does not delete participants that are deleted in REDCap?
...
Before version v6.3, the cleanup needs to be done at the database level by truncating or deleting rows from these tables.
os_redcap_projects - Table that stores all the RC project details.
os_redcap_records - Table that stores all the RC participant mapping.
os_redcap_instrument_instances - Table that stores all the RC visit form mapping
os_redcap_record_visits - Table that stores all the RC visit mapping (only for longitudinal studies)
If you delete a participant or visit in OpenSpecimen and resync ALL data from RC, it will not pull the data for deleted OS objects from RC. However, in the odd case, where you want the resync to fetch ALL data, you will need to delete the entries from the below table:
os_redcap_records: delete participant mapping
os_redcap_record_visits: delete visit mapping
os_redcap_instrument_instances: join with #1 (and/or #2) above and delete the instrument entries
If you want to resync all: delete all the entries for a project by joining with os_redcap_projects.
Errors
“java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String"
...
Expand | ||
---|---|---|
| ||
This error is raised when the OpenSpecimen server is unable to contact the REDCap server. It can happen due to any of the following reasons:
|
MysqlDataTruncation:Data truncation: Incorrect datetime
Expand | |||||||
---|---|---|---|---|---|---|---|
| |||||||
The error occurs because the MySQL timestamp columns cannot store date/time prior to 1/1/1970. Error message in the log file is like this - 'Error: OpenSpecimenException:Error: MysqlDataTruncation:Data truncation: Incorrect datetime value: '1969-04-18 00:00:00' for column 'DE_A_29' at row 1'. Steps to fix the error
|
You do not have permission to use the API or Invalid token.
...
Expand | ||
---|---|---|
| ||
This error is raised when the JAVA_HOME is pointing to an unstable or incorrect installation. Unless the JAVA_HOME variable is fixed, the user is not navigated to the next page. |
Row size too large
Expand |
---|
java.sql.SQLSyntaxErrorException: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs Please refer to the wiki page for more details. |