[Deprecated]: V1.0

post

/ec-datahub-svc/rest/v1.0/tenant/{tenantId}/studies/{studyId}/{mode}/subjects/forms

Deprecated: Use latest version instead.

Retrieves the study-permissioned Subject Forms dataset for a single study and mode.

The dataset exposes versioned subject form status history, including form repetition and rollover settings, entered-versus-total item counts, visit context, and audit columns.

Supports select, filter, sort, limit, and offset query patterns.

The dataset returns subject-form rows for form instances captured across visits in the selected study and mode.

Required permission: SubjectFormDatasetPost.

Recommended order columns: The backend query always orders results by DH_TIMESTAMP and VERSION_START in ascending order first. If orderColumns is empty, only these two columns are used. If orderColumns is provided, the specified columns are appended after DH_TIMESTAMP and VERSION_START. For stable, deterministic pagination, use STUDY_ID, SUBJECT_ID, EVENT_ID, EVENT_INSTANCE_NUM, and FORM_ID in the orderColumns field of the request payload.

Request

Path Parameters
  • Execution mode for the study.

    Allowed values: test, active, training.

    Example: test.

  • Unique study identifier supplied in the studyId path parameter.

    Use the uppercase hexadecimal UUID value for the study.

    Example: 0C7CBA3F70034C47947E2FAB086BFBF5.

  • Unique tenant identifier supplied in the tenantId path parameter.

    Use the uppercase hexadecimal UUID value for the tenant.

    Example: EC942244BB30163BE053BEC44C64CF34.

Query Parameters
  • Minimum Value: 0

    Page size for the result set.

    • 0 disables pagination and returns the maximum result set allowed by the dataset endpoint.
    • Positive values enable pagination.
    • Negative values return HTTP 400.
  • Minimum Value: 0

    Zero-based row offset.

    • Counts rows, not pages.
    • To fetch the next page, repeat the same request body and set offset = previous offset + previous count.
    • When limit = 0, this value is ignored and the response echoes offset = 0.
    • When limit > 0, an offset beyond the available rows returns HTTP 200 with an empty page.
    • Negative values return HTTP 400.
Supported Media Types
Request Body - application/json ()
Root Schema : schema
Type: object

Submit a structured query for a Data Hub dataset.

  • selectColumns is required and must contain one or more valid column names exposed by the target dataset version.
  • whereColumns is optional and provides structured filter predicates. Supported operators are =, !=, <>, >, >=, <, <=, LIKE, NOT LIKE, IN, NOT IN, BETWEEN, NOT BETWEEN, IS, and IS NOT.

    Default behavior: Data is filtered based on the STUDY_WID column.

  • orderColumns is optional and controls sort order. For stable multi-page retrieval, keep the same orderColumns across page requests.
Show Source
  • orderColumns

    Optional sort instructions to apply to the result set.

    Duplicate order-by columns are rejected.

  • selectColumns

    Required non-empty list of dataset column names to return.

    Column validation is case-insensitive, and the response echoes canonical uppercase dataset column names in the same order.

  • whereColumns

    Optional structured filter predicates.

    This is the request-body equivalent of a WHERE clause.

    All predicate values are supplied as strings and are parsed according to the underlying dataset column type.

Nested Schema : orderColumns
Type: array

Optional sort instructions to apply to the result set.

Duplicate order-by columns are rejected.

Show Source
Example:
[
    {
        "columnName":"VERSION_START",
        "sortOrder":"ASC"
    }
]
Nested Schema : selectColumns
Type: array

Required non-empty list of dataset column names to return.

Column validation is case-insensitive, and the response echoes canonical uppercase dataset column names in the same order.

Show Source
  • Required non-empty list of dataset column names to return.

    Column validation is case-insensitive, and the response echoes canonical uppercase dataset column names in the same order.

    Example: ["STUDY_VERSION","STUDY_ID"]
Example:
[
    "STUDY_VERSION",
    "STUDY_ID"
]
Nested Schema : whereColumns
Type: array

Optional structured filter predicates.

This is the request-body equivalent of a WHERE clause.

All predicate values are supplied as strings and are parsed according to the underlying dataset column type.

