TOC Navbar

EDC API Best Practices

Error Detection

Inner vs. Outer Response - Create Subject (1)

{
    "responseStatus": "SUCCESS",
    "subjects": [
        {
            "responseStatus": "FAILURE",
            "errorMessage": "[Study Country] with name [Belgium] not found"
            "study_country": "Belgium"
            "site": "103",
            "subject": "103-001"            
        }
    ]
}

Inner vs. Outer Response - Create Event Groups (2)

{
    "responseStatus": "SUCCESS",
    "eventgroups": [
        {
            "responseStatus": "SUCCESS",
            "study_country": "United States", 
            "site": "101",
            "subject": "101-001",
            "eventgroup_name": "egIRT_INFO",
            "eventgroup_sequence": 1
        },
        {
            "responseStatus": "FAILURE",
            "errorMessage": "[Subject] with name [101-021] not found"
            "study_country": "United States",
            "site": "101",
            "subject": "101-021",
            "eventgroup_name": "egIRT_INFO"
        }
    ]
}

Strategy

If creating an integration into Vault EDC, what is your error detection overall strategy?

Inner vs Outer Response Status

Watch the inner vs. outer success/fail statuses in API responses!



Audit 2.0 Live Capture

EDC's bulk API request processing model commits all valid records within a payload and only rolls back entries that encounter errors. This behavior is applicable when the EDC Audit 2.0 Live Capture feature is active and affects all API versions.

Endpoint Processing Behavior

Below are endpoint processing behavior definitions for bulk API processing. Understanding which processing behaviors apply to each endpoint helps ensure your retry logic handles failures correctly.

The table below shows which endpoints the EDC Audit 2.0 Live Capture feature affects and their processing behaviors:

Endpoint Before After
Update Subject All or nothing Partial Success and Failure
Update Event All or nothing Partial Success and Failure
Update Event Omitting the visit method and externally owned method parameters (or null) did not explicitly set the Externally Owned flag to false. The system does not record the implicit action in the Audit Trail. Omitting or passing null explicitly assigns the Externally Owned flag to false. The action appears in the Audit Trail as: "Visit Method unset as owned by another system".
Set Coding Suggestions All or nothing Partial Success and Failure
Create Protocol Deviation All or nothing Partial Success and Failure
Update Protocol Deviation All or nothing Partial Success and Failure
Inactivate Protocol Deviation All or nothing Partial Success and Failure
Submit Form 24.1 version forward
All or nothing
24.1 version forward
Partial Success and Failure
Reopen Submitted Forms 24.1 version forward
All or nothing
24.1 version forward
Partial Success and Failure
Set Event as Did Not Occur All or nothing Partial Success and Failure
Create Event All or nothing Partial Success and Failure
Open Queries by Event ID Batches of 20 Subjects Partial Success and Failure
Open Queries by Item ID Batches of 20 Subjects Partial Success and Failure
Close Queries (by ID/Batch) Batches of 20 Subjects Partial Success and Failure

Error Handling & Retry Guidance

When redesigning your integration's error-handling and retry logic, keep the following principles in mind:

Inspect individual payload statuses:

Avoid uninspected bulk retries:

Implement granular retry logic:

Study Design

Forms for Integration

For an inbound integration to Vault EDC:

Repeating Events



API Account for Integrations

Security Policy

Study Access and Training



Sequences



Inspecting Before Doing



Create vs Upsert



Combination API for Form Data



Locked / Frozen Forms

Area Status Add/Update Data Add/Update Queries
Study Locked Disallowed Disallowed
Site Locked Disallowed Disallowed
Subject Locked Disallowed Disallowed
Subject Frozen Disallowed Allowed
Event Locked Disallowed Disallowed
Event Frozen Disallowed (event date changes) Allowed (on event date)
Form Locked Disallowed Disallowed
Form Frozen Disallowed Allowed



Change Reasons



Jobs



User Administration