The JMPC_ Internal Model Variables Table

During the Add Study... process, a number of variables from the imported data sets are used to construct a new set of internal JMPC_ variables. These analysis-ready variables follow the ADaM standards and they are used in calculations and displays by the reports.

Note: When generating the JMPC_ internal model variables, the ADaM variable(s) always take precedence over their SDTM equivalents.

The JMPC_ variables have the following column properties:

SAS Name – same as column name.
SAS Label – the label of the original variable is used. If the variable was derived and multiple variables were used to create the variable, then the standard ADaM label is used.
Origin – this is the list of the original variable(s) that was/were used to create the JMPC_ variable.
JMPC_ Variable Name Variable Type Notes
JMPC_EXSTDTC Character

Earliest non-missing value of EXSTDTC per subject.

This variable is added only to the TADSL data table.

JMPC_EXSTDTM Numeric

Numeric datetime version of JMPC_EXSTDTC which only gets created if EXSTDTC is datetime.

This variable is added only to the TADSL data table.

JMPC_EXSTDT Numeric

Numeric date version of JMPC_EXSTDTC.

This variable is added only to the TADSL data table.

JMPC_EXENDTC Character

Latest non-missing value of EXENDTC per subject. EXSTDTC is used if EXENDTC is missing.

This variable is added only to the TADSL data table.

JMPC_EXENDTM Numeric

Numeric datetime version of JMPC_EXENDTC. This variable is created only if EXENDTC is datetime. EXSTDTC is used if EXENDTC is missing.

This variable is added only to TADSL data table.

JMPC_EXENDT Numeric

Numeric date version of JMPC_EXENDTC. EXSTDTC is used if EXENDTC is missing.

This variable is added only to TADSL data table.

JMPC_ANCHORDATE Numeric

If, during add study, the user selects “Use treatment start date” as the Anchor Date for Study Day Calculation, then this variable is populated with the numeric values of one of these variables: TRTSDTM, TRTSDT, RFXSTDTC, JMPC_EXSTDTM, JMPC_EXSTDT. The variables are checked in this priority order.

If during add study the user selects “Use reference start date” as Anchor Date for Study Day Calculation, then the numeric values of RFSTDTC are used to populate the variable.

The variable used to create JMPC_ANCHORDATE must have nonmissing values

This variable is added only to TADSL data table.

JMPC_TREATMENTSTARTDATE Numeric

It is populated with the numeric values of one of these variables: TRTSDTM, TRTSDT, RFXSTDTC, JMPC_EXSTDTM, JMPC_EXSTDT, RFSTDTC. The variables are checked in this priority order and the first variable that exists and has non-missing values is used to create JMPC_TREATMENTSTARTDATE.

This variable is added only to TADSL data table.

JMPC_TREATMENTSTARTDATEF Numeric

Date imputation flag variable for JMPC_TREATMENTSTARTDATE.

If Day is imputed only, then it gets the value of “D”.

If Day and Month are both imputed, then it gets the value of “M”.

This variable is added only to the TADSL data table.

JMPC_TREATMENTSTARTTIMEF Numeric

Time imputation flag variable for JMPC_TREATMENTSTARTDATE.

If Seconds are imputed only, then it gets the value of “S”. If Seconds and Minutes are both imputed, then it gets the value of “M”. If Seconds, Minutes, and Hour are all imputed, then it gets the value of “H”.

This variable is added only to the TADSL data table.

JMPC_TREATMENTENDDATE Numeric

It is populated with the numeric values of one of these variables: TRTEDTM, TRTEDT, RFXENDTC, JMPC_EXENDTM, JMPC_EXENDT, and RFENDTC and the first variable that exists and has non-missing values is used to create JMPC_TREATMENTENDDATEF.

This variable is added only to the TADSL data table.

JMPC_TREATMENTENDDATEF Numeric

Date imputation flag variable for JMPC_TREATMENTENDDATE.

If Day is imputed only, then it gets the value of “D”.

