medidata rave® custom functions
DESCRIPTION
Configuring a clinical EDC study in Medidata Rave is simple with good training. Study builders can easily configure eCRFs and review complex edit checks and derivations. However, they often face limitations in Rave when using edit checks and derivations. As we will demonstrate in our webinar, custom functions are better adapted to address complex study protocol requirements. Our Medidata Rave experts will discuss key benefits and programming techniques to implement the custom functions best-suited to your clinical study requirements.TRANSCRIPT
Clinovo 1208 E. Arques Avenue, Suite 114 Sunnyvale, CA 94085 [email protected] +1 800 987 6007 www.clinovo.com
Tuesday, October 11th 2011
Medidata Rave® Custom Functions Webinar
Implementing the Rave Custom Functions Best Suited to your Clinical Study Requirements
Proprietary and confidential
2 Rave Custom Functions October 11h 2011
Today’s Speakers
Venkat Sungishala - Sr. Manager of EDC
Experience: 5+ years experience of extensive clinical programming & study build
using Medidata Rave®
Specialties: Medidata certified “Rave 5.6.3/5.6.4 Study Builder”
Marc Desgrousilliers – Chief Technology Officer
Experience: 20+ years experience in software and engineering
Proprietary and confidential
3 Rave Custom Functions October 11h 2011
Today’s Agenda
Study Build in Rave®
Edit Checks and Derivations
Benefits of Custom Functions
Best Practices around the use of Custom Functions
Q & A
Proprietary and confidential
4 Rave Custom Functions October 11h 2011
Study Build in Rave® - Streamlining your Clinical Trial Process -
Proprietary and confidential
5 Rave Custom Functions October 11h 2011
Study Configuration in Rave®
Study in Rave® is a collection of eCRFs, folders/visits, matrices and approved user role permissions which satisfies the study protocol
Configuration is simple and can be done with good training
As you configure the study, you are building standard based global libraries. These will enable you to reduce the overall development time and validation cost
Carry out the clinical trial in a structured and timely manner
Proprietary and confidential
6 Rave Custom Functions October 11h 2011
What is configurable in Rave®?
UI and solid workflow configuration
eCRF/folder/matrix design
Controlled access to eCRFs/data entry
Edit checks to run the business logic
Derivations to calculate values
Custom functions to handle dynamic requirements
Global library set-up to reuse standard architect elements
Example: eCRFs, fields, variables or matrices…
Reports configuration adapted to your needs
Example : audit trial report, query detail report and monitor visit report…
Proprietary and confidential
7 Rave Custom Functions October 11h 2011
Edit Checks and Derivations - Improved Data Cleaning, Faster Clinical Trial -
Proprietary and confidential
8 Rave Custom Functions October 11h 2011
Edit Checks and Derivations
What are Edit checks?
Logic rule applied to a field in a eCRF
Catching errors earlier in the clinical trial process & improve your data accuracy
Example : If the VISITDT is empty then fire a Query with message: The visit date should not be blank
What are Derivations?
Calculation that derives a value based on the business logic
Less data entry & automatic calculation
Example : If BIRTHDT and SCRNDT are NotEmpty then Derive AGE field
Proprietary and confidential
9 Rave Custom Functions October 11h 2011
Limitations of Edit Checks and Derivations
Do not support:
Dynamic folders
Form inactivation
Dynamic subject calendar
Email with specific fields data
Dynamic queries
Auto number generation
Chronological order of dates edit checks
Dynamic search list
Etc.
Do not support:
Complex mathematical algorithms
Data in different forms/folders
Specific derivations on variables shared across multiple forms
Etc.
Edit Checks Derivations
Proprietary and confidential
10 Rave Custom Functions October 11h 2011
Limitations of Editchecks and Derivations
Derive ‘DaysDiff’ field in derivation form with difference between
SCRNDT in screening form and VISITDT in corresponding Day 1,
Day 8 and Day 15 folders
SCRNDT = 01 JAN 2011
Cycle 1>Day 1>VISITDT = 05 JAN 2011 then DaysDiff is derived with
4
Cycle 2>Day 1>VISITDT = 21 JAN 2011 then DaysDiff will be derived
with 20 in Cycle 2>Day 1 and also affect the value in Cycle 1>Day 1
folders
Requirement:
Enter:
Given:
Example:
Cycle is repeated in folder: Cycle 1, Cycle 2, …, Cycle n
Day 1, Day 8 and Day 15 are the folders & exist in all cycles
Derivation is a form & exists in Day 1, Day 8 and Day 15 folders
Proprietary and confidential
11 Rave Custom Functions October 11h 2011
Custom Functions - Solutions adapted to your Complex Study Protocol Requirements -
Proprietary and confidential
12 Rave Custom Functions October 11h 2011
Basic Concepts of Custom Functions
What is a custom function in Rave®?
Custom Function defines the business logic implemented on an eCRF
It can be a C#, Visual Basic or SQL piece of code developed outside of Rave® and injected into the system to perform an intended action
What experience is needed to develop custom functions?
Study build experience with Rave®
Good knowledge in object oriented programming concepts
Good knowledge of C# and SQL programming
Proprietary and confidential
13 Rave Custom Functions October 11h 2011
Benefits of Custom Functions
Dynamic query messages and search lists
Configurable AE/SAE emails
Role/user based emails
Adding/inactivating of forms/folders/matrices
Copying data
Improved Data Accuracy
Faster Study Build
Flexibility allowing more
Customization
Configuration of dynamic protocol requirements:
Adding required number of records
Visible/invisible fields
Data comparisons/validations
Standard CFs can be reused for future study builds
Etc.
Proprietary and confidential
14 Rave Custom Functions October 11h 2011
Categories of Custom Functions
Custom Functions (CFs)can be categorized into:
Simple CFs
Moderate CFs
Complex CFs
Proprietary and confidential
15 Rave Custom Functions October 11h 2011
Simple custom functions
Very simple business logic
Applied on a single form
A few more examples: Populate or derive data into a field in the same form Verify the fields data is in a pre-defined format Display query message or place a sticky within a single form Visible/invisible fields in the same form Adding log records into a form Etc.
Example: Add a form in the same folder
Categories of Custom Functions
Proprietary and confidential
16 Rave Custom Functions October 11h 2011
Moderate Custom Functions
Comparison of multiple forms
Example: Display query message or place a sticky based on data from multiple forms
A few more examples: Adding log records and populating data into a form Adding a form in the different folder Adding folder and adding matrices dynamically Populate or derive data based on the data in multiple forms Data comparisons and checking for the chronological order Etc.
Categories of Custom Functions
Proprietary and confidential
17 Rave Custom Functions October 11h 2011
Complex Custom Functions
Comparison of multiple forms
Requires SQL script
Example: Generating sequential patient or randomization numbers
A few more examples: Subject calendar for the visits SAE emails based on roles Checking for uniqueness of the entered data Dynamic search list Multiple matrices Nested folders Etc.
Categories of Custom Functions
Proprietary and confidential
18 Rave Custom Functions October 11h 2011
Best Practices - Around the use of Custom Functions -
Proprietary and confidential
19 Rave Custom Functions October 11h 2011
Use header below to identify and trouble shoot a CF:
Check for NULL objects
Check Active status of all objects
Avoid using try-catches because Rave does it for you
Best Practices
Proprietary and confidential
20 Rave Custom Functions October 11h 2011
Keep the code simple and readable…
but if you want to improve system performance:
Use OIDs rather than names
Avoid using foreach
Avoid writing nested for loops
Loop handling:
Avoid sending emails in a loop
Remember to breakout the loop when search is completed
Email Handling:
Check the environments before sending an email
Avoid using same email ID for different environments
Stored Procedure Handling:
Use SQL stored procedures instead of dynamic SQL
Avoid stored procedures for updates or deletions
Best Practices
Proprietary and confidential
22 Rave Custom Functions October 11h 2011
Marc Desgrousilliers
Chief Technology Officer
Venkat Sungishala
Sr. Manager of EDC
Upcoming webinars
Implementing adaptive clinical trials October 18th, 9 AM PST
CDISC Express Demo October 26th, 9 AM PST
www.clinovo.com
Follow us on twitter @clinovo
Contact Us