Want to become an {EDC} Developer? Take this test

I have been contacted on multiple occasions in recent years about how to become an {EDC} Developer or clinical programmer.

If you are currently working in the industry, the transition should be swift.  But for those working outside the pharmaceutical/biotechnology industry, I recommend you take a SAS programming course or data analytics/ visualization course since {EDC} training only is available for those already in the industry and for those sponsored by your employer.  There is no official public training for a specific {EDC} tool. Your company must be a user (Customer) of the tool for you to gain some knowledge.

Here are some examples of custom programs. Test your readiness.

Example 1:

Comparing two (2) strings a and b:

string dbtool=”Rave”;

if (dbtool == “Rave”)

if (dbtool.Equals(“Rave”))

OR how about…

String strA;

String strB;

If (strA == strB)


System.console.writeline (“StringA’s value is same as StringB’s value.”);



Example 2:

Switch case:  to store a value in int x if the value of n is “RAVE”, 2 if y is “INFORM”, 3 if y is “OCRDC”, and 0 otherwise.

switch (n)


case “1”:

Console.WriteLine(“You choosed RAVE”);

intVarEDC ==1;  break;

case “2”:

Console.WriteLine(“You choosed INFORM”);

intVarEDC ==2; break;

case “3”:

Console.WriteLine(“You choosed OCRDC”);

intVarEDC==3;  break;


Console.WriteLine(“Invalid selection {0}”, n);

Console.WriteLine(“Please input 1, 2, or 3”);

intVarEDC == 0; break;


Example 3: Arrays

Can you guess the output to this program?

public static void printf(params object[] args)


for (int i = 0; i < args.Length; i++)


Console.WriteLine(“args[{0}] = {1}”, i args[i]);



public static void Main()


printf(“Thank you”, 4, “visiting”, “EDC Developer.”, “Says”);


Some tips or best practices when working with Rave Edit checks and custom fuctions:

  • Always put record position 0 in Edit Check Steps and Actions for standard DataPoints
    • Note: In the recent release of Rave, this is mandatory.
  • Use ChangeCount Property wherever possible to execute only for the submitted datapoints.
    • ex: If (dpAETERM != null && dpAETERM.Active && dpAETERM.ChangeCount  > 0)
  • Avoid using “true” parameter in the FetchAllDataPointsForOIDPath for Log forms.
    • Bad example: datapoints dpAE = CustomFunction.FetchAllDataPointsForOIDPath(“AESEV”, “AE”, “AE”, subject, true)
    • Good example: datapoints dpAE = CustomFunction.FetchAllDataPointsForOIDPath(“AESEV”, “AE”, “AE”, subject)

If you wrote similar programs or are comfortable writing these types of programs then you are ready for your next challenge. But if you do not know anything about C sharp programming or {EDC} in general, don’t despair. We are here to help.

Subscribe to my blog’s RSS feed and email newsletter to get immediate updates on the latest news, articles, and tips. I am available on LinkedIn or my personal webpages: EDC Developer or Clinical Programmer. Or contact me to discuss any projects or contracts you may have and need support with.

Published by AnayansiVanDerBerg

“I am someone who influences my own development. I look for a company where I have the opportunity to pursue my interests across functions and geographies, and where a job title is not considered the final definition of who I am, but the starting point.”

%d bloggers like this: