Loading Third Party Data into Vault EDC

MedTech companies that process lab samples, such as blood or DNA, for diagnostic purposes, or pharmaceutical companies that develop targeted therapies, use machines that receive samples in such large quantities that they produce a file containing the results of one or more tests. Vault EDC can import the data from those files and automatically enter it into configured Forms and their data collection Items, instead of users needing to manually enter it.

You can import this data from the Data Loader tab. Once the configuration is ready, you can upload the import file that contains columns with the headers, and then you can import it into EDC. During import, Vault enters the data into the appropriate forms.

Prerequisites

The Sponsor Data Loader feature must be enabled in your vault and in your Study. Contact Veeva Support to enable this feature in your vault. Then, a study designer can enable it for your Study.


Before you can import data, a study designer must create a Data Import Configuration for each Form Definition that you want to import data into.


Users with the standard CDMS Data Loader study role can perform the actions described below. If your organization uses custom roles, your role must grant the following permissions:

Type Permission Label Controls
Standard Tab Data Loader Tab

Ability to access the Data Loader tab

Functional Permission Load Data

Ability to access the Import subtab within the Data Loader tab. Ability to edit the fields on the Import page and to run the Preview and Import jobs

Functional Permission View Import History

Ability to access the Import History subtab within the Data Loader tab


Accessing Data Loader

You can access the data loader from the Data Loader tab. This opens the Import page by default, where you can initiate a data import. You can access the Import History page from the left-hand navigation panel. The Import History shows a history of the preview and import jobs.

Preparing the CSV File

Your CSV import file must have a column to match each of the column headers mapped to a data point in the Data Import Configuration. Consult with a study designer to identify those column headers.

The following rules apply to the import file:

  • The import file must use the CSV format.
  • The import file must be comma delimited.
  • The import file must be UTF-8 encoded.
  • The file size can’t exceed 100MB.
  • The CSV file must have at least one row of data for the Data Loader to load data to a form.

Date Formats: If you use a date or datetime format that uses a 2 digit year, Data Loader will insert a year in the 2000s. For example, if you insert 08-Jun-25, with the dd-MMM-yy format, Data Loader inserts June 8th, 2025. If you want to load a date that isn’t in the 2000s, use a format with a 4 digit year.

Import Data

To import data:

  1. Navigate to Data Loader > Import.
  2. Select your Study.
  3. Select your Data Loader Configuration.
  4. Optional: Enter a Reason for Import.
  5. Optional: Enter a Reason for Change (if applicable). Vault uses this as the Reason for Change for any existing data that is edited by the import job.
  6. Drag and drop your import CSV file into the Drag and drop file here area. You can also click into this area to upload your file.
  7. If your import is configured to prompt you for values, provide those prompted values.
  8. Optional: Click Reset to reset the page.
  9. Optional: Click Preview to preview the results of the import job.
  10. Click Import.

Vault begins a job to import your data. Vault sends an email notification when the job is finished. You can monitor the job’s progress from the Import History.

Preview for Repeating Forms: If you’re creating multiple instances of a form in your input file, any form sequence numbers greater than one more than the currently extant sequence will show a failure. This doesn’t impact the import of these records. It is only to show that the preview job looks at each individual row and not the file as a whole.

View Import History

Vault displays a history of preview and import jobs in the Import History subtab.

Job Types

The Import History shows the history of two different job types:

Job Description Initiated When
Data Loader Import Preview Vault runs a preview of importing data from the CSV file according to the selected Data Loader Configuration. A data loader clicks Preview in Data Loader > Import.
Data Loader Import Vault imports data from the CSV file according to the selected Data Loader Configuration. A data loader clicks Import in Data Loader > Import.

Job Statuses

The following job statuses can apply:

Status Meaning
Queued Another job of the same type is currently running. Vault will run this job when the previous job is completed.
In Progress Vault is currently performing the job.
Failed The job instance failed to complete due to one or more errors that are not related to the data.
Completed The job instance completed without errors in the data.
Completed with Errors The job instance completed with errors in the data.

Refreshing the Import History

You can refresh the Import History, without refreshing the page, to see the most up-to-date job status and any available logs or output files.