Show Source
Example:
[
    {
        "columnName":"STUDY_ID",
        "operator":"=",
        "value":[
            "A86F2D0BB610404DB62D37AFA9C20B50"
        ]
    }
]
Nested Schema : QueryOrder
Type: object

Sort instruction specifying a dataset column and optional order direction.

Show Source
  • Required dataset column name to sort by.

    Column-name validation is case-insensitive.

    Example: VERSION_START
  • Allowed Values: [ "ASC", "DESC" ]

    Optional sort direction.

    If omitted, SQL default ascending order is used for that column. Allowed values are ASC and DESC.

    Example: ASC
Example:
[
    {
        "columnName":"VERSION_START",
        "sortOrder":"ASC"
    }
]
Nested Schema : QueryPredicate
Type: object
Structured filter predicate used to constrain dataset results by column, operator, and value
Show Source
  • Required dataset column name to filter on. Column-name validation is case-insensitive.
    Example: STUDY_ID
  • Allowed Values: [ ">", "<", "=", ">=", "<=", "<>", "!=", "IN", "NOT IN", "BETWEEN", "NOT BETWEEN", "LIKE", "NOT LIKE", "IS", "IS NOT" ]
    Required comparison operator. Use one value for =, !=, <>, >, >=, <, <="," like, and not like; one or more values for in in; exactly two between between; value equal to null is not.< div>
    Example: =
  • value
    Filter values as strings. Value cardinality depends on the operator: one for most operators, one or more for IN/NOT IN, exactly two for BETWEEN/NOT BETWEEN, and exactly one value equal to NULL for IS/IS NOT.
Example:
[
    {
        "columnName":"STUDY_ID",
        "operator":"=",
        "value":[
            "A86F2D0BB610404DB62D37AFA9C20B50"
        ]
    }
]
Nested Schema : value
Type: array
Filter values as strings. Value cardinality depends on the operator: one for most operators, one or more for IN/NOT IN, exactly two for BETWEEN/NOT BETWEEN, and exactly one value equal to NULL for IS/IS NOT.
Show Source
  • Filter values as strings. Value cardinality depends on the operator: one for most operators, one or more for IN/NOT IN, exactly two for BETWEEN/NOT BETWEEN, and exactly one value equal to NULL for IS/IS NOT.
    Example: ["A86F2D0BB610404DB62D37AFA9C20B50"]
Example:
[
    "A86F2D0BB610404DB62D37AFA9C20B50"
]
Examples

Back to Top

Response

Supported Media Types

200 Response

Response behavior

  • The response is tabular. columns defines the selected output order, and each row in data follows that same order.
  • Every value in data is returned as a JSON string or null, including logical numbers and date/time values.
  • hasMore = "true" means more matching rows exist after the current page.
  • If filters match no rows, or offset is beyond the last row, the API returns HTTP 200 with data = [], count = 0, and hasMore = "false".

Section index

Study context | Site context | Country context | Subject context | Event context | Form context | Aggregation metrics | Audit context | Reference and system identifiers

Study context

Study-level identifiers, version metadata, and protocol attributes associated with the dataset row.

Column Name Data Type Description
STUDY_NAMEVARCHAR2(64 CHAR)Study identifier associated with the form row.
STUDY_VERSIONVARCHAR2(100 CHAR)Indicates the study version number of the referencing data in a custom report.

Parent topic: Section index


Site context

Site profile, operational settings, and site-maintained contact details associated with the dataset row.

Column Name Data Type Description
SITE_NAMEVARCHAR2(500 CHAR)Indicates the site's name as entered by a site manager when they created or last modified a site.
FROM_SITE_NAMEVARCHAR2(500 CHAR)If a subject is transferred, this field is populated with the site the subject was transferred from.
TO_SITE_NAMEVARCHAR2(500 CHAR)If a subject is transferred, this field is populated with the site to which the subject was transferred.
INVESTIGATORVARCHAR2(2048 CHAR)A Principal Investigator's Full Name as listed when the site manager created the site.
ADDRESS_STREET_1VARCHAR2(150 CHAR)A site's first address as entered by the site manager when they created or last modified the site.
ADDRESS_STREET_2VARCHAR2(150 CHAR)A site's second address as entered by the site manager when they created or last modified the site.
ADDRESS_CITYVARCHAR2(100 CHAR)A site's city as entered by the site manager when they created or last modified the site.
ADDRESS_STATE_OR_PROV_OR_CNTYVARCHAR2(100 CHAR)A site's state, province, or county as entered by the site manager when they created or last modified the site.
ADDRESS_POSTALCODEVARCHAR2(20 CHAR)The Zip Postal Code associated with a site's address.
ADDRESS_COUNTRYVARCHAR2(4000 CHAR)A site's country as entered by the site manager when they created or last modified the site. The field display the country ISO code.

