Clinical Trial Data Validation Using SAS PROC SQL

  • Slides: 15
Download presentation
Clinical Trial Data Validation Using SAS PROC SQL Jie Liu BIOS 524 Project 2003,

Clinical Trial Data Validation Using SAS PROC SQL Jie Liu BIOS 524 Project 2003, Fall

Background • Toxicity data are collected for NCI Sponsored clinical trials at MCC. Data

Background • Toxicity data are collected for NCI Sponsored clinical trials at MCC. Data are monitored by NCI/CTEP quarterly. Toxicity (Protocol, Course. No, Patient, Toxicity (Toxicity Code), Grade, Attribution, DLT, etc) • Standard (for Toxicity Code and Grade): CTCAE 3. 0 It lists hundreds of toxicity types and each toxicity type needs to be graded differently.

Background • For example: • Dry Skin: Grade can only be 1, 2, 3.

Background • For example: • Dry Skin: Grade can only be 1, 2, 3. 4 or 5 • Fatigue: Grade can only be 1, 2, 3, 4. 5 • Errors can be made by data entry person easily. • Challenge: How to detect errors? Invalid value!

Sample Toxicity Data "Protocol" , "Course. No" , "Patient ", "Course. Date ", "Toxicity

Sample Toxicity Data "Protocol" , "Course. No" , "Patient ", "Course. Date ", "Toxicity ", "Onset Date ", "CDUS Tox Type Code ", "Resolved ", "AER Filed ", "Grade ", "Attribution ", "Dose Limiting Tox? ", "Serious ", "Action ", "Therapy ", "Outcome ", "A/N (obsolete) ", "MCC 0001 ", 1 , "PT 0001 ", 20030730, "DIARRHEA ", 20030816, 10012745 , 20030816, "N", 1 , "4", "N", 1 , "1", -2. 000 , "MCC 0001 ", 1 , "PT 0001 ", 20030730, "FATIGUE ", 20030815, 10016256 , 20030818, "N", 1 , "4", "N", 1 , "1", -2. 000 , "MCC 0001 ", 1 , "PT 0001 ", 20030730, "HEMOGLOBIN ", 20030807, 10018876 , 20030828, "N", 1 , "3", "N", 1 , "1", -2. 000 , "MCC 0001 ", 1 , "PT 0001 ", 20030730, "HYPOGLYCEMIA ", 20030821, 10020996 , 20030828, "N", 1 , "1", -2. 000 , "MCC 0001 ", 1 , "PT 0001 ", 20030730, "LEUKOCYTES_(TOTAL_WBC) ", -6 , 10024285 , 20030811, "N", 2 , "1", "N", 1 , "1", 2. 000 , "MCC 0001 ", 1 , "PT 0001 ", 20030730, "LEUKOCYTES_(TOTAL_WBC) ", 20030811, 10024285 , 20030814, "N", 1 , "3", "N", 1 , "1", -2. 000 , "MCC 0001 ", 1 , "PT 0001 ", 20030730, "LEUKOCYTES_(TOTAL_WBC) ", 20030821, 10024285 , 20030828, "N", 2 , "3", "N", 1 , "1", -2. 000 , "MCC 0001 ", 1 , "PT 0001 ", 20030730, "LYMPHOPENIA ", -6 , 10025327 , 20030807, "N", 1 , "1", -2. 000 , "MCC 0001 ", 1 , "PT 0001 ", 20030730, "LYMPHOPENIA ", 20030807, 10025327 , 20030814, "N", 2 , "3", "N", 1 , "1", -2. 000 , "MCC 0001 ", 1 , "PT 0001 ", 20030730, "LYMPHOPENIA ", 20030821, 10025327 , 20030828, "N", 2 , "3", "N", 1 , "1", -2. 000 , "MCC 0001 ", 1 , "PT 0001 ", 20030730, "NEUTROPENIA ", -6 , 90004008 , 20030807, "N", 2 , "1", "N", 1 , "1", -2. 000 , "MCC 0001 ", 1 , "PT 0001 ", 20030730, "NEUTROPENIA ", 20030807, 90004008 , 20030811, "N", 3 , "3", "N", 1 , "5", "1", -2. 000 , "MCC 0001 ", 1 , "PT 0001 ", 20030730, "PAIN OTHER-ACHES ", 20030802, 90004082 , 20030803, "N", 1 , "4", "N", 1 , "1", 2. 000 , "MCC 0001 ", 1 , "PT 0001 ", 20030730, "PAIN OTHER-ACHES ", 20030815, 90004082 , 20030816, "N", 1 , "4", "N", 1 , "1", 2. 000 , "MCC 0001 ", 1 , "PT 0001 ", 20030730, "PLATELETS ", -6 , 10035528 , 20030807, "N", 1 , "1", -2. 000 , "MCC 0001 ", 1 , "PT 0001 ", 20030730, "PLATELETS ", 20030821, 10035528 , -6 , "N", 1 , "3", "N", 1 , "1", "2", -2. 000 , "MCC 0001 ", 2 , "PT 0001 ", 20030828, "CREATININE ", 20030828, 10005483 , 20030904, "N", 1 , "3", "N", 1 , "1", -2. 000 , "MCC 0001 ", 2 , "PT 0001 ", 20030828, "HYPOGLYCEMIA ", 20030904, 10020996 , 20030911, "N", 1 , "1", -2. 000

