Clinical Audit Records standard dataset

I am retrieving clinical transaction data with the ODM Adapter and ...

I am retrieving the clinical data transactions - using this auto-paginating, pre-installed custom dataset

New in version 2013.3.0.

[example]

Assumptions

To succeed, I have satisfied these pre-requisites:

  1. I am a valid Rave User
  2. I am a power user or similar with full view-access to my study
  3. I can follow the “next” link in the response header to get the next page.

My GET Request

URI

GET https://{host}/RaveWebServices/datasets/ClinicalAuditRecords.odm?studyoid={study-oid}&startid={start-id}&per_page={per-page}

URI Parameters

Parameter Description Mandatory? Notes
{host} The host name Yes usually “{client}.mdsol.com”
{study-oid} The study name and environment, for example: “Mediflex(Prod)” Yes a URL-escaped string
{start-id} The audit ID to start from No see below
{per-page} The amount of audits to consider for export No see below

Examples:

GET https://my-organisation.mdsol.com/RaveWebServices/datasets/ClinicalAuditRecords.odm?studyoid=Mediflex(Prod)
GET https://my-organisation.mdsol.com/RaveWebServices/datasets/ClinicalAuditRecords.odm?studyoid=Mediflex(Prod)&startid=4736745&per_page=10000

Making requests to the Clinical Audit Records standard dataset

The Clinical Audit Records standard dataset has been designed and optimized to work through a URL’s audit trail to retrieve the audit data for a single study. All the audit entries in one Rave URL are unique and sequential.

Clinical Audit Record extraction for a study may have non-sequential SourceID (AuditID) because different users could modify clinical data across many studies, at any given time. Each audit ID corresponds to the AuditRecord element in ODM. AuditRecord has several child elements, and describes the audit data.

  • SourceID is the AuditID in Rave.
  • The UserRef element has the UserOID attribute, whose value represents the user who entered the audit.
  • The LocationRef element has the LocationOID attribute, which has the value of Site number.
  • The DateTimeStamp element represents the database audit timestamp.
  • The ReasonForChange element represents the reason for the audit.

Audit ODM:

<ClinicalData StudyOID="{study_oid}" MetaDataVersionOID="18" mdsol:AuditSubCategoryId="192">
  <SubjectData SubjectKey="3bddb79c-0023-47bb-8861-5345f8987c7e" mdsol:SubjectKeyType="SubjectUUID" mdsol:SubjectName="{subject Name}" TransactionType="Upsert">
    <AuditRecord>
      <UserRef UserOID="cra"/>
      <LocationRef LocationOID="12345"/>
      <DateTimeStamp>2009-12-01T15:27:46</DateTimeStamp>
      <SourceID>670</SourceID>
      <ReasonForChange>Data Entry Error</ReasonForChange>
    </AuditRecord>
  <SiteRef LocationOID="12345"/>
  </SubjectData>
</ClinicalData>

The dynamic features are:

1) Getting up-to-date and staying up-to-date with Paginated requests

Pagination is employed to break up the large amount of data over multiple requests into manageable sized chunks. The “next” link in the response header should be followed after the initial request, and for all subsequent calls until a request is received with no “next” link in the response header.

An accumulative request followed by incremental requests

Typically a synchronisation will start with a series of paged requests to the dataset until all data is fetched. Then on some schedule - perhaps daily - the client will make a subsequent series of paged requests, starting at the next point in the audit trail.

  • The first ever request should not include pagination items in the query string.
  • Receiving a response that contains no “next” link in the header indicates that all data has been received.
  • The last response will contain an empty ODM element, with no child elements.
  • After each request the Maximum received AuditID needs to be captured, to determine where to start from for the next scheduled synchronisation.

2) Controlling the request size with per_page

Request size is controlled via the ‘per_page’ value in the request query string.

The ‘per-page’ parameter is the size of the search range. ‘per_page’ controls the number of audit records considered for extraction. For performance reasons, ClinicalAuditRecords will search for all the audits within the ‘per-page’ range.

As a result of optimisation, the number of results returned is not equal to the ‘per_page’ value.

Note

The acceptable ‘per_page’ range is between 1,000 to 1,000,000. If the ODM Adaptor is taking longer than you expect, lower the ‘per_page’ parameter value to 1,000.

[example]

The Response