If Day and Month are both imputed, then it gets the value of “M”.

This variable is added only to the TADSL data table.

JMPC_TREATMENTENDTIMEF Numeric

Time imputation flag variable for JMPC_TREATMENTENDDATE.

If Seconds are imputed only, then it gets the value of “S”.

If Seconds and Minutes are both imputed, then it gets the value of “M”.

If Seconds, Minutes, and Hour are all imputed, then it gets the value of “H”.

This variable is added only to the TADSL data table.

JMPC_ALSBFL Character

All Subjects population flag variable. It has a value of “Y” for all subjects.

This variable is added to the ADSL, DM, and TADSL data tables.

JMPC_ALSBXSFL Character

All Subjects Excluding Screen Failures population flag.

It has a value of “Y” for all subjects that are not screen failures, and a value of “N” for screen failures. ARM/ARMCD and ARMNRS variables are used to identify Screen Failures.

This variable is added to the ADSL, DM, and TADSL data tables.

JMPC_SAFFL Character

Safety population flag

This variable is created by checking for the existence of the following ADSL/DM variables in this order: SAFFL, SAFETY.

The first variable that exists and has non-missing values is used to create JMPC_SAFFL. If the values are 1 and 0 instead of Y and N, then 1 is converted to Y and 0 to N.

JMPC_COMPLFL Character

Completers population flag

This variable is created by checking for the existence of the following ADSL/DM variables in this order: COMPLFL, COMPFL, COMPLT, COMPLETED. The first variable that exists and has non-missing values is used to create JMPC_COMPLFL.

If the values are 1 and 0 instead of Y and N, then 1 is converted to Y and 0 is converted to N.

JMPC_ENRLFL Character

Enrolled population flag

This variable is created by checking for the existence of the following ADSL/DM variables in this order: ENRLFL, ENRL, ENROLLED. The first variable that exists and has non-missing values is used to create JMPC_ENRLFL.

If the values are 1 and 0 instead of Y and N, then 1 is converted to Y and 0 is converted to N.

JMPC_FASFL Character

Full Analysis Set population flag

This variable is created by checking for the existence of the following ADSL/DM variables in this order: FASFL, FULLSET. The first variable that exists and has non-missing values is used to create JMPC_FASFL.

If the values are 1 and 0 instead of Y and N, then 1 is converted to Y and 0 is converted to N.

JMPC_ITTFL Character

Intent-To-Treat population flag

This variable is created by checking for the existence of the following ADSL/DM variables in this order: ITTFL, ITT. The first variable that exists and has non-missing values is used to create JMPC_ITTFL.

If the values are 1 and 0 instead of Y and N, then 1 is converted to Y and 0 is converted to N.

JMPC_PPROTFL Character

Per-Protocol population flag

This variable is created by checking for the existence of the following ADSL/DM variables in this order: PPROTFL, PPROT. The first variable that exists and has non-missing values is used to create JMPC_PPROTFL.

If the values are 1 and 0 instead of Y and N, then 1 is converted to Y and 0 is converted to N.

JMPC_RANDFL Character

Randomized population flag

This variable is created by checking the existence of the following ADSL/DM variables in this order: RANDFL, RAND, RANDOMIZED, RANDOM. The first variable that exists and has non-missing values is used to create JMPC_PPROTFL.

If the values are 1 and 0 instead of Y and N, then 1 is converted to Y and 0 is converted to N.

JMPC_PARAM Character

If the ADaM PARAM variable exists, its values are used to create JMPC_PARAM.

If the ADaM PARAM variable does not exist, then the SDTM variables xxTEST, xxCAT, xxSCAT, xxSPEC, xxMETHOD, xxLOC, xxPOS, xxSTRESU/xxORRESU are concatenated to create JMPC_PARAM.

Note: Only the values of xxTEST are used to create JMPC_PARAM for SDTM TU, TR, and RS domains.

JMPC_PARAMCD Character

