About Validation Procedures

You can create Validation Procedures to clean and compare patient data, and to check for inconsistencies and other discrepancies among Question responses for a single patient. For example, you can compare a patient's dosage amount over several visits, or compare a patient's diastolic blood pressure to his systolic blood pressure at the same visit. You must write an expression that, if true, indicates that the collected data is discrepant (inconsistent). Oracle Clinical then creates a discrepancy in its Discrepancy Database, associated with the discrepant response(s), a comment, and any other response values you specify. Clinical personnel must then determine whether the discrepant response is medically significant or the result of a data entry or other error, and handle it accordingly (see "Using the Discrepancy Database" in Oracle Clinical Conducting a Study).

Because Validation Procedures compare multiple responses, the discrepancies they generate are called multivariate discrepancies. The Discrepancy Database also holds univariate discrepancies, which are automatically generated by the system when a Question response does not conform to the limits defined for the Question, such as length, data type, upperbound, or lowerbound (see "Using the Discrepancy Database" in Oracle Clinical Conducting a Study). When you create a Procedure, you can choose whether or not to run the Procedure on data that the system has already found to have a univariate discrepancy.

Validation Procedures can compare multiple responses from a single Received DCM or make complex comparisons of data from multiple RDCMs and visits. Validation Procedures can include arithmetic functions and data manipulations, and can compare both collected and derived data. Several types of special processing are available, including aggregation, lag functions, and limiting the data processed by correlating data by response value, event, or qualifying value (see Special Processing). The system makes many key, response, and related values available to Procedures as variables (see Procedure Variables).

For more information, see:

Examples of Validation Procedures

This section includes examples of Validation Procedures:

Simple Validation Procedure

Is a patient's diastolic blood pressure greater than or equal to his systolic blood pressure?

A.BP_DIASTOLIC >= A.BP_SYSTOLIC

The system tests whether the diastolic is greater than or equal to the systolic blood pressure, and creates a discrepancy if it is.

This Procedure references responses to a Question Group that includes the blood pressure-related Questions BP_DIASTOLIC and BP_SYSTOLIC. Within the Procedure, that Question Group has an alias of "A." The statement above is the expression in a Procedure detail.

Validation Procedure with an Arithmetic Function

Is the difference between a patient's systolic blood pressure and his diastolic blood pressure less than 20?

A.BP_SYSTOLIC - A.BP_DIASTOLIC < 20

The system subtracts the diastolic blood pressure from the systolic and then checks if the difference is less than 20; if it is, a discrepancy is created.

Because this Procedure references the same Questions as the example Procedure above, you may want to include both tests in a single Procedure as separate details. If both tests evaluate to True, the system creates two discrepancies against the same data.

More Complex Validation Procedure

This Validation Procedure compares the reported onset date and stop date for an adverse event. If the reported onset date of the adverse event is later than the reported stop date, the Validation Procedure creates a discrepancy.

In this example, the Procedure operates on a single event and a single DCM. The Questions are both in the same Procedure Question Group, which is the Question Group ADVERSE_EVENTS. The first Question is AE_ONSET_DATE, and the second is AE_STOP_DATE.

Instead of directly comparing the values of the date Questions, you can create two user variables to hold those values after you have converted them to Oracle date type so they can simply be subtracted. For example, create user variable i to define the variable ONSET_DATE, and j to define the variable STOP_DATE. You must also define pre-detail custom code to convert the date character values stored in Oracle Clinical to Oracle variables of type DATE (for example, convert June 30, 2005 to 20050630). The custom code can also check for invalid dates (such as June 31, 2005) and take care of a type DATE of length 6 (such as June 2005, or 200506, to which a mid-month TO_DATE of 15 might be consistently appended for a length 8-type DATE of 20050615).

Finally, the Validation Procedure tests ONSET_DATE > STOP_DATE (for example, 20050630 > 20050603) and creates a discrepancy if True. The user variables are used in the actual comparison, not the underlying raw data values. The purpose of the user variables and the pre-detail custom code is to create variables of type DATE so that this simple numerical comparison can be effected.

No system variables are used by this Procedure definition.