2 min read

OpenCDISC Validator V1.3: An Unboxing Review (1): counting issue

The lasted OpenCDISC Validator version 1.3 was released at 29 March, 2012 (btw, there is a typo in the Line 1 of CHANGELOG.txt within the package: “2012” not “2011”). As usual, you can submit the following SAS scripts to get some basic information(remember to customize your directory):

filename CDISC url "https://raw.github.com/Jiangtang/Programming-SAS/master/Rules_Count_OpenCDISC_XML.sas";

%include CDISC;


and you get a summary of validation rules of OpenCDISC Validator V1.3 (499 total unique rules):



AD: Analytical Data
CT: Controlled Terminology
DD: Data Definition
OD: Operation Data Model
SD: Study Data
SE: SEND data

As comparison, a summary of V1.2.1 (385 total unique rules) posted before:

The most significant enhancement of V1.3 against V1.2.1 is the adding of rules for SDTM 3.1.2 with Amendment 1 and SEND 3.0. You can see there are also some changes among others modules, such ADaM 1.0 and SDTM 3.1.2. The OpenCDISC release newsletter said that there are 43 new SDTM rules added. Well, rules deleted, rules added, rules commented, we now have some arithmetical discrepancies.

The scripts above capture all instances of validation rule IDs (also delete some commented for example in config-define-1.0.xml, four rules commented: OD0004, OD0005, OD0007, OD0008). We can also double validate the counts manually:

  • copy all contents for example in SDTM 3.1.2 in its website into Notepad++ (where line numbers displayed)
  • delete all unnecessary entries
  • then the last line number is the total number of the rules (227 in this case).

Another way to check the rules is to open the XML configuration files using a web browser:

Theoretically the three ways are identical in counting, but there is an open bug in the style sheet file in …OpenCDISC1.3opencdisc-validatorconfigresourcesxslconfig.xsl, Line 175:


There is no “val:Find” to render all the Find validation rules (AD0061 in config-adam-1.0.xml) so all Find validators are not displayed. A suggested workaround is just to add “val:Find” to the file:


Actually in the “OpenCDISC Validation Framework” page of OpenCDISC website, the “Find”validator is not documented yet.

<to be continued>