If the ADaM PARAMCD variable exists, its values are used to create JMPC_PARAMCD.

If the ADaM PARAMCD variable does not exist, then the SDTM variables xxTESTCD, xxCAT, xxSCAT, xxSPEC, xxMETHOD, xxLOC, xxPOS, xxSTRESU/xxORRESU are concatenated to create JMPC_PARAMCD.

Note: Only the values of xxTESTCD are used to create JMPC_PARAMCD for SDTM TU, TR, and RS domains.

JMPC_PARCAT1 Character

If the ADaM PARCAT1 variable exists, then the values of PARCAT1 are used to create JMPC_PARCAT1.

If the ADaM PARCAT1 variable does not exist, then the SDTM variable xxCAT is used to create JMPC_PARCAT1.

JMPC_AVAL Numeric

If the ADaM AVAL variable exists, then the values of AVAL are used to create JMPC_AVAL.

If the ADaM AVAL variable does not exist, then the standard or original results (xxSTRESN/xxORRES) from SDTM are used, based on which Advanced option is selected during the Add Study... process.

JMPC_AVALC Character

If the ADaM AVALC variable exists, then the values of AVALC are used to create JMPC_AVALC.

If the ADaM AVALC variable does not exist, then the standard or original results (xxSTRESC/xxORRES) from SDTM are used, based on which Advanced option is selected during the Add Study... process.

JMPC_AVISIT Character

AVISIT/VISIT is used to create JMPC_AVISIT.

If the domain contains only a numeric visit variable, then ADSV/SV is used to look up the character visit values.

If there is a visit variable in DM/ADSL, then JMPC_DMVISIT/JMPC_ADSLVISIT is created.

JMPC_AVISITN Character

AVISITN/VISITNUM is used to create JMP_AVISITN.

If the domain contains only a character visit variable, then ADSV/SV is used to look up the numeric visit values.

If there is a visit number variable in DM/ADSL, then JMPC_DMVISITN/JMPC_ADSLVISITN is created.

JMPC_RFSTDTM Numeric

RFSTDTC is used to create JMPC_RFSTDTM.

This variable is created only if RFSTDTC has both date and time values.

JMPC_RFSTDT Numeric RFSTDTC is used to create JMPC_RFSTDTM.

This variable is created only if RFSTDTC has only date but not time values.

JMPC_RFSTDTF Character

Date imputation flag variable for reference start date (RFSTDTC).

If Day is imputed only, then it gets the value of “D”. If Day and Month are both imputed, then it gets the value of “M”.

JMPC_RFSTTMF Character

Time imputation flag variable for reference start date (RFSTDTC). It gets created only if RFSTDTC is datetime (has time).

If Seconds are imputed only, then it gets the value of “S”. If Seconds and Minutes are both imputed, then it gets the value of “M”. If Seconds, Minutes, and Hour are all imputed, then it gets the value of “H”.

JMPC_RFENDTM Numeric

RFENDTC is used to create JMPC_RFENDTM.

This variable is created only if RFENDTC has both date and time values..

JMPC_RFENDT Numeric

RFENDTC is used to create JMPC_RFENDT.

This variable is created only if RFENDTC has date (but not time) values.

JMPC_RFENDTF Character

Date imputation flag variable for reference end date (RFENDTC).

If Day is imputed only, then it gets the value of “D”. If Day and Month are both imputed, then it gets the value of “M”.

JMPC_RFENTMF Character

Time imputation flag variable for reference end date (RFENDTC). It only gets created if RFENTDTC is datetime (has time).

If Seconds are imputed only, then it gets the value of “S”. If Seconds and Minutes are both imputed, then it gets the value of “M”. If Seconds, Minutes, and Hour are all imputed, then it gets the value of “H”.

JMPC_RFXSTDTM Numeric

RFXSTDTC is used to create JMPC_RFXSTDTM.

This variable is created only if RFXSTDTC has both date and time values.

JMPC_RFXSTDT Numeric