The whole response will either be:

  1. SUCCESS: Return an HTTP Response code of 200 OK - with all of the ODM data ( the ODM element is closed );
  2. FAIL: Return an HTTP Response code of 4xx or 5xx. Further details will be logged in the database.
HTTP response code Reason Body Notes
200 The transaction was successful The retrieved data in ODM format “<ODM > ... </ODM>” ( see below )
4xx Request Failure n/a (Details will be logged in the database) ( see below )
5xx Service Failure n/a (Details will be logged in the database) ( see below )

Handling Errors

We strongly advise that clients parse the ODM received to check that the ODM element is closed. An unclosed ODM element indicates that not all of the streamed data was received. Some re-try logic should be in place for this possibility.

Error reporting for custom datasets is limited to just the HTTP response code such as 400 or 500. A single HTTP response code can have any number of causes. Upon receiving such errors, further investigation is advised.

Header

The response header contains the following elements:

  • Content-type : “text/xml”
  • HTTP response code
  • Pagination links

Body

The response Body is a ODM 1.3 transactional document

The response ODM document is constructed as follows [1]:

<?xml version="1.0" ?>
<ODM  >
  <ClinicalData StudyOID="{study-oid}" MetaDataVersionOID="{metadata-version-oid}" mdsol:AuditSubCategoryName="{audit-subcategory-name}">
    <SubjectData SubjectKey="{subject-key}" mdsol:SubjectKeyType="SubjectUUID" mdsol:SubjectName="{subject-name}" TransactionType="{Upsert|Remove}" >

      <AuditRecord>
        <UserRef UserOID="{user-oid}"/>
        <LocationRef LocationOID="{location-oid}"/>
        <DateTimeStamp>{time-stamp}</DateTimeStamp>
        <ReasonForChange>{reason-for-change}</ReasonForChange>
        <SourceID>{source-id}</SourceID>
      </AuditRecord>

      <SiteRef LocationOID="{location-oid}" />
    </SubjectData>
  </ClinicalData>
  <ClinicalData StudyOID="{study-oid}" MetaDataVersionOID="{metadata-version-oid}" mdsol:AuditSubCategoryName="{audit-subcategory-name}">
    <SubjectData SubjectKey="{subject-key}" mdsol:SubjectKeyType="SubjectUUID" mdsol:SubjectName="{subject-name}" TransactionType="{Upsert|Remove}" >
       <StudyEventData StudyEventOID="{folder-oid}" StudyEventRepeatKey="{folder-repeat-key}" TransactionType="{Upsert|Remove}" >
        <FormData FormOID="{form-oid}" FormRepeatKey="{form-repeat-key}" TransactionType="{Upsert|Remove}" >
          <ItemGroupData ItemGroupOID="{record-oid}" ItemGroupRepeatKey="{item-group-repeat-key}" TransactionType="{Upsert|Remove}" >
            <ItemData ItemOID="{field-oid}" Value="{data}" TransactionType="{Upsert|Remove}" {mdsol:Freeze="{Yes|No}"} {mdsol:Verify="{Yes|No}"} {mdsol:Lock="{Yes|No}"} />

              <AuditRecord>
                <UserRef UserOID="{user-oid}"/>
                <LocationRef LocationOID="{location-oid}"/>
                <DateTimeStamp>{time-stamp}</DateTimeStamp>
                <ReasonForChange>{reason-for-change}</ReasonForChange>
                <SourceID>{source-id}</SourceID>
              </AuditRecord>

              <!-- "Optional Field Elements (one or none of the below)" -->

              <mdsol:Query QueryRepeatKey="{query id}" Response="{response}" Recipient="{recipient}" Value="{value}" Status="{status}"/>
              <mdsol:Comment CommentRepeatKey="{comment id}" TransactionType="Insert|Update|Remove|Upsert" Value="{value}" />

              <!-- "End - Optional Field Elements " -->

            </ItemData>
          </ItemGroupData>
        </FormData>
      </StudyEventData>
    </SubjectData>
  </ClinicalData>
</ODM>

Attributes for this feature [1]:

