Ejection Fraction
- change in ejection fraction, would expect a decline in EF of 2-3% per year, concerning if rapid progression, i.e., 10% decline or more - can we do absolute change?
NTproBNP
- % change over a period of time – a decrease is correlated with improvement, measured annually
SDTM Examples: Basic CMR Tests for Systolic Function
This section illustrates example analysis datasets for the following endpoints:
- Percent change in ejection fraction over time (1 year)
- Decline in ejection fraction over time (1 year) grouped by a decline greater than 10.0%
- Percent change in NTproBNP over time (1 year)
Source Data
The SDTM examples used as the source data are from Section 2.1, Basic CMR Tests for Systolic Function. The CV dataset contains 16 rows, 1-8 for visit 1 and 9-16 for visit 6. Of these rows, the CVTESTCD = "LVEF_C" and CVTESTCD = "RVEF_C" representing the Ventricular Ejection Fraction, Calculated (%) for left and right were selected for the analysis. The LB dataset test where LBTESTCD = "BNPPRONT" was used to add the value of BNPPRONT to compute the percent change over time, and then it was added as a potential covariate in each row for the last analysis.
Example Analysis Datasets
The tables below show the analysis dataset metadata and parameters used for this example.
Analysis Datasets
Dataset Name | Dataset Description | Class of Dataset | Structure | Location | Keys | Documentation |
---|---|---|---|---|---|---|
ADSL | Subject-Level Analysis Dataset | SUBJECT LEVEL ANALYSIS DATASET | One record per subject | adsl.xpt | USUBJID | ADaMIG |
ADCVNTP | Cardiac Ejection Fraction and NTproBNP Analysis Dataset | BASIC DATA STRUCTURE | One record per subject per analysis visit per parameter | adcvntp.xpt | USUBJID, AVISITN, PARAMN | Analysis Dataset |
ADCVCMR | Cardiovascular CMR Ejection Fraction Analysis Dataset | BASIC DATA STRUCTURE | One record per subject per analysis visit per parameter | adcvcmr.xpt | USUBJID, AVISITN, PARAMN | Analysis Dataset |
The ADCVNTP dataset includes tests pertinent to these analyses. The records from LB where CVTESTCD is equal to "LVEF_C" or "RVEF_C" and LBTESTCD = "BNPPRONT" were selected. The relationship dataset RELREC illustrates the relationship between datasets. In this case, many lab draws may occur throughout the year, but only those linked to a specific visit are included. By subsetting the LB dataset with LBLNKID not missing, laboratory data that aligns with CV data can be filtered out and sorted using USUBJID and VISIT. If LBLNKID is not available, a windowing strategy could be used to select the laboratory draw closest to that visit for merging with CV, computed in AVISIT. In the example, only two LB records are shown which are linked to CV where CVTESTCD = "LVEF_C" or CVTESTCD = "R.VEF_C".
ADCVMR is an efficacy analysis dataset with only a few records for more complex modeling of changes in ejection fraction, plus the ProB-type test results. It is an ADaM Basic Data Structure (BDS) dataset, with additional variables added from ADCVNTP.
ADSL Analysis Dataset
This is a simplified example ADSL dataset; it is expected that additional variables for stratification or of interest for analysis would be included.
ADSL Variable Metadata
Variable Name | Variable Label | Type | Codelist/Controlled Terms/Format | Source | Derivation/Comment |
---|---|---|---|---|---|
STUDYID | Study Identifier | Char | DM.STUDYID | ||
USUBJID | Unique Subject Identifier | Char | DM.USUBJID | ||
BRTHDT | Date of Birth | Num | date9. | ADSL.BRTHDTC | Convert BRTHDTC from ISO 8601 format to numeric date. (Note that if exact date is not found then use two variables to capture year and month.) |
TRTSDT | Date of First Exposure to Treatment | Num | date9. | Date portion of DM.RFSTDTC converted to numeric and displayed in a format such as DATE9. | |
TRT01P | Planned Treatment for Period 01 | Char | Treatment A | ADSL.TRT01P | For this example we are using "Treatment A". In a Real World Evidence study this could be non-treatment related, e.g. "Group A". |
ITTFL | Intent-To-Treat Population Flag | Char | Y; N | ADSL.ITTFL | Derive the intent-to-treat population as per the protocol and SAP. |
BSABASE | Body Surface Area (m2) at Baseline | Num | ADSL.BSABASE | Set to VS.VSSTRESN in ADSL where VS.VSTESTCD = "BSA" and select for baseline visit. | |
ACEINHFL | ACE Inhibitor Medications Flag | Char | Y | Select a list of ACE inhibitor medications from concomitant medications (CM) domain, and from treatment (EX or EC) domains. Code "Y" if the medication was taken during the study. Can be used to subset or to exclude the population who took ACE inhibitors. |
adsl.xpt
Row | STUDYID | USUBJID | BRTHDT | TRTSDT | TRT01P | ITTFL | BSABASE | ACENHFL |
---|---|---|---|---|---|---|---|---|
1 | DMD-EFLGE | DMD-EFLGE-101 | 15FEB2013 | 15FEB2022 | Treatment A | Y | 0.65 | Y |
ADCVNTP Analysis Dataset
In this example, columns for derived variables BASE, CHG, PCHG and CHGCAT1 have been added to facilitate analyses of the efficacy endpoints. Specifically, example demographic data for ADSL were created for an 8 year old male. Also, a custom variable for BSA at baseline (BSABASE), and an example of a stratification variable for subjects with was added from ADSL.
Parameter Value List - ADCVNTP [ADCVNTP]
Dataset | Variable | Where | Type | Origin | Derivation/Comment |
---|---|---|---|---|---|
ADCVNTP | AVAL | PARAMCD = "LVEFC" | Num | Predecessor | Set to CV.CVSTRESN where CV.CVTESTCD = "LVEF_C" |
ADCVNTP | AVAL | PARAMCD = "RVEFC" | Num | Predecessor | Set to CV.CVSTRESN where CV.CVTESTCD = "RVEF_C" |
ADCVNTP | AVAL | PARAMCD = "BNPPRONT" | Num | Predecessor | Set to LB.LBSTRESN where LB.LBTESTCD = "BNPPRONT" |
ADCVNTP Variable Metadata
Variable Name | Variable Label | Type | Codelist/Controlled Terms/Format | Source | Derivation/Comment |
---|---|---|---|---|---|
STUDYID | Study Identifier | Char | CV.STUDYID | ||
USUBJID | Unique Subject Identifier | Char | CV.USUBJID | Select for records with RE data. | |
ASEQ | Analysis Sequence Number | Num | CV.CVSEQ | Number records 1 to n after sorting by keys. | |
BRTHDT | Date of Birth | Num | Date9. | ADSL.BRTHDTC | Convert BRTHDTC from ISO 8601 format to numeric date. (Note that if exact date is not found then use two variables to capture year and month.) |
TRT01P | Planned Treatment for Period 01 | Char | Treatment A | ADSL.TRT01P | |
ITTFL | Intent-To-Treat Population Flag | Char | Y; N | ADSL.ITTFL | |
BSABASE | Body Surface Area (m2) at Baseline | Num | ADSL.BSABASE | Compute in ADSL where VS.VSTESTCD = "BSA". | |
ACEINHFL | ACE Inhibitor Medications Flag | Char | Y | Select a list of ACE inhibitor medications from concomitant medications (CM) domain, and from treatment (EX or EC) domains. Code "Y" if the medication was taken during the study. Can be used to subset or to exclude the population who took ACE inhibitors. | |
BSA | Body Surface Area (m2) by Visit | Num | Compute from VS.HEIGHT and VS.WEIGHT by visit, using the Du Bois method. BSA = 0.007184 × W0.425 × H0.725 Note that there are multiple methods and the study protocol should describe which one to use (e.g., Mosteller, Haycock, Gehan & George, Boyd, Fujimoto, Takahira, and Schlich). | ||
PARAM | Parameter | Char | Left Ventricular Ejection Fraction, Calculated (%); Right Ventricular Ejection Fraction, Calculated (%); N-Terminal ProB-type Natriuretic Peptide (pg/mL) | For tests from CV, set to the values of CV.CVTEST plus CV.CVTESTU with spaces and parentheses as shown. For tests from LB, set to the value of LB.LBTEST plus LB.LBTESTU with spaces and parentheses as shown. | |
PARAMCD | Parameter Code | Char | LVEFC; RVEFC; BNPPRONT | If CV.CVTESTCD = "LVEF_C" then PARAMCD = "LVEFC" If CV.CVTESTCD = "RVEF_C" then PARAMCD = "RVEFC" If LB.LBTESTDC = "BNPPRONT" then PARAMCD = "BNPPRONT Note: for this example dataset, select the records where the test values shown above are included. | |
PARAMN | Parameter (N) | Num | Number PARAMCD as follows: LVEFC = "1" RVEFC = "2" BNPPRONT = "3" | ||
AVAL | Analysis Value | Num | See Parameter Value List | ||
AVISIT | Analysis Visit | Char | If CV.VISIT = "VISIT 1" then AVISIT = "Visit 1 (Baseline)". Else if CV.VISIT = "VISIT 6" then AVISIT = "Visit 6 (1 Year)". | ||
AVISITN | Analysis Visit (N) | Num | Set to value of CV.VISITNUM or LB.VISITNUM | ||
VISIT | Visit | Num | CV.VISIT LB.VISIT | ||
ADT | Analysis Date | Num | date9. | Date portion of CV.CVDTC or LB.LBDTC converted to numeric and displayed in a format such as date9. | |
ABLFL | Baseline Record Flag | Char | Y | If CV.VISIT = 1 then ABLFL = "Y". | |
BASE | Baseline Value | Num | Set BASE to AVAL from the record for that subject and parameter where ABLFL = "Y". Populate BASE for additional visits by carrying forward the value of BASE in the baseline record by USUBJID and AVISIT. | ||
CHG | Change from Baseline | Num | Compute CHG = AVAL - BASE for that record. Only compute for post-baseline records. | ||
PCHG | Percent Change from Baseline | Num | Compute PCHG = (CHG / BASE) * 100. Only compute for post-baseline records. | ||
CHGCAT1 | Change from Baseline Category 1 | Char | Decline >=10.0; Decline < 10.0; Increase | Categorize the value of CHG for Left Ventricular Ejection Fraction, and Calculated (%) (LVEFC) and for Right Ventricular Ejection Fraction, Calculated (%) (RVEFC) | |
CHGCAT2 | Change from Baseline Category 2 | Chart | Categorize the value of CHG for N-Terminal ProB-type Natriuretic Peptide (pg/mL) (BNPPRONT) | ||
SRCDOM | Source Data | Char | CV; LB | Set to the SDTM domain name that relates to the analysis value. | |
SRCSEQ | Source Sequence Number | Num | CV.CVSEQ LB.LBSEQ | Set to the SDTM domain sequence number that relates to the analysis value. |
This example dataset shows the findings and additional analysis variables associated with:
- Left Ventricular Ejection Fraction, Calculated (%)
- Right Ventricular Ejection Fraction, Calculated (%)
- N-Terminal ProB-type Natriuretic Peptide (pg/mL)
Dataset Wrapper Debug Message
Please add a row column to your dataset.
Example 2
The dataset above can also be set up to provide multivariate analyses by taking the lab tests of interest, transposing and merging with the ADCVNTP dataset. In that case, the records from LB are not needed as a row.
Parameter Value List - ADCVCMR [ADCVCMR]
Dataset | Value | Where | Variable | Variable Label |
---|---|---|---|---|
ADCVCMR | AVAL | PARAMCD = "BNPPRONT" | BNPPRONT | N-Terminal ProB-type Natriuretic Peptide (IU/L) |
ADCVCMR | CHG | PARAMCD = "BNPPRONT" | BNPCHG | N-Term ProB-type N Pep Change Category |
Example Analysis Results Metadata (ARM) Tables
For more details on ARM, see the ADaMIG and the Analysis Results Metadata (ARM) v1.0 for Define-XML v2.0 (https://www.cdisc.org/standards/foundational/adam).
Table 1. A simple comparison of change by treatment groups over one year.
Display | Table 14.xx.xx Percent Change in Left Ventricular Ejection Fraction Over 1 Year |
---|---|
Analysis Result | Comparison of Percent Change of Ejection Fraction for the Treatment Groups (1 Year) |
Analysis Variables(s) | PCHG |
Analysis Reason | Primary efficacy endpoint as prespecified in the SAP |
Analysis Purpose | Primary outcome measure |
Data References (incl. selection criteria) | PARAMCD = "LVEFC" Where ITTFL = "Y" and AVISITN = 6; |
Documentation | Comparison of Means with 95% confidence interval |
Programming Statements (Add programming language statements here: SAS, R, etc.) | /* Subset the data */ DATA ONE; SET ADCVCMR; Where ITTFL = "Y" and AVISITN = 2; RUN; PROC MEANS DATA=ONE MEAN STD MEDIAN ; CLASS TRT01P; VAR LVEF; /* Could add RVEF here as well */ RUN; |
Table 2. This table demonstrates a model over multiple time points, adding some of the covariates that were retained in the analysis dataset.
Display | Table 14.xx.xx Percent Change in Left Ventricular Ejection Fraction Over Time (Yearly) |
---|---|
Analysis Result | Comparison of Percent Change of Ejection Fraction for the Treatment Groups Over Time ( yearly) |
Analysis Variables(s) | PCHG |
Analysis Reason | Primary efficacy endpoint as prespecified in the SAP |
Analysis Purpose | Primary outcome measure |
Data References (incl. selection criteria) | PARAMCD = "LVEFC" Where ITTFL = "Y" |
Documentation | The mixed model using lsmeans to compare treatment groups |
Programming Statements (Add programming language statements here: SAS, R, etc.) | /* Note that PCHG is only computed post-baseline, so subset for the yearly visits, i.e. 6, 12, 18 etc. */ DATA TWO; SET ADCVCMR; IF PARAMCD = "LVEFC"; /* Subset by param, as there are two parameters with CHG calculated*/ Where ITTFL = "Y" and AVISITN = 2; RUN; PROC MIXED DATA=ADCVNTP; CLASS STUYDID TRT01P AVISITN; MODEL PCHG=AVISITN*TRT01P/Solution; RANDOM INTERCEPT / SUBJECT=STUYDID TYPE=UN; LSMEANS TRT01P*AVISITN/ CL PDIFF; RUN; |
Table 3. This example uses the dataset ADCVNTP, selecting for the parameter "N-Terminal ProB-type Natriuretic Peptide (IU/L)".
Display | Table 14.xx.xx Percent change in NTproBNP over 1 Year |
---|---|
Analysis Result | Comparison of Percent Change of NTproBNP for the Treatment Groups Over a period of time. |
Analysis Variables(s) | PCHG |
Analysis Reason | Primary efficacy endpoint as prespecified in the SAP |
Analysis Purpose | Primary outcome measure |
Data References (incl. selection criteria) | PARAMCD = "BNPPRONT" Where ITTFL = "Y" AND AVISIT GE 6; |
Documentation | The mixed model using lsmeans to compare treatment groups |
Programming Statements (Add programming language statements here: SAS, R, etc.) | PROC MEANS DATA=ADCVCMR MEAN STD MEDIAN maxdec=3; CLASS TRT01P; BY VISIT; VAR BNPPRONT; RUN; |