Click Refresh () to refresh the Import History.

Refresh button

Data Loader Errors

The table below lists possible errors that may occur during data load. These errors are listed in the job log file, which can be downloaded from the Import History.

Error Message Description
File

The column header {column header name} is mapped to a row in the selected Data Loader configuration but it does not exist in the file

The import file doesn’t contain a column header that is specified in the Import Value column for a row in the Data Loader Configuration mapping table grid.

The column header {column header name} is mapped to a required row in the selected Data Loader configuration but it does not exist in the file

The import file doesn’t contain a column header that is specified in the Import Value column for a required row in the Data Loader Configuration mapping table grid.

Study

Study is locked

The job is running in a Study that is currently locked.

Site

Site {site number} does not exist in the study

  • The Site Number in the import file doesn’t match a Site Number in the Study.

  • The import job is attempting to import data into a Site that the user doesn’t have access to.

  • The Site Number selected in the prompt field no longer exists in the Study.

Site {site number} is locked

The job is attempting to load data for a Subject in a Site that is currently locked.

Subject

Subject {subject name} does not exist in the study or site

  • The Subject ID (name) specified in the import file doesn’t match an existing Subject Casebook in the study.

  • The Subject ID (name) specified in the import file doesn’t exist in the specified Site.

  • The Subject ID (name) selected in the prompt field no longer exists in the Site specified in the import file.

  • The Subject ID (name) selected in the prompt field no longer exists in the Site selected in the prompt field.

Event Group

Event Group definition {event group definition name} does not exist in the study

  • The Event Group specified in the import file doesn’t match the name of an Event Group Definition in the Study.

  • The Event Group selected in the prompt or static value fields no longer exists in the Study.

Event Group {event group definition name} does not exist in the casebook

The Event Group specified in the import file, prompt field, or static value field hasn’t been created in the Casebook.

Event Group {event group definition name} is repeating

The Event Group specified is a repeating Event Group (cycle).

Event

Event Group {event group definition name} does not contain the specified Event {event definition name} in the casebook

  • The Event Group specified in the import file doesn’t contain the Event specified in the import file, prompt field, or as a static value.

  • The Event Group specified in the prompt field no longer contains the Event.

Event {event label} is marked for removal

The import job is attempting to load a date into an Event Date for an Event that is Marked for Removal.

Event {event definition name} does not exist in the casebook

The Event specified in the import file, prompt field, or static value field hasn’t been created in the Casebook.

Event {event label} does not contain the destination form in the casebook

  • The Event specified in the import file doesn’t contain the destination Form.

  • The Event specified in the import file no longer contains the destination Form.

Event {event label} is frozen therefore the event date cannot be imported

The import job is attempting to load an Event Date into an Event (for the first time, in which no Event Date yet exists for the Event) and the Event is frozen. This error occurs when the Event is frozen, regardless of whether the Event Date itself is frozen.

Event {event label} is locked therefore the event date cannot be imported

The import job is attempting to load an Event Date into an Event (for the first time, in which no Event Date yet exists for the Event) and the Event is frozen. This error occurs when the Event is locked, regardless of whether the Event Date itself is frozen.

Event {Event label} is frozen therefore new form instances cannot be created

The import job is attempting to create new instances of a repeating Form that is inside a frozen Event.

Event {Event label} is locked therefore new form instances cannot be created

The import job is attempting to create new instances of a repeating Form that is inside a locked Event.

Event Date

Event date for event {event label} is locked

The job is attempting to load a date value into an Event Date that is currently locked.

Event date for event {event label} is frozen

The job is attempting to load a date value into an Event Date that is currently frozen.

The event date cannot be saved for event {event label} because the event requires a value for Visit Method.

The job is attempting to load a date value into an Event Date for an Event that requires a value for Visit Method.

Format does not match the import format {import format} specified in the data loader configuration

The import job is attempting to load a date value into an Event Date that doesn't match the format specified in the Import Format column for the event date row in the Data Loader Configuration. This includes the following scenarios:

  • The date value is in a different format than what's specified as the import format in the configuration.
  • The value isn't of the correct data type, such as a numeric value into a date item.
  • The date includes strings that aren't valid strings for unknown values.

