Tag Archives: EDC InForm programmer

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.


Professional Timeline – Clinical Programmer

Professional Timeline

Curriculum Vitae


anayansi gamboa