RFXSTDTC is used to create JMPC_RFXSTDT.

This variable is created only if RFXSTDTC has date (but not time) values.

JMPC_RFXSTDTF Character

Date imputation flag variable for Date/Time of First Study Treatment (RFXSTDTC).

If Day is imputed only, then it gets the value of “D”. If Day and Month are both imputed, then it gets the value of “M”.

JMPC_RFXSTTMF Character

Time imputation flag variable for Date/Time of First Study Treatment (RFXSTDTC). It gets created only if RFXSTDTC is datetime (has time).

If Seconds are imputed only, then it gets the value of “S”. If Seconds and Minutes are both imputed, then it gets the value of “M”. If Seconds, Minutes, and Hour are all imputed, then it gets the value of “H”.

JMPC_RFXENDTM Numeric

RFXENDTC is used to create JMPC_RFXENDTM.

This variable is created only if RFXENDTC has both date and time values.

JMPC_RFXENDT Numeric

RFXENDTC is used to create JMPC_RFXENDT.

This variable is created only if RFXENDTC has date (but not time) values.

JMPC_RFXENDTF Character

Date imputation flag variable for Date/Time of Last Study Treatment (RFXENDTC).

If Day is imputed only, then it gets the value of “D”. If Day and Month are both imputed, then it gets the value of “M”.

JMPC_RFXENTMF Character

Time imputation flag variable for Date/Time of Last Study Treatment (RFXENDTC). It only gets created if RFXENDTC is datetime (has time).

If Seconds are imputed only, then it gets the value of “S”. If Seconds and Minutes are both imputed, then it gets the value of “M”. If Seconds, Minutes, and Hour are all imputed, then it gets the value of “H”.

JMPC_RFPENDTM Numeric

RFPENDTC is used to create JMPC_RFPENDTM.

This variable is created only if RFPENDTC has both date and time values.

JMPC_RFPENDT Numeric RFPENDTC is used to create JMPC_RFPENDT. This variable is created only if RFPENDTC has date (but not time) values.
JMPC_RFPENDTF Character

Date imputation flag variable for Date/Time of End of Participation (RFPENDTC).

If Day is imputed only, then it gets the value of “D”. If Day and Month are both imputed, then it gets the value of “M”.

JMPC_RFPENTMF Character

Time imputation flag variable for Date/Time of End of Participation (RFPENDTC). It gets created only if RFPENDTC is datetime (has time).

If Seconds are imputed only, then it gets the value of “S”. If Seconds and Minutes are both imputed, then it gets the value of “M”. If Seconds, Minutes, and Hour are all imputed, then it gets the value of “H”.

JMPC_BRTHDT Numeric Numeric version of BRTHDTC. Partial birth dates are imputed.
JMPC_ADT Numeric This variable is generated from either the ADaM ADT/ADTM or the SDTM xxDTC variable. If the date variable is in DM/ADSL, then JMPC_DMDT/JMPC_ADSLDT is created.
JMPC_ADTM Numeric

This variable is generated from either the ADaM ADTM or the SDTM xxDTC variable.

This variable is created only when the original variable has both date and time values.

If the datetime variable is in DM/ADSL, then JMPC_DMDTM/JMPC_ADSLDTM gets created.

JMPC_ADTF Character

Date imputation flag variable.

If ADaM ADTF variable is present, then we use the values of ADTF to populate it. Otherwise, if we have the character xxDTC variable then if Day is imputed only, then it gets the value of “D”. If Day and Month are both imputed, then it gets the value of “M”.

If the date variable is in DM/ADSL, then JMPC_DMDTF/JMPC_ADSLDTF gets created.

JMPC_ATMF Character

Time imputation flag variable.

If ADaM ATMF variable is present, then we use the values of ATMF to populate it. Otherwise, if we have character xxDTC variable then if Seconds are imputed only, then it gets the value of “S”. If Seconds and Minutes are both imputed, then it gets the value of “M”. If Seconds, Minutes, and Hour are all imputed, then it gets the value of “H”.

