Medidata Rave® Custom Functions Webinar Implementing the Rave Custom Functions Best Suited to your Clinical Study Requirements Tuesday, October 11th 2011
Clinovo 1208 E. Arques Avenue, Suite 114 Sunnyvale, CA 94085 contact@clinovo.com +1 800 987 6007 www.clinovo.com
Today’s Speakers
Marc Desgrousilliers – Chief Technology Officer Experience: 20+ years experience in software and engineering
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”
Rave Custom Functions October 11h 2011 Proprietary and confidential
2
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
Rave Custom Functions October 11h 2011 Proprietary and confidential
3
Study Build in Rave® - Streamlining your Clinical Trial Process -
Rave Custom Functions October 11h 2011 Proprietary and confidential
4
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 Rave Custom Functions October 11h 2011 Proprietary and confidential
5
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… Rave Custom Functions October 11h 2011 Proprietary and confidential
6
Edit Checks and Derivations - Improved Data Cleaning, Faster Clinical Trial -
Rave Custom Functions October 11h 2011 Proprietary and confidential
7
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
Rave Custom Functions October 11h 2011 Proprietary and confidential
8
Limitations of Edit Checks and Derivations Edit Checks
Derivations
Do not support:
Do not support:
Dynamic folders
Complex mathematical algorithms
Form inactivation
Data in different forms/folders
Dynamic subject calendar
Email with specific fields data
Specific derivations on variables shared across multiple forms
Dynamic queries
Etc.
Auto number generation
Chronological order of dates edit checks
Dynamic search list
Etc.
Rave Custom Functions October 11h 2011 Proprietary and confidential
9
Limitations of Editchecks and Derivations Example: Requirement:
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
Given:
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
Enter:
Rave Custom Functions October 11h 2011 Proprietary and confidential
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
10
Custom Functions - Solutions adapted to your Complex Study Protocol Requirements -
Rave Custom Functions October 11h 2011 Proprietary and confidential
11
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
Rave Custom Functions October 11h 2011 Proprietary and confidential
12
Benefits of Custom Functions Configuration of dynamic protocol requirements:
Dynamic query messages and search lists Configurable AE/SAE emails Role/user based emails Adding/inactivating of forms/folders/matrices Copying data
Adding required number of records
Visible/invisible fields
Data comparisons/validations
Standard CFs can be reused for future study builds Etc.
Faster Study Build
Improved Data Accuracy Flexibility allowing more Customization
Rave Custom Functions October 11h 2011 Proprietary and confidential
13
Categories of Custom Functions Custom Functions (CFs)can be categorized into:
Simple CFs
Moderate CFs
Complex CFs
Rave Custom Functions October 11h 2011 Proprietary and confidential
14
Categories of Custom Functions Simple custom functions
Very simple business logic
Applied on a single form
Example: Add a form in the same folder
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.
Rave Custom Functions October 11h 2011 Proprietary and confidential
15
Categories of Custom Functions 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.
Rave Custom Functions October 11h 2011 Proprietary and confidential
16
Categories of Custom Functions 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.
Rave Custom Functions October 11h 2011 Proprietary and confidential
17
Best Practices - Around the use of Custom Functions -
Rave Custom Functions October 11h 2011 Proprietary and confidential
18
Best Practices 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
Rave Custom Functions October 11h 2011 Proprietary and confidential
19
Best Practices 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
Rave Custom Functions October 11h 2011 Proprietary and confidential
20
Q&A
Rave Custom Functions October 11h 2011 Proprietary and confidential
21
Contact Us Marc Desgrousilliers
Venkat Sungishala
Chief Technology Officer
Sr. Manager of EDC
marc.desgrousilliers@clinovo.com
venkat.sungishala@clinovo.com
Upcoming webinars Implementing adaptive clinical trials CDISC Express Demo
October 18th, 9 AM PST October 26th, 9 AM PST
www.clinovo.com
Follow us on twitter @clinovo Rave Custom Functions October 11h 2011 Proprietary and confidential
22
Thank You for your Attention ! Visit our website for upcoming webinars: www.clinovo.com
Rave Custom Functions October 11h 2011 Proprietary and confidential
23