CTCAE 3. 0 Common Terminology Criteria for Adverse Events Category, AE/Supra-ordinate Term, Select AE,

CTCAE 3. 0 Common Terminology Criteria for Adverse Events Category, AE/Supra-ordinate Term, Select AE, Med. DRA Preferred Term, Med. DRA Code, Grade, Description "ALLERGY/IMMUNOLOGY", "Allergic reaction/hypersensitivity (including drug fever)", "Hypersensitivity NOS", "10020755", "1", "Transient flushing or rash; drug fever <38 degrees C (<100. 4 degrees F)" "ALLERGY/IMMUNOLOGY", "Allergic reaction/hypersensitivity (including drug fever)", "Hypersensitivity NOS", "10020755", "2", "Rash; flushing; urticaria; dyspnea; drug fever >=38 degrees C (>=100. 4 degrees F)" "ALLERGY/IMMUNOLOGY", "Allergic reaction/hypersensitivity (including drug fever)", "Hypersensitivity NOS", "10020755", "3", "Symptomatic bronchospasm, with or without urticaria; parenteral medication(s) indicated; allergy-related edema/angioedema; hypotension" "ALLERGY/IMMUNOLOGY", "Allergic reaction/hypersensitivity (including drug fever)", "Hypersensitivity NOS", "10020755", "4", "Anaphylaxis" "ALLERGY/IMMUNOLOGY", "Allergic reaction/hypersensitivity (including drug fever)", "Hypersensitivity NOS", "10020755", "Death" "ALLERGY/IMMUNOLOGY", "Allergic rhinitis (including sneezing, nasal stuffiness, postnasal drip)", "Rhinitis allergic NOS", "10039087", "1", "Mild, intervention not indicated" "ALLERGY/IMMUNOLOGY", "Allergic rhinitis (including sneezing, nasal stuffiness, postnasal drip)", "Rhinitis allergic NOS", "10039087", "2", "Moderate, intervention indicated" "ALLERGY/IMMUNOLOGY", "Allergy/Immunology - Other (Specify, __)", "Not available", "90004000", "1", "Mild" "ALLERGY/IMMUNOLOGY", "Allergy/Immunology - Other (Specify, __)", "Not available", "90004000", "2", "Moderate" "ALLERGY/IMMUNOLOGY", "Allergy/Immunology - Other (Specify, __)", "Not available", "90004000", "3", "Severe" "ALLERGY/IMMUNOLOGY", "Allergy/Immunology - Other (Specify, __)", "Not available", "90004000", "4", "Life-threatening; disabling" "ALLERGY/IMMUNOLOGY", "Allergy/Immunology - Other (Specify, __)", "Not available", "90004000", "5", "Death" "ALLERGY/IMMUNOLOGY", "Autoimmune reaction", "Autoimmune disorder NOS", "10003815", "1", "Asymptomatic and serologic or other evidence of autoimmune reaction, with normal organ function and intervention not indicated" "ALLERGY/IMMUNOLOGY", "Autoimmune reaction", "Autoimmune disorder NOS", "10003815", "2", "Evidence of autoimmune reaction involving a non-essential organ or function (e. g. , hypothyroidism)" "ALLERGY/IMMUNOLOGY", "Autoimmune reaction", "Autoimmune disorder NOS", "10003815", "3", "Reversible autoimmune reaction involving function of a major organ or other adverse event (e. g. , transient colitis or anemia)" "ALLERGY/IMMUNOLOGY", "Autoimmune reaction", "Autoimmune disorder NOS", "10003815", "4", "Autoimmune reaction with lifethreatening consequences" "ALLERGY/IMMUNOLOGY", "Autoimmune reaction", "Autoimmune disorder NOS", "10003815", "Death" "ALLERGY/IMMUNOLOGY", "Serum sickness", "10040400", "3", "Present" "ALLERGY/IMMUNOLOGY", "Serum sickness", "10040400", "5", "Death"