Parent topic: Section index


Country context

Country-level fields exposed separately in Oracle Analytics for geographic reporting.

Column Name Data Type Description
COUNTRY_NAMEVARCHAR2(4000 CHAR)Indicates a country's two-digit ISO code.

Parent topic: Section index


Subject context

Subject identity, status, enrollment, and transfer attributes associated with the record.

Column Name Data Type Description
SUBJECT_NAMEVARCHAR2(500 CHAR)Name of the subject associated with the form row.
SUBJECT_NUMBERVARCHAR2(500 CHAR)

The number currently assigned to the subject in the system as identifier.

Note: NULL is displayed if a subject was removed using the Undo Add Subject feature.

OLD_SUBJECT_NUMBERVARCHAR2(500 CHAR)A subject previously assigned number in the system for a transferred subject.
NEW_SUBJECT_NUMBERVARCHAR2(500 CHAR)A subject newly assigned number in the system after the subject was transferred.

Parent topic: Section index


Event context

Event metadata, visit scheduling, and visit-status attributes associated with the dataset row.

Column Name Data Type Description
EVENT_NAMEVARCHAR2(64 CHAR)The name of the visit associated with the form row.
EVENT_TYPEVARCHAR2(100)

Displays the type of event that impacts a visit's status. Upon selecting this data element, only events that occurred in your study are displayed. For example, you may see some of the following events:

  • Visit_Complete
  • Visit_Date_Changed
  • VisitDateCleared
  • VisitDateEntered
  • Visit_Not_Started
  • Visit_Skip_Undone
  • Visit_Skipped
  • Visit_Started
  • Visit_Inserted: this option refers to new visits inserted into the study's schedule as an Advanced Study Versioning change.
Possible values include Visit Started, Visit Completed, Visit Not Done, or Visit Missed.
VISIT_TYPEVARCHAR2(100 CHAR)Displays the type of visit: Screening Randomization Dispensation Non-Dispensation Optional Withdrawal Study Completion Possible values include ScreeningVisit, ScheduleAbleVisit, SubjectWithdrawalVisit, SubjectCompletionVisit, UnScheduleAbleVisit, Event, AdverseEvent, ScreenFailureVisit, or ReScreeningEvent.
VISIT_STATUSVARCHAR2(32 CHAR)

Indicates a visit's status in the system. Can have one of the following values:

  • NEW: the visit was dynamically triggered and has no data.
  • SCHEDULED: the visit is scheduled for the subject but has no data. Note: Future visits are included with the status of SCHEDULED. Dynamic and cycle visits will not be included until an event happens that causes their creation on the subject's schedule.
  • INPROGRESS: the visit was never completed and has one or more required items with no saved data.
  • INCOMPLETE: the visit was completed at some point but now has one or more required items that are not completed.
  • INCOMPLETE_ERR: the visit was completed at some point but now has one or more required items that are not completed and open queries.
  • COMPLETE: all required items within the visit are completed and there are no open queries.
  • COMPLETE_ERR: all required items within the visit are completed but there are open queries.
  • SKIPPED: the visit was part of the visit schedule for the subject but was skipped by a site user.
  • UNDO_SKIP: the visit was skipped at some point but the skip action was undone.
EVENT_INSTANCE_NUMNUMBERIndicates the unscheduled visit instance number as designed by the study designer.
IS_REQUIREDCHAR(1)Indicates if a visit is required. Possible values include 0 or 1.
IS_SCHEDULED_VISITCHAR(1)Indicates if the visit is scheduled. Possible values include Y or N.
SCHEDULED_FROM_EVENT_NAMEVARCHAR2(64 CHAR)

Displays the EVENT_TITLE (visit title) of the Scheduled From visit as defined in the Visit Schedule.

