How to Upload Data
Ce contenu n’est pas encore disponible dans votre langue.
Open Data Capture allows you to visualize numeric measures over time in a single subject. These measures must be defined in the instrument.
Steps
-
Login to Open Data Capture
First, login to your instance of Open Data Capture. In order to visualize subject data, you must have adequate permissions. Usually, that means you must be a group manager (or equivalent).
-
Select Your Group
Next, select the group that you were using when you collected the data for this subject (or were using to send the subject a remote assignment). It is very important that you select the correct group, otherwise you will not see the expected data.
-
Select the Upload tab
Select the upload tab within the side navigation bar. This will reveal a page displaying all the form instruments that are available in the current OpenDataCapture instance.
-
Select Instrument to Upload to
Select an instrument you would like to upload data to by clicking on its title within the displayed table. This action will bring you to the upload page for the selected instrument
-
Following Proper Upload Format
In order to properly upload data to the selected instrument, the data must follow a certain format. A sample of the instrument’s data format can be seen by clicking the download template button. Once the template is downloaded, one can fill it with external data. The template includes pre-filled columns and sample data that specify data types for each field.
-
Uploading Using Dropzone
Once a template is filled, it can be dragged and dropped into the file dropzone. After this, click the submit button to verify the data. If the data follows the correct syntax, it is submitted to the instrument’s data table; otherwise, an error is displayed indicating which field is filled incorrectly.
-
Uploading specific Zod Data
Some forms may have Zod field types that are challenging to represent in a standard CSV format. Therefore, specific notations must be used to ensure the upload feature can properly parse the data.
-
Set Data
If a form has a field that accepts a set of data, such as a multi-option checklist with options a, b, and c, the proper notation for the data would be:
- SET(a,b)
- SET(a,b,c)
- SET(a)
This format allows the upload feature to correctly interpret the selected options.
-
Record Array Data
Record array data is a custom form of data entry for when there can be multiple records for one column field. For example, the types of scans and their info in an MRI form would be record array data. If a record contains a set of questions/ data fields A, B, and C, the proper notation for data entry would be as follows:
- RECORD_ARRAY(A: dataEntryForA, B: dataEntryForB, C: dataEntryForC ;)
If the record array question contains multiple records the data entry would look like so:
- RECORD_ARRAY(A: dataEntryForA, B: dataEntryForB, C: dataEntryForC ; A: dataEntryForA2, B: dataEntryForB2, C: dataEntryForC2 ;)
Note that every ”,” notates a new entry in the record, whilst every ”;” notates a new record in the record array
-
Optional Data
Whenever data is optional within a form it can be left empty and still be properly submitted. Any optional data column in the csv template will have an “(optional)” tag attached to its sample data entry, which means any entry in the column can be left blank. This is usually done in that case of when one column value depends on another. For example, a sessionFailed column would be followed by an optional reasonForFailure column.
-
Sample CSV Data
This section will present how to properly fill in a template csv from the upload feature. Say we download the following csv template that looks like this below:
subjectID | date | stringQuestion | setQuestion | optionalQuestion | recordArrayQuestion |
---|---|---|---|---|---|
string | yyyy-mm-dd | yes/no | SET(A/B/C, …) | A/B (optional) | RECORD_ARRAY(testString: A/B/C, testNumber: number;) |
Starting with the first column we have subjectID, which is a string value containing the identification of the subject taking part in the instrument. This field is required.
The second column contains the date of which in instrument was done by the subject, which follows yyyy-mm-dd format. This field is to be filled for each row.
The third column is a string entry consisting of two possible options (yes/no).
The fourth column is a field which takes in a set of entries, where the options are A, B or C. The set can have all these option within it, however it does not accept duplicates. So an entry such as SET(A,A,C)
would fail, but the entry SET(A,B,C)
would be valid.
The fifth column is an optional string field with the possible options of A or B. This field can hold either A, B, or can remain empty.
Finally, the sixth column is a record array field. This record array object can have the fields testString and testNumber entered within it. These internal field values are entered by including the fieldname and its corresponding value separated by a ”:”. In addition, a record array can also have multiple entries for each internal field within it as long as the new entry is separated by a ”;”. With that in mind, valid entries for this column would be RECORD_ARRAY(testString: A, testNumber: 1;)
or
RECORD_ARRAY(testString: A, testNumber: 1; testString: 1, testNumber: 2;)
, etc.
A valid CSV file that follows this template can be seen below:
subjectID | date | stringQuestion | setQuestion | optionalQuestion | recordArrayQuestion |
---|---|---|---|---|---|
testID123 | 2025-01-07 | yes | SET(A, B, C) | B | RECORD_ARRAY(testString: A, testNumber: 2; testString: B, testNumber: 3;) |
testID111 | 2025-01-06 | no | SET(C, B) | A | RECORD_ARRAY(testString: B, testNumber: 22; testString: A, testNumber: 1;) |
testID111 | 2025-01-03 | no | SET(A, C) | RECORD_ARRAY(testString: B, testNumber: 12; testString: B, testNumber: 13;) |