If the datetime variable is in DM/ADSL, then JMPC_DMTMF/JMPC_ADSLTMF gets created.

JMPC_ASTDT Numeric

This variable is generated from either the ADaM ASTDT/ASTDTM or the SDTM xxSTDTC variable.

If the start date variable is in DM/ADSL, then JMPC_DMSTDT/JMPC_ADSLSTDT is created.

JMPC_ASTDTM Numeric

This variable is generated from either the ADaM ASTDTM or the SDTM xxSTDTC variable.

This variable is created only when the original variable has both date and time values.

If the start datetime variable is in DM/ADSL, then JMPC_DMSTDTM/JMPC_ADSLSTDTM gets created.

JMPC_ASTDTF Character

Start date imputation flag variable.

If ADaM ASTDTF variable is present, then we use the values of ASTDTF to populate it. Otherwise, if we have character xxSTDTC variable then if Day is imputed only, then it gets the value of “D”. If Day and Month are both imputed, then it gets the value of “M”.

If the start date variable is in DM/ADSL, then JMPC_DMSTDTF/JMPC_ADSLSTDTF gets created.

JMPC_ASTTMF Character

Start time imputation flag variable.

If ADaM ASTTMF variable is present, then we use the values of ASTTMF to populate it. Otherwise, if we have character xxSTDTC variable then if Seconds are imputed only, then it gets the value of “S”. If Seconds and Minutes are both imputed, then it gets the value of “M”. If Seconds, Minutes, and Hour are all imputed, then it gets the value of “H”.

If the start datetime variable is in DM/ADSL, then JMPC_DMSTTMF/JMPC_ADSLSTTMF gets created.

JMPC_AENDT Numeric This variable is generated from either the ADaM AENDT/AENDTM or the SDTM xxENDTC variable.
JMPC_AENDTM Numeric

This variable is generated from either the ADaM AENDTM or the SDTM xxENDTC variable.

This variable is created only when the original variable has both date and time values.

JMPC_AENDTF Character

End date imputation flag variable.

If ADaM AENDTF variable is present, then we use the values of AENDTF to populate it. Otherwise, if we have character xxENDTC variable then if Day is imputed only, then it gets the value of “D”. If Day and Month are both imputed, then it gets the value of “M”.

JMPC_AENTMF Character

End time imputation flag variable.

If ADaM AENTMF variable is present, then we use the values of AENTMF to populate it. Otherwise, if we have character xxENDTC variable then if Seconds are imputed only, then it gets the value of “S”. If Seconds and Minutes are both imputed, then it gets the value of “M”. If Seconds, Minutes, and Hour are all imputed, then it gets the value of “H”.

JMPC_ADY Numeric

This variable is generated from either the ADaM ADY or the SDTM xxDY variable.

When there is no study day variable, then this variable is calculated using the domain's date variable and the anchor date specified for study day calculation (treatment start date/reference start date). Even if a study day variable is present, users can choose the option to recalculate the values when adding the study under Advanced options.

If there is a study day variable in DM/ADSL, then JMPC_DMDY/JMPC_ADSLDY gets created.

JMPC_ASTDY Numeric

This variable is generated from either the ADaM ASTDY or the SDTM xxSTDY variable.

When there is no start study day variable, then this variable is calculated using the domain’s start date variable and the anchor date specified for study day calculation (treatment start date/reference start date). Even if a start study day variable is present, users can choose the option to recalculate the values when adding the study under Advanced options.

If there is a study start day variable in DM/ADSL, then JMPC_DMSTDY/JMPC_ADSLSTDY gets created.

JMPC_AENDY Numeric

This variable is generated from either the ADaM AENDY or the SDTM xxENDY variable.

When there is no end study day variable, this variable is calculated using the domain’s end date variable and the anchor date specified for study day calculation (treatment start date/reference start date). Even if end study day variable is present users can choose the option to recalculate the values when adding the study under Advanced options.