Note: If a visit is not scheduled or it is the first visit in the schedule, then this element is populated with the visit's own title. For example, Screening Visit is displayed for the Screening Visit, if it is the first visit in the schedule.

VISIT_START_DATEDATEDate stamp of a visit's start date.
PROJECTED_VISIT_START_DATETIMESTAMP(6)Date when the next scheduled visit should start in the study, based on the configured visit schedule.
PROJECTED_VISIT_END_DATETIMESTAMP(6)Date when the next scheduled visit should end in the study, based on the configured visit schedule.
PROJECTED_VISIT_DATETIMESTAMP(6)Date when the next scheduled visit should take place in the study, based on the configured visit schedule.
DELAY_DAYSNUMBERThe number of days between the prior scheduled visit.
DELAY_HOURSNUMBERThe number of hours between the prior scheduled visit (in addition to the DELAY_DAYS field).
VISIT_WINDOW_BEFORE_DAYSNUMBERIndicates how many days before the scheduled date and time the visit can occur, as entered by a study designer.
VISIT_WINDOW_BEFORE_HOURSNUMBERIndicates how many hours before the scheduled date and time the visit can occur, as entered by a study designer.
VISIT_WINDOW_AFTER_DAYSNUMBERIndicates how many days after the scheduled date and time the visit can occur.
VISIT_WINDOW_AFTER_HOURSNUMBERIndicates how many hours after the scheduled date and time the visit can occur.

Parent topic: Section index


Form context

Form-level design or collected-form attributes associated with the dataset row.

Column Name Data Type Description
FORM_NAMEVARCHAR2(64 CHAR)The name of the form, as specified by the study designer.
FORM_REFNAMEVARCHAR2(64 CHAR)A form's reference name.
REPEAT_SEQUENCE_NUMBERNUMBER

Refers to the row instance number of all applicable form types with repeating data:

  • Two section forms: unique numeric identifier of the row in the repeating section.
  • Lab forms: unique numeric identifier of the row in the repeating section that captures lab tests and results.
  • Repeating forms: indicates the repeating form number.
IS_REPEATINGCHAR(1)Indicates if it is a repeating form. Possible values include Y or N.
IS_ROLLOVERCHAR(1)Indicates whether the form contains a rollover type of question. Possible values include Y or N.
FREEZEVARCHAR2(16 CHAR)Indicates if a form is frozen by a data manager or CRA. Possible values include FROZEN or UNFROZEN.
VERIFIEDVARCHAR2(16 CHAR)

Indicates the form's verification status. Data element can be populated with the following values:

  • VERIFIED: A question, form, or visit is verified.
  • UNVERIFIED: A question, form, or visit was once verified, then updated making it unverified.
SIGNEDVARCHAR2(16 CHAR)Indicates if a valid casebook signature is applied to the form.

Parent topic: Section index


Aggregation metrics

Derived counts and rollup indicators calculated from the underlying study data.

Column Name Data Type Description
TOTAL_ITEMSNUMBERNumber of total questions in a form.
ENTERED_ITEMSNUMBERNumber of questions answered in a form.

Parent topic: Section index


Audit context

Audit-trail metadata describing row versioning, acting users, and reason-for-change details.

Column Name Data Type Description
VERSION_STARTTIMESTAMP(6)Audit trail timestamp when this version of the dataset row became effective. Together with VERSION_END, it defines the validity window for the row version.
VERSION_ENDTIMESTAMP(6)Indicates the date and time of when data was changed, if the data is not current.
OPERATION_TYPEVARCHAR2(16 CHAR)

Audit trail field that indicates how the dataset row version was produced.

  • CREATED: the row was initially created.
  • MODIFIED: an existing row was updated.
  • REMOVED: the row was removed from the active record set.
USER_NAMEVARCHAR2(255 CHAR)

Audit trail field that represents the user who performed the action.

The value for this column may represent a user's actual username or a user's email address, depending on how the user login was defined in Oracle Life Sciences IAMS.