Solution • A SAS program is developed to detect grade errors and run summary

Solution • A SAS program is developed to detect grade errors and run summary analysis. • Files needed • AEGrades. txt is CTCAE 3. 0 standard and used to do data validation. • TX. txt is the file need to be checked. • Constraints: • Toxicity Code is from CTCAE 3. 0 • Grade is from CTCAE 3. 0 and 0 < Grade <= 5

PROC SQL • Structured Query Language (SQL). • PROC SQL is a powerful Base

PROC SQL • Structured Query Language (SQL). • PROC SQL is a powerful Base SAS PROC combining the functionality of the DATA and PROC Steps into a single procedure. • In some cases is a more efficient alternative to traditional SAS code.

SQL procedure enables you to • Extract data from Data set • Create a

SQL procedure enables you to • Extract data from Data set • Create a new data set • Select unique values of one or more columns • Subsetting and calculating • And more…

Syntax PROC SQL; /*Begin SQL*/ … QUIT; SQL commands /* End */

Syntax PROC SQL; /*Begin SQL*/ … QUIT; SQL commands /* End */

SQL Example • Select Statement select * All variables in the table from toxicity

SQL Example • Select Statement select * All variables in the table from toxicity Table name where patient = ‘JL’; Field name • Create TABLE Statement New table name create table newtox as select patient, tox_code, grade, attribution from toxicity; Table name

SQL Example select distinct '1' as Error. ID, Patient, Course. No, CDUS_Tox_Type_Code as Tx_Code,

SQL Example select distinct '1' as Error. ID, Patient, Course. No, CDUS_Tox_Type_Code as Tx_Code, Grade, 'Grade must not be blank' as ERRMSG from New. AE where Grade is NULL union Combine the results of two SQL commands together select distinct '2' as Error. ID, Patient, Course. No, CDUS_Tox_Type_Code as Tx_Code , Grade, 'Grade must not be greater than 5' as ERRMSG from New. AE where Grade > 5 and Grade is not NULL

SAS Output Note: Patient, Course. No, Tx_Code and Grade together is primary key so

SAS Output Note: Patient, Course. No, Tx_Code and Grade together is primary key so we are able to tell the error’s location by the primary key.

Summary Analysis proc tabulate data=New. Ae. Tx; class Toxicity Attribution Grade; table Toxicity*Attribution, Grade;

Summary Analysis proc tabulate data=New. Ae. Tx; class Toxicity Attribution Grade; table Toxicity*Attribution, Grade; title “Toxicity Summary"; format Attribution Attrifmt. ; run;

SAS Output

SAS Output

Questions?

Questions?