Attribute or element Description Mandatory? Example
UserOID=”{user-oid}” The User OID is the User’s Rave Login. This user performed the action which created the audit record   “JBlogs”
LocationOID=”{location-oid}” The Location OID. Maps to site number   “1234”
{time-stamp} The timestamp of the audit record   2012-12-06T09:45:39
{reason-for-change} The reason for the audit record   “Enrolled”
{source-id} The database key for the Audit record   “1234”
{mdsol:Freeze=”{Yes|No}”} This attribute is included if the audit record changes the Freeze status   mdsol:Freeze=”Yes”
{mdsol:Verify=”{Yes|No}”} This attribute is included if the audit record changes the Verify status   mdsol:Verify=”Yes”
{mdsol:Lock=”{Yes|No}”} This attribute is included if the audit record changes the Lock status   mdsol:Lock=”Yes”
mdsol:AuditSubCategoryName The Audit SubCategory Name   “Verify”
mdsol:Query The query in Rave    
QueryRepeatKey=”{query id}” The query ID   QueryRepeatKey=”1”
Response=”{response}” The response from the query   Response=”Please review”
Recipient=”{recipient}” The marking group   Recipient=”Site from System”
Value=”{value}” The query or comment value   Value=”Please reconcile”
Status=”{status}” The query status   Status=”Answered”
mdsol:Comment The comment in Rave    
CommentRepeatKey=”{comment id}” The comment ID in Rave   CommentRepeatKey=”1”
TransactionType= “Insert|Update|Remove|Upsert” The comment transaction type   TransactionType= “Insert”
Signature The signature in Rave  
<Signature>
<UserRef UserOID=”cra”/> <SignatureRef SignatureOID=”160”/> <DateTimeStamp> 2014-03-25T08:56:34 </DateTimeStamp>

</Signature>

SignatureOID=”{oid}” The signature OID   SignatureOID=”160”
mdsol:Review This element maps to the Review check box of the Review Group specified in a Rave field  
<mdsol:Review Reviewed=”Yes”
GroupName=”Data Management”/>
Reviewed =”{Yes|No}”} Yes maps to Review checked in Rave. No maps to Review unchecked in Rave   Reviewed=”Yes”
GroupName=”{group-name}” Specifies the name of the Review Marking Group   GroupName=”Data Manangement”

Exported Data Notes :

  • Audit records are exported at each object level: for Subjects, Folders, Forms, Records and Fields.
  • Each audit record is represented as a separate ODM ClinicalData element.
  • Audits for the same subject are represented as separate elements, and not grouped into a single ClinicalData.
  • The TransactionTypes for ItemData elements are ‘Upsert’ or ‘Remove’. It is not possible to reliably distinguish between ‘Insert’ and ‘Update’ transactions when sequentially reading through the Rave audit trail.
  • The database key for Audit records, AuditID, is exported as SourceID in the ODM AuditRecord.
  • Field level Status audits are exported for ‘Verify’, ‘Freeze’, ‘Lock’.
  • Audit records include Protocol Deviations, Queries, Comments and Signatures.
  • For Subject Migrations, the metadata version attribute value will change.
  • Records are ordered sequentially by SourceID.
  • Included audit subcategories
  • Excluded audit subcategories

[example]

Scenarios

