And the winner is….
CDISC Express Mapping contest comes to an end today!
The challenge was to create a mapping file to map the source data set provided on this page to the SDTM DM domain using CDISC Express. Learn more about CDISC Express.
The winner is Jiangtang Hu! He is a reader and a blogger, lives in Beijing, China. He is a statistical SAS programmer at Sanofi Pasteur and a new member of the “Elite Fathers’ Club” by life. He wins an iPad2!
Jiangtang is one of the eraly testers and adopters of CDISC Express. He wrote a paper to help users like him ‘Dive into CDISC Express’. We posted the first part of this paper on our blog last week. There are 4 parts focused on guiding the user in the different features on the application. Next part will be published next week.
Thank you to all the participants and congratulations to Jiangtang
Dive into CDISC Express (1): Introductory
Here is the first part of a post written by Jiangtang Hu, statistical SAS programmer at Sanofi Pasteur Beijing in the Biostatistics department. Jiangtang was one of the first to download CDISC Express. I have been interacting a lot with him. He is sharing on his personal blog his experience as a tester and user and offers the community a very practical guidance to use CDISC Express.
Thank you Jiangtang for this valuable input! This dive into CDISC Express is structured in four parts. I will be posting one every week. Don’t hesitate to comment this post and ask your questions to Jiangtang or myself.
Recently I did for my personal project some research on Clinovo’s open source application, CDISC Express, a SAS application based on Excel framework designed to map clinical data to CDISC SDTM domains automatically. Not perfect yet, but it is easily understandable and practically usable after few hours’ of exploration of user guide. And most important, it is on the right way: an automatic CDISC converter is the magic weapon in almost every clinical programmer’s dream.
CDISC Express is the first and only practically usable open source CDISC converter I even met. I wrote a post a month ago when I first tested it with great interests and reported some issues to its fix system. Then I also had the great opportunity to discuss the software via email with its core developer, Romain Miralles. This post is just my personal notes on how to use and dig into the software, and will be best serve as a working documentation. You can return to me for any questions and comments.
By the way, there is an opportunity for your practicing and you will also have a change to win an iPad2 from Clinovo’s CDISC Express Contest:
http://www.clinovo.com/cdisc/game
The due day is July 15th and I already submitted my work. That’s fun.
1. Download and Installation
You can get CDISC Express for free in
http://www.clinovo.com/cdisc/download
It is a window application and will be installed by default in
C:\Program Files\CDISC Express\
After installation, this path will be coded as a macro variable &CDISCPATH in the following six SAS files which are all located in C:\Program Files\CDISC Express\programs\:
- create_new_study.sas
- generate_Definexml.sas
- generate_mapping_template.sas
- generate_SDTM.sas
- Validate_Mapping_File.sas
- Validate_SDTM_Domains.sas
The macro variable reads as
%LET CDISCPATH = C:\Program Files\CDISC Express;
If you change the destination folder at the installation stage, e.g., to D:\CDISC Express\, the value of the macro variable &CDISCPATH will be changed accordingly in the six files mentioned before:
%LET CDISCPATH = D:\CDISC Express;
Note that if you want copy the whole folder of files to another destination, you should at least manually change the value of &CDISCPATH in such six files or add some codes to capture the path accordingly. From this point of view, the path setting of CDISC Express is not completely portable. Recommend that if you have such needs, just re-install the software in any destination you want. It will not write any records into registry and you can have many copies in one machine.
The following discussion assumes the software roots in C:\Program Files\CDISC Express\.
2. Working Flow
You can follow all the 6 action steps one by one coded in
C:\Program Files\CDISC Express\programs\
1) Create a new study (create_new_study.sas)
Simple and easy. Just assign a new study name in a macro call and run.
2) Generate mapping file (generate_mapping_template.sas)
This is the critical and most time consuming part. You should design mapping rules for every domain needed in Excel spreadsheets (the MAPPING FILE). If done, all other tasks, such as generate SDTM datasets, SAS transport files, define.xml and validation, can be well done by just clicking buttons.
3) Validate mapping file (Validate_Mapping_File.sas)
For validating the mapping file, just click the button. As mentioned, the most important work is designing mapping file. It would be back and forth to design mapping file and validate it.
4) Generate SDTM datasets (generate_SDTM.sas)
If mapping file is OK, click the button.
5) Validate SDTM datasets (Validate_SDTM_Domains.sas)
Click the button.
6) Generate Define.xml (generate_Definexml.sas)
Click the button.
Following part will dig into the software step by step.
Fun with Macro Reference
Think about this simple question:
%let a=NLL; %* 6;
%let b=a; %* 5;
%let c=b; %* 4;
%let d=c; %* 3;
%let e=d; %* 2;
%let f=e; %* 1;
%put &f, &&f, &&&f, &&&&f, &&&&&f, &&&&&&f, &&&&&&&f, &&&&&&&&f;
%* You will get "e, e, d, e, d, d, c, e" ;
So how many ampersands do you need in front of “f” in the macro PUT statement so you can get “NLL” in your log? Read more »
Recursive SAS Macro
Yes, you can use SAS Macro recursively.
For starters, let’s set out with this super classic example of factorial n! for n=1,2,3,… . Actually, this is my bonus interview project for our candidates
%macro Factorial(n);
%* Assume &n=1,2,3,4,... ;
%if &n=1 %then 1;
%else %eval(&n*%Factorial(%eval(&n-1)));
%mend;
To test, you can do something like this: Read more »
Categories
- Best Practices (3)
- Best-Practices (16)
- BioNews (1)
- Business Best Practices (5)
- Case studies (2)
- CDISC (11)
- Clinical Data Management (6)
- Clinical Stories (1)
- Code (13)
- EDC (7)
- Event (4)
- Events (8)
- Menu (3)
- Monthly Contest (12)
- New Technologies (15)
- OpenClinica (2)
- SAS Library (4)
- Scripting (2)
- Tips & Techniques (14)
- Trends (11)




Posted under: 
