Collection Protocol Custom Fields
In OpenSpecimen, it is possible to add custom fields at the CP level. This feature was introduce introduced to facilitate capturing additional information at the study level. Only one custom form can be attached at the CP custom field level. So this form must have fields required for all the CPs.
Using skip logic in the custom forms, one can show/ hide these fields based on the site selected in the CP site dropdown or the site code.
Use Case: Show a custom field based on the site or site code selected in the CP site dropdown.
Show field ‘Arkansas Repository ID’ only when the site 'Arkansas Repository' is added
...
to the CP sites
Code Block | ||
---|---|---|
| ||
<showWhen><![CDATA[$extendedObj.cpSites.siteName = "Arkansas Repository"]]></showWhen> |
...
When the site ‘Arkansas Repository' is not selected:
...
When the site ‘Arkansas Repository' is added in to the list:
...
The field display can also be configured based on the site code, like below:
Code Block | ||
---|---|---|
| ||
<showWhen><![CDATA[$extendedObj.cpSites.code = "AR"]]></showWhen> |
...
The field will be displayed only when the user enters the site code as 'AR':
...
Order Custom Fields
Since the order level custom fields are not a standalone form and are used in conjunction with the order fields, you need to use a different syntax.
Use case: The field ‘Courier Name' should only be displayed if the value for ‘Distributed Offsite’ field is 'Yes’
Code Block | ||
---|---|---|
| ||
<showWhen><![CDATA[order.extensionDetail.attrsMap.distributed_offsite == "Yes"]]></showWhen> |
...
If 'No' is selected, the field is not displayed:
...
If ‘Yes' is selected, the 'Courier Name’ field is displayed:
...