Background:
    Given I am a Rave user
    And there is a study with the following structure:
      | folder | form | field  | field_data_type | field_control_type |
      | VISIT  | AE   | AEDESC | text            | Text               |
      | VISIT  | AE   | AESDT  | date            | DateTime           |
    And there is a subject in the study with the following data:
      | folder | form | field  | value       |
      | VISIT  | AE   | AEDESC | HEADACHE    |
      | VISIT  | AE   | AESDT  | 29 JAN 2009 |
    And there is a dataset called "ClinicalAuditRecords"

  Scenario: Get ClinicalAuditRecords service returns UUID as Subject key
    Given the background
    And the subject has a UUID "c45f3bda-efd5-400f-aa72-b174dc0c93dd" not visible in Rave
    When I make an HTTP GET request to the URL "/datasets/ClinicalAuditRecords.odm?studyoid={study_oid}&startid=1&per_page=10"
    Then I should receive a successful response
    And the response should be a valid ODM 1.3 transactional document
    And should have the following ODM elements:
    """
    <ClinicalData mdsol:AuditSubCategoryName="SubjectCreated" ...>
        <SubjectData SubjectKey="c45f3bda-efd5-400f-aa72-b174dc0c93dd" mdsol:SubjectKeyType="SubjectUUID" mdsol:SubjectName="ASUBJECT"  TransactionType="Upsert"  >
          <AuditRecord>
                <UserRef .../>
                <LocationRef LocationOID="12345"/>
                <DateTimeStamp>...</DateTimeStamp>
                <ReasonForChange></ReasonForChange>
                <SourceID>...</SourceID>
          </AuditRecord>
          <SiteRef LocationOID="12345" />
        </SubjectData>
    </ClinicalData>
    """

  Scenario: Including ReasonForChange
    Given I update the field "AESDT" in folder "VISIT" with value "26 Feb 2012"
    When I make an HTTP GET request to the URL "/datasets/ClinicalAuditRecords.odm?studyoid={study_oid}&startid=1&per_page=100"
    Then I should receive a successful response
    And the response should be a valid ODM 1.3 transactional document
    And should have the following ODM elements:
    """
    <ClinicalData mdsol:AuditSubCategoryName="EnteredWithChangeCode" ...>
      <ItemData ItemOID="AE.AESDT" TransactionType="Upsert" Value="26 Feb 2012">
      <ReasonForChange>Data Entry Error</ReasonForChange>
      </ItemData>
    </ClinicalData>
    """

  Scenario: Clinical audit request without environment in the studyoid parameter
    When I make an HTTP GET request to the URL "/datasets/ClinicalAuditRecords.odm?studyoid={study name}&startid=1&per_page=100"
    Then I should receive a successful response
    And the response should be a valid ODM 1.3 transactional document
    And should have the following ODM elements:
    """
    <ClinicalData mdsol:AuditSubCategoryName="SubjectCreated" ...>
    ...
    </ClinicalData>
    """

  Scenario Outline: Clinical audit data for Queries where value has more than one pipe [ and special characters and comments and protocol deviations ]
    Given I query the field "AEDESC" in folder "VISIT" with the value "<query_value>"
    When I make an HTTP GET request to the URL "/datasets/ClinicalAuditRecords.odm?studyoid={study_oid}&startid=1&per_page=1000"
    Then I should receive a successful response
    And the response should be a valid ODM 1.3 transactional document
    And should have the following ODM elements:
    """
      <mdsol:Query Value="<query_output_value>" Status="Open" Recipient="{marking group}" .../>
    """

  Examples:
    | query_value                                       | query_output_value                     |
    | this is the value\|                               | this is the value                      |
    | this\| and this\| and this                        | this\| and this                        |
    | this\| and this\| this\| and this                 | this\| and this\| this                 |
    | this\| and this\| this\| and this\| and this      | this\| and this\| this\| and this      |
    | this \| and this\| and this\| and this\| and this | this \| and this\| and this\| and this |

  Scenario: Clinical audit record extract must include comments
    Given there is a comment "This is a new approximate value." against the field "AEDESC" located in the form "AE" inside folder "VISIT" for the subject
    When I make an HTTP GET request to the URL "/datasets/ClinicalAuditRecords.odm?studyoid={study_oid}&startid=1&per_page=100"
    Then I should receive a successful response
    And the response should be a valid ODM 1.3 transactional document
    And should have the following ODM elements:
    """
    <ClinicalData mdsol:AuditSubCategoryName="CommentAdd" ...>
      <ItemData ItemOID="AE.AEDESC"...>
      ...
        <mdsol:Comment TransactionType="Insert" Value="This is a new approximate value." .../>
      </ItemData>
    </ClinicalData>
    """

  Scenario: Clinical Audit data export for inactivated Subject
    Given the background
    But the subject has been inactivated
    And the subject has a UUID "c45f3bda-efd5-400f-aa72-b174dc0c93dd" not visible in Rave
    When I make an HTTP GET request to the URL "/datasets/ClinicalAuditRecords.odm?studyoid={study_oid}&startid=1&per_page=10"
    Then I should receive a successful response
    And the response should be a valid ODM 1.3 transactional document
    And should have the following ODM elements:
    """
        <SubjectData SubjectKey="c45f3bda-efd5-400f-aa72-b174dc0c93dd" mdsol:SubjectKeyType="SubjectUUID" mdsol:SubjectName="ASUBJECT" TransactionType="Remove">
          ...
        </SubjectData>
    """

  Scenario: Hard deleted Subject clinical Audit data should be exported
    Given the background
    But the subject has been hard deleted
    And the subject has a UUID "c45f3bda-efd5-400f-aa72-b174dc0c93dd" not visible in Rave
    When I make an HTTP GET request to the URL "/datasets/ClinicalAuditRecords.odm?studyoid={study_oid}&startid=1&per_page=10"
    Then I should receive a successful response
    And the response should be a valid ODM 1.3 transactional document
    And should have the following ODM elements:
    """
    <ClinicalData mdsol:AuditSubCategoryName="SubjectCreated" ...>
        <SubjectData mdsol:SubjectName="ASUBJECT"  TransactionType="Upsert" ... >
          <AuditRecord>
                ...
          </AuditRecord>
          <SiteRef LocationOID="12345" />
        </SubjectData>
    </ClinicalData>
    """

  Scenario: Clinical Audit data export for duplicate subject
    Given the background
    But there is another subject with the same name
    And the subject has a UUID "c45f3bda-efd5-400f-aa72-b174dc0c93dd" not visible in Rave
    When I make an HTTP GET request to the URL "/datasets/ClinicalAuditRecords.odm?studyoid={study_oid}&startid=1&per_page=10"
    Then I should receive a successful response
    And the response should be a valid ODM 1.3 transactional document
    And should have the following ODM ClinicalData elements:
    """
    <ClinicalData mdsol:AuditSubCategoryName="SubjectCreated" ...>
        <SubjectData mdsol:SubjectName="ASUBJECT"  TransactionType="Upsert" ... >
                ...
    <ClinicalData mdsol:AuditSubCategoryName="SubjectCreated" ...>
      <SubjectData mdsol:SubjectName="ASUBJECT"  TransactionType="Upsert" ... >
      ...
    """

  Scenario Outline: Clinical Audit data export for object name changed
    Given the background
    But the <object> has been renamed
    And the subject has a UUID "c45f3bda-efd5-400f-aa72-b174dc0c93dd" not visible in Rave
    When I make an HTTP GET request to the URL "/datasets/ClinicalAuditRecords.odm?studyoid={study_oid}&startid=1&per_page=10"
    Then I should receive a successful response
    And the response should be a valid ODM 1.3 transactional document
    And should have the following ODM elements:
    """
      <ClinicalData mdsol:AuditSubCategoryName="<audit_subcategory_name>" ...>
        <SubjectData ...>
          ...
        </SubjectData>
      </ClinicalData>
    """

  Examples:
    | object   | audit_subcategory_name |
    | subject  | SubjectNameChanged     |
    | instance | ObjectNameChanged      |

  Scenario Outline: Clinical audit request without studyoid parameter
    When I make an HTTP GET request to the URL "/datasets/ClinicalAuditRecords.odm?<studyoid_param>startid=1&per_page=100"
    Then I should receive an HTTP response with status code "InternalServerError"

  Examples:
    | studyoid_param             |
    | studyoid=somethinginvalid& |
    | studyoid=                  |
    |                            |

  Scenario: Clinical audit request where the study is associated with inactive site
    Given the background
    But the site associated with the study is inactive
    When I make an HTTP GET request to the URL "/datasets/ClinicalAuditRecords.odm?studyoid={study_oid}&startid=1&per_page=100"
    Then I should receive a successful response
    And the response should be a valid ODM 1.3 transactional document
    And should have the following ODM elements:
    """
    <ClinicalData mdsol:AuditSubCategoryName="SubjectCreated" ...>
    ...
    </ClinicalData>
    """

  Scenario: Clinical audit request by an inactive the user
    Given the background
    But the user is inactive
    When I make an HTTP GET request to the URL "/datasets/ClinicalAuditRecords.odm?studyoid={study_oid}&startid=1&per_page=100"
    Then I should receive an HTTP response with status code "Unauthorized"

  Scenario: No audit data for new study
    Given the background
    But there is another study with the following structure:
      | folder | form | field  | field_data_type | field_control_type |
      | VISIT  | AE   | AEDESC | text            | Text               |
      | VISIT  | AE   | AESDT  | date            | DateTime           |
    And the study is pushed to site "12345"
    And there is no clinical data for the study
    When I make an HTTP GET request to the URL "/datasets/ClinicalAuditRecords.odm?studyoid={study_oid}&startid=1"
    Then I should receive a successful response
    And the response should be a valid ODM 1.3 transactional document
    And the response body should be an empty ODM document

  Scenario: Clinical audit record extract must include signature
    Given the background
    And I sign and save the data page -/pending
    When I make an HTTP GET request to the URL "/datasets/ClinicalAuditRecords.odm?studyoid={study_oid}&startid=1&per_page=10"
    Then I should receive a successful response
    And the response should be a valid ODM 1.3 transactional document
    And should have the following ODM elements:
    """
      <ClinicalData StudyOID="{study_oid}" mdsol:AuditSubCategoryName="Signed">
        <ItemGroupData ItemGroupOID="AE"  >
            <ItemData ItemOID="AE.AEDST" TransactionType="Upsert"  >
                <Signature>
                    <UserRef UserOID="{user}"/>
                    <LocationRef LocationOID="{}"/>
                    <SignatureRef SignatureOID="{oid}" />
                    <DateTimeStamp>{date time}</DateTimeStamp>
                </Signature>
            </ItemData>
    </ClinicalData>
    """

  Scenario Outline: Error when service is requested with invalid start ID
    Given the background
    When I make an HTTP GET request to the URL "/datasets/ClinicalAuditRecords.odm?studyoid={study_oid}&startid=<startID>&per_page=<perpage>"
    Then I should receive an HTTP response with status code "<response_code>"

  Examples:
    | startID | perpage | response_code       |
    | -1      | 10      | InternalServerError |
    | a       | 10      | BadRequest          |
    | 1       | abc     | BadRequest          |

  Scenario: Calling user not assigned to study
    Given the background
    But I am not associated with the study
    When I make an HTTP GET request to the URL "/datasets/ClinicalAuditRecords.odm?studyoid={study_oid}&startid=1"
    Then I should receive an HTTP response with status code "InternalServerError"

  Scenario: Calling user not assigned to any site
    Given the background
    But I am not assigned to any site
    When I make an HTTP GET request to the URL "/datasets/ClinicalAuditRecords.odm?studyoid={study_oid}&startid=1"
    Then I should receive a successful response
    And the response should be a valid ODM 1.3 transactional document
    And the response body should be an empty ODM document

  Scenario: Calling user assigned to a specific site only
    Given the background
    And the study is pushed to another site "99999"
    And there is a subject "BSUBJECT" in site "99999"
    But I am not assigned to site "99999"
    When I make an HTTP GET request to the URL "/datasets/ClinicalAuditRecords.odm?studyoid={study_oid}&startid=1"
    Then I should receive a successful response
    And the response should be a valid ODM 1.3 transactional document
    And should not have the following ODM elements:
    """
      ...
      <LocationRef LocationOID="99999"/>
      ...
    """

  Scenario: View all sites permission
    Given the study is pushed to another site "99999"
    And the study is pushed to another site "99999"
    And there is a subject "BSUBJECT" in site "99999"
    And I have ViewAllSites permission for the study
    When I make an HTTP GET request to the URL "/datasets/ClinicalAuditRecords.odm?studyoid={study_oid}&startid=1"
    Then I should receive a successful response
    And the response should be a valid ODM 1.3 transactional document
    And the response should contain audit data for every site in the study

  Scenario: Get GetAuditData Service returns UUID as Subject key
    Given there is a subject in a study
    And the subject has a UUID "c45f3bda-efd5-400f-aa72-b174dc0c93dd" not visible in Rave
    When I make an HTTP GET request to the URL "/datasets/ClinicalAuditRecords.odm?studyoid={study_oid}&startid=1"
    Then I should receive a successful response
    And the response should be a valid ODM 1.3 transactional document
    And should have the following ODM elements:
    """
    <ClinicalData  mdsol:AuditSubCategoryName="SubjectCreated" ...>
      <SubjectData SubjectKey="c45f3bda-efd5-400f-aa72-b174dc0c93dd" mdsol:SubjectKeyType="SubjectUUID" mdsol:SubjectName="ASUBJECT" TransactionType="Upsert">
      ...
      </SubjectData>
    </ClinicalData>
    """

  Scenario Outline: Get ClinicalAuditRecords service must include SubCategories
    Given the background
    But the field "AEDESC" has been <state>
    When I make an HTTP GET request to the URL "/datasets/ClinicalAuditRecords.odm?studyoid={study_oid}&startid=1&per_page=10"
    Then I should receive a successful response
    And the response should be a valid ODM 1.3 transactional document
    And should have the following ODM elements:
    """
     <ClinicalData mdsol:AuditSubCategoryName="<SubCategoryName>" ...>
      <ItemData ItemOID="AE.AEDESC" .../>
     </ClinicalData>
    """

  Examples:
    | state  | SubCategoryName |
    | frozen | Freeze          |
    | locked | Lock            |

Footnotes

[1](1, 2) Some attributes are omitted from the ODM document for clarity. See ODM Schema for more details


How do you rate this topic?






How do you rate this topic?