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;
default:
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.