Upserting Source Data Verification in Siebel Clinical

This API is used to update Source Data Verification (SDV) information at Subject level and CRF level. Before using this API, make sure Subjects & CRF records are created in Siebel Application. This API is also used to send SDV Completed flag & SDV Completed Date details to mark the CRF records as source verified. Multiple instances of Protocol, Subject and CRF can be used in a single payload.

Note: The user invoking this API should have “Digital Gateway Integration Responsibility” responsibility in Siebel. Otherwise, the user will get "access denied" error.

The payload has the following required fields:

  • "Clinical Protocol"- Protocol Number
  • "Clinical Subject"- EDC Internal Id , Screening Number
  • "LS CRF Tracking BC"- Clinical Item, Screening Number, Subject EDC Internal Id

EDC Internal Id and Subject EDC Internal Id refer to the Integration Id for the Subject in Siebel Clinical. Subject Integration ID is the subject unique identifier in a Protocol. Screening Number refers to the Subject ID in Siebel Clinical.

The following request will upsert SDV data in Siebel Clinical:

  • URI: https://ServerName:port/siebel/v1.0/service/LS Clinical SDV Service/upsert/
  • HTTP Method: POST
  • Content-Type: application/json
  • Authorization: Basic
  • Request body:
    {
        "body": {
            "SDVData": {
                "MessageId": "",
                "MessageType": "Integration Object",
                "IntObjectName": "LS Clinical SDV IO",
                "IntObjectFormat": "Siebel Hierarchical",
                "ListOfLS Clinical SDV IO": {
                    "Clinical Protocol": [
                        {
                            "Protocol Number": "PT_Protocol_001",
                            "ListOfClinical Subject": {
                                "Clinical Subject": [
                                    {
                                        "EDC Internal Id": "Int_Test_SVT_02",
                                        "SDV Required": "No",
                                        "Screening Number": "Test_SVT_02"
                                    },
                                    {
                                        "EDC Internal Id": "Int_Test_SVT_01",
                                        "SDV Required": "No",
                                        "Screening Number": "Test_SVT_01"
                                    }
                                ]
                            },
                            "ListOfLS CRF Tracking BC": {
                                "LS CRF Tracking BC": [
                                    {
                                        "SDV Completed": "Y",
                                        "SDV Completed Date": "01/06/2023",
                                        "Screening Number": "Test_SVT_02",
                                        "Subject EDC Internal Id": "Int_Test_SVT_02",
                                        "Name": "Screening Visit",
                                        "Clinical Item": "Screening Visit"
                                    },
                                    {
                                        "SDV Completed": "Y",
                                        "SDV Completed Date": "01/07/2023",
                                        "Screening Number": "Test_SVT_01",
                                        "Subject EDC Internal Id": "Int_Test_SVT_01",
                                        "Name": "Screening Visit",
                                        "Clinical Item": "Screening Visit"
                                    }
                                ]
                            }
                        }
                    ]
                }
            }
        }
    }

    This sample payload will result in:

    • Updating the two Subjects with SDV Required Field to 'No'.
    • It will also update the 'SDV Completed' and 'SDV Completed Date' fields of the given CRF Tracking records.

    Note that:

    • CRF Tracking Records may have Repeat Number = 0 or 1 or 2 or 3 etc.
    • The above sample payload will update the CRF Records for Repeat Number = 0.
    • Using this API, if the user wants to update the CRF Records which has Repeat Number other than 0, then the user needs to add the repeat number in parenthesis along with the 'Name' in the payload.

      For example:

      Screening
              Visit(1)

      Here “Screening Visit” is the visit name and number “1” inside parentheses is the repeat number. This is how the user can update the CRF records whose repeat number is other than 0.

      {
          "body": {
              "SDVData": {
                  "MessageId": "",
                  "MessageType": "Integration Object",
                  "IntObjectName": "LS Clinical SDV IO",
                  "IntObjectFormat": "Siebel Hierarchical",
                  "ListOfLS Clinical SDV IO": {
                      "Clinical Protocol": [
                          {
                              "Protocol Number": "PT_Protocol_001",
                              "ListOfClinical Subject": {
                                  "Clinical Subject": [
                                      {
                                          "EDC Internal Id": "Int_Test_SVT_02",
                                          "SDV Required": "No",
                                          "Screening Number": "Test_SVT_02"
                                      },
                                      {
                                          "EDC Internal Id": "Int_Test_SVT_01",
                                          "SDV Required": "No",
                                          "Screening Number": "Test_SVT_01"
                                      }
                                  ]
                              },
                              "ListOfLS CRF Tracking BC": {
                                  "LS CRF Tracking BC": [
                                      {
                                          "SDV Completed": "Y",
                                          "SDV Completed Date": "01/06/2023",
                                          "Screening Number": "Test_SVT_02",
                                          "Subject EDC Internal Id": "Int_Test_SVT_02",
                                          "Name": "Screening Visit(1)",
                                          "Clinical Item": "Screening Visit"
                                      },
                                      {
                                          "SDV Completed": "Y",
                                          "SDV Completed Date": "01/07/2023",
                                          "Screening Number": "Test_SVT_01",
                                          "Subject EDC Internal Id": "Int_Test_SVT_01",
                                          "Name": "Screening Visit(1)",
                                          "Clinical Item": "Screening Visit"
                                      }
                                  ]
                              }
                          }
                      ]
                  }
              }
          }
      }
      

      If we need to update the CRF Record with "Name": "Screening Visit", having Repeat Number = 1, then we need to provide "Name": "Screening Visit(1)" in the payload.

      If we need to update the CRF Record with "Name": "Screening Visit", having Repeat Number = 2, then we need to provide "Name": "Screening Visit(2)" in the payload.

Here are the response details for a successful request:

  • HTTP Code: 200
  • Content-Type: application/json
  • Response body:
    {
        "ResponseMessage": "Success"
    }