Common P21 SDTM Compliance Issues and How to Resolve Them

Common P21 SDTM Compliance Issues and How to Resolve Them

Common P21 SDTM Compliance Issues and How to Resolve Them

By Sarath Annapareddy

Introduction

Pinnacle 21 (P21) is a cornerstone for validating SDTM datasets against CDISC standards. Its checks ensure compliance with regulatory requirements set by the FDA, PMDA, and other authorities. However, resolving the issues flagged by P21 can be challenging, especially for beginners. This post dives into common P21 compliance issues and provides actionable solutions with examples.

1. Missing or Invalid Controlled Terminology

Issue: P21 flags variables like LBTESTCD or SEX as non-compliant with CDISC Controlled Terminology (CT). This happens when values in your datasets are outdated or invalid.

Solution: Update your CT files regularly from CDISC’s website. Use validation scripts to cross-check your datasets against the CT list.

Example:

data lab_final;
    merge lab_data (in=a)
          cdisc_ct (in=b);
    by LBTESTCD;
    if a and not b then put "WARNING: Invalid value for LBTESTCD=" LBTESTCD;
run;
            

This code validates lab data against CDISC Controlled Terminology and flags invalid entries.

2. Missing Required Variables

Issue: P21 highlights missing essential variables such as USUBJID, DOMAIN, and VISITNUM. Missing these variables can result in non-compliance.

Solution: Create validation macros in SAS to check for the presence of required variables. Always refer to the SDTM IG for domain-specific requirements.

Example:

%macro check_vars(dataset, vars);
    proc sql noprint;
        select count(*) 
        into :missing
        from dictionary.columns
        where libname="WORK" and memname=upcase("&dataset")
              and name not in (&vars);
    quit;
    %if &missing > 0 %then %put ERROR: Missing required variables!;
%mend;
%check_vars(lab_data, "USUBJID, DOMAIN, VISITNUM");
            

3. Inconsistent Dates and Timestamps

Issue: Non-compliance with ISO 8601 date format is a recurring issue. Variables such as AESTDTC or VISITDY may have incorrect formats or incomplete components.

Solution: Convert dates to ISO format during mapping and ensure consistent formats across datasets using SAS functions like PUT and INPUT.

Example:

data ae_final;
    set ae_raw;
    if not missing(AESTDT) then AESTDTC = put(AESTDT, E8601DA.);
run;
            

4. Duplicate Records

Issue: Duplicate records are flagged when unique combinations of keys (like USUBJID and VISITNUM) appear multiple times in a domain.

Solution: Implement deduplication techniques in SAS and ensure proper use of keys during dataset creation.

Example:

proc sort data=dm nodupkey;
    by USUBJID VISITNUM;
run;
            

5. Incomplete Traceability

Issue: P21 flags issues when derived variables or supplemental qualifiers lack proper traceability.

Solution: Clearly document derivations in your dataset specifications and use RELREC or SUPPQUAL datasets for maintaining traceability.

Example:

data suppae;
    set ae;
    where AESER = "Y";
    IDVAR = "SEQ";
    QNAM = "AESER";
    QVAL = AESER;
run;
            

6. Inconsistent Metadata

Issue: P21 reports mismatches between Define.xml and dataset metadata.

Solution: Automate Define.xml generation using tools like Pinnacle 21 Enterprise. Manually cross-check metadata during QC.

7. Invalid Links in RELREC

Issue: RELREC relationships do not align with the protocol-defined data structure.

Solution: Double-check all relationships during dataset creation and validate RELREC against its source domains.

Conclusion

Resolving P21 compliance issues requires both a strategic approach and practical programming skills. By addressing these common problems, you can ensure your datasets are regulatory-compliant, saving time and avoiding costly re-submissions.

© 2024 Rupee Stories. All rights reserved.

Popular posts from this blog

SAS Interview Questions and Answers: CDISC, SDTM and ADAM etc

Comparing Two Methods for Removing Formats and Informats in SAS: DATA Step vs. PROC DATASETS

Studyday calculation ( --DY Variable in SDTM)