Participant Label Format (PPID Format)
Got feedback or spotted a mistake?

Leave a comment at the end of this page or email contact@krishagni.com

Participant Label Format (PPID Format)

Users can auto-generate the PPID of each participant at the individual collection protocol level using the below tokens.

Tokens to generate PPIDs

Token name

Description

Example

Token name

Description

Example

CP_ID

Unique identifier of the Collection Protocol given by the system when CP was created.

%CP_ID%-%CP_UID(2)%

PPID generated will be 7-01, 7-02, 7-03, etc.

Here 7 is a unique identifier assigned by the system to the CP when it was created.

CP_CODE

Code added to the Collection protocol by the user during the setup.

%CP_CODE%.%CP_UID(2)%

PPID generated will be 'PCOS-02'

Here, 'PCOS' is the CP code set while creating CP, and '02' is the 2-digit unique identifier generated within the CP.

CP_UID(n)

Generates a unique identifier for a participant within a CP.

The argument 'n' is optional and specifies the number of digits in the identifier.

For example:

%CP_UID% generates IDs like 1, 10, 1010, etc

%CP_UID(5)% generates IDs like 00001, 00002, 00003, 00004, ... 00010, 00011, etc

%CP_CODE%.%CP_UID(4)%,

PPID generated will be 'PCOS-0004'

Here, 'PCOD' is the CP code set while creating CP, and '0004' is the 4-digit unique identifier generated within the CP.

SYS_UID(n)

Assigns unique sequential numbers across all collection protocols.

For example: Generates IDs like 1,2,3,.........101,102, etc. These numbers will be unique across all the collection protocols.

(n): Optionally specify the number of digits. For example, if (2) is used, then the numbers generated will be 01, 02, 03, etc.

%SYS_UID%, PPID generated will be '36', the unique sequential number across all collection protocols

CP_SITE_CODE

CP specific site code of participant's first MRN. The order of MRNs is based on the order in which they were assigned to the participant.

The CP site code is defined in the collection protocol.

%CP_SITE_CODE%_%CP_UID(4)%, the PPID generated will be 'KP-01_0012', where 'KP-01' is the CP site code and '0012' is the unique sequential identifier within the CP.

SITE_CODE

System-wide site code of participant's first MRN. The order of MRNs is based on the order in which they were assigned to the participant.

This is specified on the site page.

%SITE_CODE%_%CP_UID(4)%, PPID generated will be 'KP_0013', where 'KP' is the site code, and '0013' is the 4 digits unique identifier within the CP.

EXT_SUBJECT_ID

External subject ID specified during participant registration. External subject ID is a typically unique study-based or system-wide IDs assigned by external systems like OpenClinica, REDCap to identify the subjects or patients.

Works v4.3 onward

%CP_CODE%-%EXT_SUBJECT_ID%, the generated PPID will be 'PW-OC-0001' where 'PW' is the CP code, and 'OC-0001' is external subject ID

REG_SITE_CODE

CP site code of participant's registration site, if specified.

Works v4.3 onward

%CP_CODE%-%EXT_SUBJECT_ID%-%REG_SITE_CODE%, then the generated PPID will look like 'PW-OC-0001-KP' where 'PW' is CP code, 'OC-0001' is external subject ID, and 'KP' is the CP site code for the registration site.

CUSTOM_FIELD(level, fieldName)

Include the value of any custom field identified by "fieldName" at the specified level. The field name is the same as the attribute name that appears in the custom form designer. The allowed values of level are "cpr" and "cp"

Works v5.0 onward

  1. %CUSTOM_FIELD(cp, piCode)%, will include the value of CP custom field "piCode" 

  2. %CUSTOM_FIELD(cpr, patientId)%, will include the value of registration custom field "patientId"



Advance Tokens

You can use the EVAL(expr) token to add advanced tokens at the participant level. This token includes the result of expression evaluation in the generated labels. The expression can be a field name or complex expression.



Token Name

Description

Example

Token Name

Description

Example

%EVAL(#cpr.externalSubjectId)%

This will include the external subject ID in the generated PPIDs.



%EVAL(#cpr.participant.gender.value?.charAt(0))%

This will include the first character of the participant gender, if any, in the generated PPIDs.



%EVAL(#formatDate(#cpr.registrationDate, "yyyy"))%

This will include the registration year in the generated PPIDs.



%EVAL(#cpr.participant?.extension?.getAttrValues()['adapt'] == '1' ? 'A' : 'B')%

This will add A in the label if the adapt checkbox is checked and visa versa.

TIA_41_A

%EVAL(#cpr.collectionProtocol.shortTitle)%

Includes CP short title in the label



%EVAL(#cpr.participant.empi)%

Includes the eMPI of the participant in the PPID



%EVAL(('0000000' + #cpr.externalSubjectId)?.substring(#cpr.externalSubjectId.length(), ('0000000' + #cpr.externalSubjectId).length()))%

This will pad string fields like to append 0’s

 

%EVAL(#cpr.externalSubjectId.length() < 7 ? ('0000000' + #cpr.externalSubjectId).substring(#cpr.externalSubjectId.length()) : #cpr.externalSubjectId)%

This pads the External Subject Id with leading 0’s (if its length < 7 characters)

 

Steps to configure PPID format 

  1. Navigate to the CP overview page → CP settings → Label Format and Print

    image-20250708-132801.png
  2. Set the desired PPID label format -> click on the 'Save' button





Got feedback or spotted a mistake?

Leave a comment at the end of this page or email contact@krishagni.com