Form

Form {form definition name} does not exist in the casebook

  • The destination form specified in the selected data loader configuration is not repeating, is dynamic, and has not been created in the Casebook.

  • The destination Form is repeating, dynamic, and the rule result to add the Form is false.

  • The job is trying to load data into a form that is marked as restricted

Form {form definition name} is locked

The job is trying to load data into a Form that is Locked.

Form {form definition name} is frozen

The job is trying to load data into a submitted Form that is Frozen, therefore the form cannot be edited. Note: If the Form is frozen and blank, in progress, or in progress post submit, this will not prevent the job from loading data into it since the Items can be unfrozen. The job will be able to insert data into these Items, but it will not be able to submit the Form.

Form {form definition name} is marked for removal

The job is trying to load data into a Form that is Marked for Removal.

Form instance {form sequence \#} does not exist

The form instance specified in the import file or prompt field cannot exist because the form instance that comes before it does not exist.

The destination form is repeating, however a form sequence number is not specified

The target Form is set to repeating, however there is no Sequence Number (form instance) specified in the import file or prompt field.

Item

Item {item label} is frozen

The job is trying to load data into an Item that is Frozen.

Value for item {item label} exceeds max character limit of {##}

The job is trying to load a value (into a text-type Item) that exceeds the maximum number of characters allowed for the Item Definition.

Value for item {item label} exceeds allowed length of {##}

The job is trying to load a numeric value (into a number-type Item) that exceeds the allowed length for the Item Definition.

Value for item {item label} exceeds allowed precision of {##}

The job is trying to load a numeric value (into a number-type Item) that exceeds the allowed precision for the Item Definition.

Value for item {item label} is not numeric

The job is trying to load a non-numeric value into a number-type Item.

Format does not match the import format {import format} specified in the data loader configuration

The job is trying to load a value into a date, datetime, or time item that does not match the format specified in the Import Format column in the data loader configuration. This includes: the date, datetime, or item value is in a different format than what is specified as the import format in the configuration; values that are not of the correct data type (e.g. job is trying to load a numeric value into a date item); strings that are not supported by the Data Loader Import job for unknown data as valid strings for unknown values (e.g. a string of “UNKN” exists for the value).

Item {item label} does not support unknown values

The job is trying to load an unknown date or datetime value into an Item that does not support unknown values in any capacity.

Item {item label} does not support this combination of unknown values

The job is trying to load a value with a combination of unknowns that the Item or EDC does not support.

Value for item {item label} does not exist as an Import value or a code for the codelist definition

  • The value in the import file doesn’t match one of the import values specified in the Translate Values column for the Item in the data loader configuration.

  • The value in the import file doesn’t match one of the codelist codes in the Codelist Definition being used by the Item.

Value for item {item label} corresponds to a codelist value that is hidden

  • The value in the import file matches a Codelist Item value that is set to Hidden in the Codelist Definition.

  • The Codelist Item value specified in the prompt field is set to Hidden in the Codelist Definition.

Value for item {item label} does not exist as a unit value for the unit definition

  • The value in the import file doesn’t match an existing Unit Item in the Unit Definition for the Item.

  • The Unit value specified in the prompt field no longer exists in the Unit Definition for the Item.

Value for item {item label} corresponds to a unit value that is hidden

  • The value in the import file matches a Unit Item value that is set to Hidden in the Unit Definition.

  • The Unit Item value specified in the prompt field is set to Hidden in the Unit Definition.

A value is specified for the number portion of the unit item {item label} but not for the unit portion

There is a value specified for the Value (number) but no value specified for the Unit portion of the Item.

A value is specified for the unit portion of the unit item {item label} but not for the number portion

There is a value specified for the Unit but no value specified for the Value (number) portion of the Item.

A value of “true” or “false” must be specified for boolean items.

For boolean-type Items, Vault will only accept “true” or “false” as values.

Unknown

An unknown error has occurred (error ID: {error ID}). Please reach out to support for assistance.

The job encountered an undefined error.