JMPC_ATPT Character This variable is generated from either the ADaM ATPT or the SDTM xxTPT variable.
JMPC_ATPTN Numeric This variable is generated from either the ADaM ATPTN or the SDTM xxTPTN variable.
JMPC_ANRLO Numeric

This variable is generated from either the ADaM ANRLO or SDTM xxSTNRLO/xxORNRLO variables.

If the data is SDTM, then standard or original reference ranges are loaded based on which option was selected for Test Results under Advanced options when the study was added.

JMPC_ANRLOC Character

This variable is generated from either the ADaM ANRLOC or SDTM xxSTNRC/ xxSTNRLO/xxORNRLO variables.

If the data is SDTM, then standard or original reference ranges are loaded based on what was selected for Test Results under Advanced options when the study was added.

JMPC_ANRHI Numeric This variable is generated from either the ADaM ANRHI or SDTM xxSTNRHI/xxORNRHI variables. If the data is SDTM, then standard or original reference ranges are loaded based on what was selected for Test Results under Advanced options when the study was added.
JMPC_ANRHIC Character

This variable is generated from either the ADaM ANRHIC or SDTM xxSTNRC/xxSTNRHI/xxORNRHI variables.

If the data is SDTM, then standard or original reference ranges are loaded based on what was selected for Test Results under Advanced options when the study was added.

JMPC_ANRIND Character

This variable is generated from either the ADaM ANRIND or SDTM xxNRIND variables.

If there is no normal reference range indicator variable or it is present, but all values are missing, then the value is imputed using the test result value and the lower and upper reference range values. In this case JMPC_ANRIND gets populated with the following values: NORMAL, LOW, and HIGH.

JMPC_ABLFL Character This variable is generated from either the ADaM ABLFL or SDTM xxBLFL variables.
JMPC_ASEV Character The ADaM ASEV or SDTM xxSEV is used to create this variable.
JMPC_ATOXGR Character This variable is generated from either the ADaM ATOXGR or SDTM xxTOXGR variables.
JMPC_ATOXGRSEV Character First we look for ATOXGR/xxTOXGR and if it is missing, then we use the values of ASEV/xxSEV.
JMPC_TRTEMFL Character This variable is generated from either the ADaM TRTEMFL or SDTM xxTRTEM variables.
JMPC_ACN Character

This variable is generated from the AEACN variable.

If we are dealing with a multiple treatment study, then multiple JMPC_ACN variables are created in this form JMPC_ACN_<treatment x>. The name of the treatment is extracted from the label.

JMPC_AREL Character

The ADaM AREL or SDTM AEREL is used to create this variable.

If we are dealing with a multiple treatment study, then multiple JMPC_AREL variables are created in this form JMPC_AREL_<treatment x>. The name of the treatment isextracted from the label.

JMPC_APERIOD Numeric

This variable is added to findings/events/interventions domains for crossover studies.

If APERIOD exists in the data, then the values of APERIOD are used. If it doesn't exist, then the treatment start date ADSL variables (TRTxxSDTM/TRTxxSTDT) are used to assign a numeric value to JMPC_APERIOD. The pre-treatment findings/events/interventions are assigned a value of 0.

JMPC_TRTA Character

This variable is added to findings/events/interventions domains for crossover studies.

If TRTA exists in the data, then the values of TRTA are used. If it doesn't exist, then the treatment start date (TRTxxSTDM/TRTxxSTDT) and actual treatment period (TRTxxA) ADSL variables are used to identify in which actual treatment period the finding/event/intervention occurred.

JMPC_TRTP Character

This variable is added to findings/events/interventions domains for crossover studies.

If TRTP exists in the data, then the values of TRTP are used. If it doesn't exist, then the treatment start date (TRTxxSTDM/TRTxxSTDT) and planned treatment period (TRTxxP) ADSL variables are used to identify in which planned treatment period the finding/event/intervention occurred.