The ‘Consent Date’ should display the default value as the current date and time. Ensure that the control type in the consent custom fields form is updated to ‘Date and Time’.
In the consent HTML, the code for the ‘Consent Date’ field needs to be updated as below: Code Block |
---|
| <div class="clearfix">
<div style="width: 45%; float: left; clear: left;">
<div class="col-xs-8 os-no-left-padding">
<div user-input field="ectx.customFields.consentDate" type="date-time">
<os-date-picker name="consentDate" date="ectx.customFields.consentDate" default-current-date ng-disabled="1 != 0"></os-date-picker>
</div>
</div>
<div class="col-xs-4 os-no-left-padding">
<timepicker class="os-time-no-wheels" ng-model="ectx.customFields.consentDate" show-meridian="false" readonly-input="true"></timepicker>
</div>
<div os-field-error field="econsentForm.consentDate"></div>
</div>
</div> |
The ‘os-date-picker’ sets the value to the current date and the time picker allows the display of the current timestamp. 2. Add consent statement with the default value set and hidden on the overview page Code Block |
---|
<div consent-question="C0003">
<input type="hidden" ng-model="ectx.statements.C0003" ng-init="ectx.statements.C0003 = ectx.statements.C0003 || 'Y'">
</div> |
3. Add custom field radio button "I Agree/I do not agree" Code Block |
---|
<div class="clearfix" style="padding: 8px 8px 0px;#if(true)display: none;#end">
<div style="display: block; margin-bottom: 10px;">
<span>
<div user-input field="ectx.customFields.iAgree">
<input type="radio" name="iAgree" value="Yes" ng-model="ectx.customFields.iAgree"
ng-required="(ectx.statements.C0003=='N' || ectx.statements.C0003==null)">
<span>
<strong>I agree</strong> that you may contact me if there are results from the genetic research that may be relevant to my health.
</span>
</div>
</span>
</div>
<div style="display: block;">
<span>
<div user-input field="ectx.customFields.iAgree">
<input type="radio" name="iAgree" value="No" ng-model="ectx.customFields.iAgree"
ng-required="(ectx.statements.C0003=='N' || ectx.statements.C0003==null)">
<span>
<strong>I do not agree</strong> that you may contact me if there are results from the genetic research that may be relevant to my health.
</span>
</div>
</span>
</div>
<div os-field-error field="econsentForm.iAgree"></div>
</div> |
4. Add custom field text-box Code Block |
---|
<div>
<label class="control-label">
<span>Print Name of Biobank Participant</span>
</label>
</div>
<div style="width: 70%; float: left">
<div user-input field="ectx.customFields.participantName">
<div>
<textarea class="form-control" name="participantName" ng-model="ectx.customFields.participantName" rows="1" required></textarea>
</div>
</div>
<div os-field-error field="econsentForm.participantName"> </div>
</div> |
5. Add signature field Code Block |
---|
<div style="width: 70%; float: left">
<div>
<label class="control-label">
<span>
<strong>Signature of Biobank Participant</strong>
</span>
</label>
</div>
<div user-input field="ectx.customFields.signature" type="signature">
<ec-signature name="signature" image="ectx.customFields.signature" ng-required="(ectx.customFields.signatureAuthRep==null && (ectx.statements.C0003=='N' || ectx.statements.C0003==null))">
</ec-signature>
</div>
<div os-field-error field="econsentForm.signature"> </div>
</div> |
6. Add date as a custom field with default current date and non-editable Code Block |
---|
<div style="float: left; clear: left;">
<label style="float: left; clear: left;">
<strong>Today's Date</strong>
</label>
</div>
<div class="clearfix">
<div style="width: 45%; float: left; clear: left;">
<div class="col-xs-8 os-no-left-padding">
<div user-input field="ectx.customFields.consentDate" type="date-time">
<os-date-picker name="consentDate" date="ectx.customFields.consentDate" default-current-date ng-disabled="1 != 0"></os-date-picker>
</div>
</div>
<div class="col-xs-4 os-no-left-padding">
<timepicker class="os-time-no-wheels" ng-model="ectx.customFields.consentDate" show-meridian="false" readonly-input="true"></timepicker>
</div>
<div os-field-error field="econsentForm.consentDate"></div>
</div>
</div> |
7. Add number custom field Code Block |
---|
| <div style="margin-bottom: 20px;">
<label style="display: block;">Height (centimetres)</label>
<div style="width: 250px;" user-input field="ectx.customFields.height_centimetres">
<input style="padding: 8px; border: 1px solid #ddd; border-radius: 4px; width: 100%" name="height_centimetres" ng-model="ectx.customFields.height_centimetres" required
ng-pattern="/^[1-9][0-9]*$/">
<div os-field-error field="econsentForm.height_centimetres"> </div>
</div>
</div> |
8. Add OpenSpecimen PV-dropdown as a custom field site dropdown Code Block |
---|
| <div style="margin-bottom: 20px;">
<label style="display: block;">Collection Center</label>
<div user-input field="ectx.customFields.preferred_collection_site" type="user">
<div style="display: inline-block; margin-right: 20px;">
<os-sites name="preferred_collection_site" ng-model="ectx.customFields.preferred_collection_site" ></os-sites>
</div>
<div os-field-error field="econsentForm.preferred_collection_site"> </div>
</div>
</div> |
9. Add custom field dropdown value with options Code Block |
---|
| <div style="margin-bottom: 20px;">
<label style="display: block;">Visit Center</label>
<div user-input field="ectx.customFields.visit_center">
<div style="display: inline-block; margin-right: 20px;">
<ec-select ng-model="ectx.customFields.visit_center" required>
<custom-field>consent_custom_fields.visit_center</custom-field>
</ec-select>
</div>
<div os-field-error field="econsentForm.visit_center"> </div>
</div>
</div> |
10. Add print break in the consent document PDF: <ec-print-page-break></ec-print-page-break> is used to add the print break in the downloaded PDF. In the below example, the 'We may contact you….' line will be printed on the next page. Code Block |
---|
| <ol>
<li>
<u>You will be asked to donate a blood sample (approximately 3 tablespoons) and urine sample.</u> If these samples are not collected today, they may be collected at a future time when you have a blood draw ordered by your doctor or a separate appointment that is convenient for you. In some cases, we may ask you for a saliva (spit) or buccal (cheek swab) sample. We may also use blood, urine, or tissue samples collected as part of your clinical care now or in the future that would otherwise be thrown away.
</li>
<li>
<u>We will request information about you and your health. We will collect your name, address and other contact information.</u> We will use your electronic health records now and, in the future, to update your health information. We will store some of your health information, including your name, contact information, and medical history, in the Columbia Biobank database. Biobank staff will make a note that you are a participant in the biobank in your electronic health record.
</li>
<ec-print-page-break></ec-print-page-break>
<li>
<u>We may contact you in the future.</u> We may ask you to complete additional questionnaires about your health or contact you to get additional information and ask if you are interested in joining other research studies. We may also contact you for another biological sample. We may ask for additional samples in order to study changes in your sample over time, or because we used up the first sample you provided. If we ask you for another sample, you may always say no.
</li>
<li>
<u>Your coded samples, health information, and the research results may be shared with the scientific research community.</u> A science and ethics committee will review each request for data access. We will not give researchers outside of Columbia University Irving Medical Center-NewYork Presbyterian your name or any other information that could directly identify you.
</li>
</ol> |
11. Show/hide field/section based on the other field selection Syntax: Needs to add the 'ng-show' tag to implement the show/hide logic Code Block |
---|
| <div ng-show="ectx.statements.C0003=='N'" >
<p> .... </p>
<label class="radio-inline">
......
</label>
</div> |
Example: When a user clicks on the “I agree to participate" option, the below section highlighted in red is enabled. Example HTML for the above example: View file |
---|
name | Participant English 11 Nov - v1.0 (1).html |
---|
|
12. Mark consent statement non-editable with default selected. Code Block |
---|
| <div class="clearfix" consent-question="M001">
<label class="control-label">
<input name="M001" type="checkbox" ng-true-value="'Y'" ng-false-value="'N'" ng-disabled="1 != 0" ng-model="ectx.statements.M001" ng-init="ectx.statements.M001 = 'Y'"> </label>
<span>I consented for cancer study</span>
</div> |
13. Default custom value with non-editableMark consent statement editable with default selected. Code Block |
---|
| <input type="radio" name="health_info_described_in" value="both" ng-model="ectx.customFields.health_info_described_in"
<div class="clearfix" consent-question="M001">
<label class="control-label">
<input name="M001" type="checkbox" ng-true-value="'Y'" ng-false-value="'N'" ng-model="ectx.statements.M001" ng-init="ectx.customFields.health_info_described_instatements.M001 = ectx.statements.M001 || 'bothY'" ng-disabled="1 != 0"> |
14. Make field mandatory based on other field value Eg:1 - Make Guardian name custom field mandatory for Male patients.>
<span>I consented for cancer study</span>
</div> |
14. Default custom value with non-editable Code Block |
---|
| <div><input <textarea class="form-controltype="radio" name="health_info_described_in" value="both" ng-model="ectx.customFields.parentGuardianNamehealth_info_described_in" rows="1"
ng-requiredinit="cprectx.participant.gendercustomFields.health_info_described_in == 'Maleboth'"> </textarea>
</div>
ng-disabled="1 != 0"> |
15. Make field mandatory based on other field value Eg:2 1 - Make Guardian name custom field mandatory when site='Stanford Hospital 'for Male patients. Code Block |
---|
| <div>
<textarea class="form-control" ng-model="ectx.customFields.parentGuardianName" rows="1" ng-required="cpr.participant.registrationSitegender == 'Stanford HospitalMale''"> </textarea>
</div>
|
Eg:3 2 - Make Participant Signature(signature ) mandatory if Guardian signature(signatureAuthRep ) is not entered Guardian name custom field mandatory when site='Stanford Hospital ' Code Block |
---|
| <div>
<ec-signature name="signature" image="ectx.customFields.signature" ng-required="ectx.customFields.signatureAuthRep==null"></ec-signature>
</div>
|
15. Add File Type Control Code Block |
---|
|