SUBJECT_FORMS_USER_NAMEVARCHAR2(255 CHAR)Audit trail field that represents the user who performed the action on the subject form row.
SUBJECT_FORMS_VERSION_ENDTIMESTAMP(6)The date and time when the current subject form row stopped being current.
SUBJECT_FORMS_VERSION_STARTTIMESTAMP(6)The date and time when the current subject form row became effective.
SUBJECT_FORMS_DH_TIMESTAMPTIMESTAMP(6)A timestamp that indicates when the form row became available in the dataset.
OBJECT_VERSION_NUMBERNUMBERAudit trail field that represents the version number of the data.
REASONVARCHAR2(255 CHAR)Audit trail reason recorded for the dataset row change. Populated when a reason for change is provided for the row update.
COMMENTVARCHAR2(2048 CHAR)Required comment in a reason for change if Other is selected. Populated as Rule Execution for calculated values.
IS_CURRENTCHAR(1)Audit trail flag that indicates whether the dataset row version is the current version (Y) or a historical version (N).

Parent topic: Section index


Reference and system identifiers

System identifiers, numeric reference keys, and technical linkage fields carried with the dataset row.

Column Name Data Type Description
FORM_IDRAW(16 BYTE)GUID of the form.
FORM_WIDNUMBER(10)A number that represents the unique identifier of the form.
SUBJECT_FORMS_USER_IDRAW(16 BYTE)GUID of the user who performed the action on the subject form row.
SUBJECT_FORMS_USER_WIDNUMBER(10)Indicates a user numeric identifier for the user who performed the action on the subject form row.
STUDY_IDRAW(16 BYTE)GUID of the study.
STUDY_WIDNUMBER(10)A number that represents the unique identifier of the study.
SITE_IDRAW(16 BYTE)GUID of the site.
SITE_WIDNUMBER(10)A number that represents the unique identifier of a site.
FROM_SITE_IDRAW(16 BYTE)GUID of the site from which the subject was transferred.
FROM_SITE_WIDNUMBER(10)Indicates the site numeric identifier from which the subject was transferred.
TO_SITE_IDRAW(16 BYTE)GUID of the site to which the subject was transferred.
TO_SITE_WIDNUMBER(10)Indicates the site numeric identifier to which the subject was transferred.
USER_IDRAW(16 BYTE)GUID of the user.
USER_WIDNUMBER(10)Indicates a user's numeric identifier.
SUBJECT_IDRAW(16 BYTE)GUID of the subject within the study.
SUBJECT_WIDNUMBER(10)A number that represents the unique identifier of the subject.
SUBJECT_TRANSFER_IDRAW(16 BYTE)GUID of the subject transfer record.
SUBJECT_TRANSFER_WIDNUMBER(10)Indicates the numeric identifier of the subject transfer record.
EVENT_IDRAW(16 BYTE)GUID of the visit or event.
EVENT_WIDNUMBER(10)A number that represents the unique identifier of the event.
SCHEDULED_FROM_EVENT_IDRAW(16 BYTE)GUID of the parent visit from which the associated visit was scheduled.
SCHEDULED_FROM_EVENT_WIDNUMBER(10)A number that represents the unique identifier of the parent visit from which the associated visit was scheduled.
SUBJECT_EVENTINST_FORM_WIDNUMBER(10)A number that represents the unique identifier of the subject form record.
COUNTRY_WIDNUMBER(10)A number that represents the unique identifier of the country associated with the site address.
DH_SUBJECT_FORMS_IS_CURRENTCHAR(1)Indicates whether the related subject forms dataset row is the current version. Possible values include Y or N.
IDRAW(16 BYTE)Row-level GUID that uniquely identifies this Subject Forms dataset record.
SUBJECT_EVENT_INST_WIDNUMBER(10)A number that represents the unique identifier of the subject event instance.
SUBJECT_TRANSFER_VERSION_STARTTIMESTAMP(6)Date and time when the subject transfer version became effective.
SUBJECT_TRANSFER_VERSION_ENDTIMESTAMP(6)Date and time when the subject transfer version stopped being current.
FORM_SECTION_IDRAW(16 BYTE)GUID of the form section.
SOFTWARE_VERSION_NUMBERNUMBERA number that increases incrementally every time a data point is modified.

Parent topic: Section index


Body ()
Root Schema : DataHubReportDto
Type: object

Tabular dataset response for a dynamic Data Hub query.

columns defines the selected output order, and each row in data aligns positionally to that list.

Show Source
  • columns

    Ordered dataset column names selected by the client.

    Each row in data uses this exact order.

  • Number of rows returned in the current page.

    Example: 2
  • data

    Row data aligned positionally with columns.

    Each cell is serialized as a JSON string or null, even for logical numbers and timestamps.

  • String pagination flag ("true" or "false") indicating whether more matching rows exist after the current page.

    Returned as a string for backward compatibility.

    Example: false
  • Requested page size.

    Dataset endpoints commonly use 0 to mean unpaginated or all rows.

    Example: 100
  • Zero-based row offset applied to the result set.

    Dataset endpoints that disable pagination with limit = 0 typically echo offset = 0 in the response.

    Example: 0
  • Total number of matching rows across all pages after filters are applied.

    This can be non-zero even when the current page is empty because the requested offset is beyond the last row.

    Example: 2
Nested Schema : columns
Type: array

Ordered dataset column names selected by the client.

Each row in data uses this exact order.

Show Source
  • Ordered dataset column names selected by the client.

    Each row in data uses this exact order.

    Example: ["STUDY_ID","RECORD_ID","STATUS"]
Example:
[
    "STUDY_ID",
    "RECORD_ID",
    "STATUS"
]
Nested Schema : data
Type: array

Row data aligned positionally with columns.

Each cell is serialized as a JSON string or null, even for logical numbers and timestamps.

Show Source
  • items

    Row data aligned positionally with columns.

    Each cell is serialized as a JSON string or null, even for logical numbers and timestamps.

Example:
[
    [
        "A86F2D0BB610404DB62D37AFA9C20B50",
        "REC001",
        "Active"
    ],
    [
        "A86F2D0BB610404DB62D37AFA9C20B50",
        "REC002",
        "Inactive"
    ]
]
Nested Schema : items
Type: array

Row data aligned positionally with columns.

Each cell is serialized as a JSON string or null, even for logical numbers and timestamps.

Show Source
  • Row data aligned positionally with columns.

    Each cell is serialized as a JSON string or null, even for logical numbers and timestamps.

    Example: [["A86F2D0BB610404DB62D37AFA9C20B50","REC001","Active"],["A86F2D0BB610404DB62D37AFA9C20B50","REC002","Inactive"]]
Example:
[
    [
        "A86F2D0BB610404DB62D37AFA9C20B50",
        "REC001",
        "Active"
    ],
    [
        "A86F2D0BB610404DB62D37AFA9C20B50",
        "REC002",
        "Inactive"
    ]
]
Examples

400 Response

Returned when the request is invalid.

  • Causes include invalid tenantId or studyId, negative limit or offset, empty selectColumns, invalid dataset columns, invalid whereColumns operator/value combinations, duplicate orderColumns, invalid sortOrder, and malformed typed filter values.
  • Error payload format: {"status":"failed","result":null,"errorData":{"errorCode":"...","errorMessage":"...","details":{...}},"version":1}.
Body ()
Root Schema : DataHubResponse
Type: object

Standard Data Hub response envelope.

Successful responses return status as "success" and populate result. Failed responses return status as "failed" and populate errorData.

Show Source
Nested Schema : errorData
Type: object

Machine-readable error payload when status is "failed".

This field is null when status is "success".

Example:
{
    "errorCode":"VALIDATION_ERROR",
    "errorMessage":"Invalid column name specified in the select columns: SITE_ID1",
    "details":{
        "field":"selectColumns"
    }
}
Nested Schema : result
Type: object

Payload returned by the API when status is "success".

This field is null when status is "failed".

Example:
{
    "message":"Operation succeeded"
}
Examples

401 Response

Returned when the request cannot be authenticated.

The response body is empty.

403 Response

Returned when the request is authenticated but the caller is not authorized to access the requested resource.

The response body contains a plain-text authorization message.

Possible response bodies:

  • Either the resource does not exist, or the user cannot access the resource.
  • The entity is in maintenance mode, or the user cannot access the resource.
Body ()
Root Schema : schema
Type: string

500 Response

Returned when an unexpected server-side error occurs while processing the request.

The response body contains the platform error payload with the error code and description.

Body ()
Root Schema : Status
Type: object
Show Source
Examples

Back to Top