Additional Data Entry Modes (RDE/SDE)

Rapid Data Entry (RDE)

Introduction

The RDE plugin is designed for clinical study based collections where the type of specimens and collection schedule is well defined. It is dependent on well-defined label formats for participants, visits and specimens, which can be preprinted either from OpenSpecimen or generated outside.

The RDE plugin allows you to do the following:

  1. Specimen collection based on barcode scanning
  2. Process multiple participants in one-go
  3. Process aliquots in bulk

It is meant for high-throughput clinical studies or trials where 5-10 patients visit the clinic every day.

Workflow Configuration

The typical workflow of clinical studies is: A participant visits a clinic where the primary specimens are collected (e.g. whole blood, tissue, urine, etc.) based on the event time point (e.g. day 0 - screening, day 30 - pre-op, etc.). These primary specimens are then sent to the lab for further processing like DNA, RNA, and/or aliquoting. 

RDE can be configured to mimic this workflow. Once RDE is configured, the 'Rapid Collection' button is visible on the CP's 'View Participants' list page.

Steps to register the multiple participants in one go along with specimens

 Click here to expand...

Step 1: Register participants

Data fields required for this step is configurable. Multiple participants can be registered at once. Existing participants can be entered in this step to add specimens for follow-up visits.

Step 2: Select visit under which the specimens needs to be accessioned

The visit selected can be different per participant. If existing participants are entered in the first step, the matching participants are populated in this step.

Step 3: Enter details about primary samples collected

Based on the protocol definition, the primary samples to be collected is shown for each participant and visit. You can select the ones that are collected and mark the ones that are missed.

Step 4 (Option 1): Scan aliquots in the box view- this is useful if a box scanner is used and the order of scanning the aliquots is fixed

Different box layouts can be defined per type, CP, etc. The order of scanning the aliquots is determined by order of requirements defined in the CP. If some samples are not processed as per CP, those slots can be left empty. 

Example JSON

URLhttp://<host>:<port>/openspecimen/rest/ng/collection-protocols/{id}/workflows
MethodPUT
Requestapplication/json
Example json
Example Code
[{
		"name": "dictionary",
		"data": {
			"fields": [{
				"name": "cpr.ppid",
				"caption": "Registration ID",
				"type": "text",
				"optional": true,
				"showIf": {
					"op": "OR",
					"rules": [{
						"field": "cp.ppidFmt",
						"op": "not_exist"
					}, {
						"field": "cp.manualPpidEnabled",
						"op": "exists"
					}]
				}
			},{
        "name": "cpr.registrationDate",
        "caption": "Enrollment Date",
        "type": "date",
        "optional": false,
        "defaultValue": "current_date"
      },{
					"name": "cpr.participant.empi",
					"caption": "Master Patient ID",
					"type": "text",
					"optional": true,
					"showIf": {
						"rules": [{
						"field": "mpiFmt",
						"op": "not_exist"
					}]
				}
				},{
					"name": "cpr.participant.gender",
					"caption": "Gender",
					"type": "pvs",
					"attr": "gender",
					"optional": true,
					"options": [{
							"value": "Male",
							"conceptCode": "M"
						},
						{
							"value": "Female",
							"conceptCode": "F"
						}
					]
				},
				{
         "name": "cpr.participant.ethnicities",
          "caption": "Ethnicity",
          "type": "pvs",
          "attr": "ethnicity",
          "multiple": true,
          "optional": true
        },{
         "name": "cpr.participant.races",
          "caption": "Race",
          "type": "pvs",
          "attr": "race",
          "multiple": true,
          "optional": true
        },
        {
          "name": "cpr.participant.extensionDetail.attrsMap.NT2",
          "caption": "Age",
          "type": "text",
          "pattern": "/^[1-9][0-9]*$/",
          "optional": "true"
        },
				{
					"name": "visit.eventLabel",
					"caption": "Event Label",
					"type": "dropdown",
					"multiple": false,
					"defaultValue": "Week Two",
					"listSource": {
						"apiUrl": "collection-protocol-events",
						"displayProp": "eventLabel",
						"selectProp": "eventLabel",
						"queryParams": {
							"dynamic": {
								"cpId": "visit.cpId"
							},
							"static": {}
						}
					}
				},
				{
					"name": "visit.site",
					"caption": "Visit Site",
					"type": "dropdown",
					"multiple": false,
					"optional": false,
					"listSource": {
						"apiUrl": "sites",
						"displayProp": "name",
						"selectProp": "name",
						"queryParams": {
							"dynamic": {},
							"static": {
								"listAll": true
							}
						}
					}
				},
				{
					"name": "visit.visitDate",
					"caption": "Visit Date",
					"type": "datetime",
					"defaultValue": "current_date",
					"optional": false
				},
				{
					"name": "visit.clinicalDiagnoses",
					"caption": "Clinical Diagnoses",
					"type": "pvs",
					"attr": "clinical_diagnosis",
					"optional": true,
					"defaultValue": "Not Specified",
					"multiple": true
				},
				{
					"name": "visit.comments",
					"caption": "Comments",
					"type": "textarea",
					"optional": true
				},
				{
					"name": "specimen.lineage",
					"caption": "Lineage",
					"type": "radio",
					"optional": false,
					"defaultValue": "Derived",
					"options": [{
							"value": "New",
							"caption": "Primary"
						},
						{
							"value": "Derived",
							"caption": "Derivative"
						},
						{
							"value": "Aliquot",
							"caption": "Aliquots"
						}
					]
				},
				{
					"name": "specimen.label",
					"caption": "Sample ID",
					"type": "text",
					"optional": false,
					"showIf": {
						"op": "AND",
						"rules": [{
							"field": "specimen.lineage",
							"op": "!=",
							"value": "'Aliquot'"
						}]
					}
				},
				{
					"name": "specimen.barcode",
					"caption": "Tube Barcode",
					"type": "text",
					"optional": true
				},
				{
					"name": "specimen.parentLabel",
					"caption": "Parent Sample ID",
					"type": "text",
					"optional": false,
					"url": "specimen({specimenId: specimen.parentId})",
					"showIf": {
						"op": "AND",
						"rules": [{
							"field": "specimen.lineage",
							"op": "!=",
							"value": "'New'"
						}]
					},
					"modelOpts": {
						"updateOn": "blur"
					}
				},
				{
					"name": "specimen.createdOn",
					"caption": "Created On",
					"type": "datetime",
					"optional": false,
					"defaultValue": "current_date"
				},
				{
					"name": "specimen.type",
					"caption": "Type",
					"type": "specimen-type",
					"specimen": "specimen",
					"optional": false,
					"showIf": {
						"op": "AND",
						"rules": [{
							"field": "specimen.lineage",
							"op": "!=",
							"value": "'Aliquot'"
						}]
					}
				},
				{
					"name": "specimen.initialQty",
					"caption": "Initial Quantity",
					"type": "specimen-quantity",
					"specimen": "specimen",
					"optional": false,
					"defaultValue": 10
				},
				{
					"name": "specimen.availableQty",
					"caption": "Available Quantity",
					"type": "specimen-quantity",
					"specimen": "specimen",
					"optional": false,
					"defaultValue": 10
				},
				{
					"name": "events.SpecimenFrozenEvent.time",
					"caption": "Frozen Time",
					"type": "date",
					"optional": false,
					"defaultValue": "current_date"
				},
				{
					"name": "events.SpecimenFrozenEvent.user",
					"caption": "Frozen By",
					"type": "user",
					"defaultValue": "current_user",
					"optional": false
				},
				{
					"name": "events.SpecimenFrozenEvent.frozenMethod",
					"caption": "Frozen Method",
					"type": "dropdown",
					"optional": false,
					"listSource": {
						"apiUrl": "forms/permissible-values",
						"selectProp": "value",
						"displayProp": "value",
						"queryParams": {
							"dynamic": {},
							"static": {
								"formName": "SpecimenFrozenEvent",
								"controlName": "frozenMethod"
							}
						}
					},
					"defaultValue": "Liquid Nitrogen"
				},
				{
					"name": "specimen.storageLocation",
					"caption": "Location",
					"type": "storage-position",
					"optional": true,
					"cpId": "specimen.cpId",
					"entity": "specimen",
					"url": "container-detail.locations({containerId: specimen.storageLocation.id})",
					"subFields": [{
							"name": "name",
							"caption": "Container Name"
						},
						{
							"name": "positionY",
							"caption": "Container Row"
						},
						{
							"name": "positionX",
							"caption": "Container Column"
						}
					]
				},
				{
					"name": "specimen.pathology",
					"caption": "Pathological Status",
					"type": "pvs",
					"attr": "pathology_status",
					"optional": true,
					"showIf": {
						"op": "AND",
						"rules": [{
							"field": "specimen.lineage",
							"op": "!=",
							"value": "'Aliquot'"
						}]
					}
				},
				{
					"name": "specimen.biohazards",
					"caption": "Biohazards",
					"type": "pvs",
					"attr": "specimen-biohazard",
					"optional": true,
					"multiple": true,
					"defaultValue": "[\"A\", \"Z\"]",
					"showIf": {
						"op": "AND",
						"rules": [{
							"field": "specimen.lineage",
							"op": "!=",
							"value": "'Aliquot'"
						}]
					}
				},
				{
					"name": "specimen.collectionEvent.user",
					"caption": "Collection User",
					"type": "user",
					"defaultValue": "current_user",
					"showIf": {
						"op": "AND",
						"rules": [{
							"field": "specimen.lineage",
							"op": "==",
							"value": "'New'"
						}]
					},
					"subFields": [{
						"name": "emailAddress",
						"caption": "Collector Email Address"
					}]
				},
				{
					"name": "specimen.collectionEvent.container",
					"caption": "Collection Container",
					"type": "pvs",
					"attr": "collection-container",
					"optional": true,
					"defaultValue": "Not Specified",
					"showIf": {
						"op": "AND",
						"rules": [{
							"field": "specimen.lineage",
							"op": "==",
							"value": "'New'"
						}]
					}
				},
				{
					"name": "specimen.collectionEvent.procedure",
					"caption": "Collection Procedure",
					"type": "pvs",
					"attr": "collection-procedure",
					"defaultValue": "Not Specified",
					"optional": true,
					"showIf": {
						"op": "AND",
						"rules": [{
							"field": "specimen.lineage",
							"op": "==",
							"value": "'New'"
						}]
					}
				},{
				  "name": "specimen.receivedEvent.user",
				  "caption": "Processing User",
				  "type": "user",
				  "defaultValue": "current_user",
				  "showIf": {
				    "op": "AND",
				    "rules": [{
				      "field": "specimen.lineage",
				      "op": "==",
				      "value": "'New'"
				    }]
				  },
				  "subFields": [{
				    "name": "emailAddress",
				    "caption": "Processor Email Address"
				  }]
				},
				{
					"name": "specimen.receivedEvent.receivedQuality",
					"caption": "Processing Quality",
					"type": "pvs",
					"attr": "received-quality",
					"defaultValue": "Acceptable",
					"optional": true,
					"showIf": {
						"op": "AND",
						"rules": [{
							"field": "specimen.lineage",
							"op": "==",
							"value": "'New'"
						}]
					}
				},
				{
					"name": "specimen.events.SpecimenTissueReviewEvent.lymphocyticPct",
					"caption": "Lymphocytic Percentage",
					"type": "text",
					"optional": true,
					"showIf": {
						"op": "AND",
						"rules": [{
							"field": "specimen.specimenClass",
							"op": "==",
							"value": "'Tissue'"
						}]
					}
				},
				{
					"name": "specimen.events.SpecimenTissueReviewEvent.necrosisPct",
					"caption": "Necrosis Percentage",
					"type": "text",
					"optional": true,
					"showIf": {
						"op": "AND",
						"rules": [{
							"field": "specimen.specimenClass",
							"op": "==",
							"value": "'Tissue'"
						}]
					}
				},
				{
					"name": "specimen.events.SpecimenTissueReviewEvent.totalCellularityPct",
					"caption": "Total Cellularity Percentage",
					"type": "text",
					"optional": true,
					"showIf": {
						"op": "AND",
						"rules": [{
							"field": "specimen.specimenClass",
							"op": "==",
							"value": "'Tissue'"
						}]
					}
				},
				{
					"name": "specimen.events.SpecimenCellReviewEvent.viableCellPct",
					"caption": "Viable Cell Percentage",
					"type": "text",
					"optional": true,
					"showIf": {
						"op": "AND",
						"rules": [{
							"field": "specimen.specimenClass",
							"op": "==",
							"value": "'Cell'"
						}]
					}
				},
				{
					"name": "specimen.events.SpecimenFluidEvent.cellCount",
					"caption": "Cell Count",
					"type": "text",
					"optional": true,
					"showIf": {
						"op": "AND",
						"rules": [{
							"field": "specimen.specimenClass",
							"op": "==",
							"value": "'Fluid'"
						}]
					}
				},
				{
					"name": "specimen.events.SpecimenMolecularReviewEvent.absorbanceAt260",
					"caption": "Absorbance at 260",
					"type": "text",
					"optional": true,
					"showIf": {
						"op": "AND",
						"rules": [{
							"field": "specimen.specimenClass",
							"op": "==",
							"value": "'Molecular'"
						}]
					}
				},
				{
					"name": "specimen.events.SpecimenMolecularReviewEvent.absorbanceAt280",
					"caption": "Absorbance at 280",
					"type": "text",
					"optional": true,
					"showIf": {
						"op": "AND",
						"rules": [{
							"field": "specimen.specimenClass",
							"op": "==",
							"value": "'Molecular'"
						}]
					}
				}
			]
		}
	},
	{
		"name": "rde",
		"data": {
			"regFields": [{
				"name": "cpr.ppid",
				"baseField": "cpr.ppid"
			},{
					"name": "cpr.registrationDate",
					"baseField": "cpr.registrationDate"
				},
        {
					"name": "cpr.participant.empi",
					"baseField": "cpr.participant.empi"
				},
        {
					"name": "cpr.participant.gender",
					"baseField": "cpr.participant.gender"
				},
				{
					"name": "cpr.participant.ethnicities",
					"baseField": "cpr.participant.ethnicities"
				},
        {
					"name": "cpr.participant.races",
					"baseField": "cpr.participant.races"
				},{
					"name": "cpr.participant.extensionDetail.attrsMap.NT2",
					"baseField": "cpr.participant.extensionDetail.attrsMap.NT2"
				}
			],
			"visitFields": [
				[{
						"name": "visit.site",
						"baseField": "visit.site"
					},

					{
						"name": "visit.visitDate",
						"baseField": "visit.visitDate"
					}
				],
				[{
					"name": "visit.clinicalDiagnoses",
					"baseField": "visit.clinicalDiagnoses"
				},
				{
					"name": "visit.comments",
					"baseField": "visit.comments",
					"width": "100%"
				}]
			],
			"specimenFields": [
				
				{
					"title": "Serum Aliquots",
					"criteria": {
						"op": "AND",
						"rules": [{
								"field": "specimen.lineage",
								"op": "==",
								"value": "'Aliquot'"
							},
							{
								"field": "specimen.type",
								"op": "==",
								"value": "'Serum'"
							}
						]
					},
					"fields": [{
							"name": "specimen.label",
							"baseField": "specimen.label",
							"type": "span"
						},
						{
							"name": "specimen.barcode",
							"baseField": "specimen.barcode",
							"type": "span"
						},
						{
							"name": "specimen.parentLabel",
							"baseField": "specimen.parentLabel",
							"type": "span"
						},
						{
							"name": "specimen.createdOn",
							"baseField": "specimen.createdOn"
						},{
							"name": "specimen.storageLocation",
							"baseField": "specimen.storageLocation"
						}
					]
				},
				{
					"title": "Plasma Aliquots",
					"criteria": {
						"op": "AND",
						"rules": [{
								"field": "specimen.lineage",
								"op": "==",
								"value": "'Aliquot'"
							},
							{
								"field": "specimen.type",
								"op": "==",
								"value": "'Plasma'"
							}
						]
					},
					"fields": [{
							"name": "specimen.label",
							"baseField": "specimen.label",
							"type": "span"
						},
						{
							"name": "specimen.barcode",
							"baseField": "specimen.barcode",
							"type": "span"
						},
						{
							"name": "specimen.parentLabel",
							"baseField": "specimen.parentLabel",
							"type": "span"
						},
						{
							"name": "specimen.createdOn",
							"baseField": "specimen.createdOn"
						},{
							"name": "specimen.storageLocation",
							"baseField": "specimen.storageLocation"
						}
					]
				},
				{
					"title": "Urine Aliquots",
					"criteria": {
						"op": "AND",
						"rules": [{
								"field": "specimen.lineage",
								"op": "==",
								"value": "'Aliquot'"
							},
							{
								"field": "specimen.type",
								"op": "==",
								"value": "'Urine'"
							}
						]
					},
					"fields": [{
							"name": "specimen.label",
							"baseField": "specimen.label",
							"type": "span"
						},
						{
							"name": "specimen.barcode",
							"baseField": "specimen.barcode",
							"type": "span"
						},
						{
							"name": "specimen.parentLabel",
							"baseField": "specimen.parentLabel",
							"type": "span"
						},
						{
							"name": "specimen.createdOn",
							"baseField": "specimen.createdOn"
						},{
							"name": "specimen.storageLocation",
							"baseField": "specimen.storageLocation"
						}
					]
				}
			],
			"showPrintLabels": false,
			"missedReasonReq": false,
			"boxScanning": true,
			"boxLayouts": [
				{
					"rows": 8,
					"columns": 12,
					"newRowOnChange": ["ppid", "type"],
					"cellWidth": "200px",
					"criteria": {
						"op": "OR",
						"rules": [
							{
								"field": "specimen.type",
								"op": "==",
								"value": "'Plasma'"
							},
							{
								"field": "specimen.type",
								"op": "==",
								"value": "'Serum'"
							}
						]
					}
				},{
					"rows": 8,
					"columns": 6,
					"newRowOnChange": ["ppid", "type"],
					"cellWidth": "200px",
					"criteria": {
						"op": "AND",
						"rules": [
							{
								"field": "specimen.type",
								"op": "==",
								"value": "'Urine'"
							}
						]
					}
				}
			],
			"emailNotifs": {}
		}
	},{
			"name": "participant-list-view",
			"data": {
					"columns": [
							{
									"expr": "Participant.ppid",
									"caption": "Participant Protocol ID",
									"metainfo": {
											"showLink": "true"
									}
							},
							{
									"expr": "Participant.empi",
									"caption": "Master Patient Index"
							},
							{
									"expr": "Participant.regDate",
									"caption": "Registration Date"
							}
					],
					"criteria": "Participant.id exists",
					"orderBy": [
							{
									"expr": "Participant.regDate",
									"direction": "desc"
							}
					],
					"filters": [
							{
									"expr": "Participant.ppid",
									"caption": "Participant Protocol ID",
									"searchType": "contains"
							},
							{
									"expr": "Participant.empi",
									"caption": "Master Patient Index",
									"searchType": "contains",
									"metainfo": {
											"phi": "true"
									}
							},
							{
									"expr": "Participant.regDate",
									"caption": "Registration Date"
							}
					]
			}
	}
]

Step 4 (Option 2): Processing aliquots: Scan aliquots directly in actual container boxes

The system will show a list of available storage boxes. You can select specific boxes and scan labels or barcodes. This will mark the aliquots as collected and store them in specific boxes.

For this option to work, the CP should have pre-defined label formats and pre-print options checked so that the labels are auto-generated for pending aliquots.

Example JSON

Example json
Example Code
[{
		"name": "dictionary",
		"data": {
			"fields": [{
				"name": "cpr.ppid",
				"caption": "Registration ID",
				"type": "text",
				"optional": true,
				"showIf": {
					"op": "OR",
					"rules": [{
						"field": "cp.ppidFmt",
						"op": "not_exist"
					}, {
						"field": "cp.manualPpidEnabled",
						"op": "exists"
					}]
				}
			},{
        "name": "cpr.registrationDate",
        "caption": "Enrollment Date",
        "type": "date",
        "optional": false,
        "defaultValue": "current_date"
      },{
					"name": "cpr.participant.empi",
					"caption": "Master Patient ID",
					"type": "text",
					"optional": true,
					"showIf": {
						"rules": [{
						"field": "mpiFmt",
						"op": "not_exist"
					}]
				}
				},{
					"name": "cpr.participant.gender",
					"caption": "Gender",
					"type": "pvs",
					"attr": "gender",
					"optional": true,
					"options": [{
							"value": "Male",
							"conceptCode": "M"
						},
						{
							"value": "Female",
							"conceptCode": "F"
						}
					]
				},
				{
         "name": "cpr.participant.ethnicities",
          "caption": "Ethnicity",
          "type": "pvs",
          "attr": "ethnicity",
          "multiple": true,
          "optional": true
        },{
         "name": "cpr.participant.races",
          "caption": "Race",
          "type": "pvs",
          "attr": "race",
          "multiple": true,
          "optional": true
        },
        {
          "name": "cpr.participant.extensionDetail.attrsMap.NT2",
          "caption": "Age",
          "type": "text",
          "pattern": "/^[1-9][0-9]*$/",
          "optional": "true"
        },
				{
					"name": "visit.eventLabel",
					"caption": "Event Label",
					"type": "dropdown",
					"multiple": false,
					"defaultValue": "Week Two",
					"listSource": {
						"apiUrl": "collection-protocol-events",
						"displayProp": "eventLabel",
						"selectProp": "eventLabel",
						"queryParams": {
							"dynamic": {
								"cpId": "visit.cpId"
							},
							"static": {}
						}
					}
				},
				{
					"name": "visit.site",
					"caption": "Visit Site",
					"type": "dropdown",
					"multiple": false,
					"optional": false,
					"listSource": {
						"apiUrl": "sites",
						"displayProp": "name",
						"selectProp": "name",
						"queryParams": {
							"dynamic": {},
							"static": {
								"listAll": true
							}
						}
					}
				},
				{
					"name": "visit.visitDate",
					"caption": "Visit Date",
					"type": "datetime",
					"defaultValue": "current_date",
					"optional": false
				},
				{
					"name": "visit.clinicalDiagnoses",
					"caption": "Clinical Diagnoses",
					"type": "pvs",
					"attr": "clinical_diagnosis",
					"optional": true,
					"defaultValue": "Not Specified",
					"multiple": true
				},
				{
					"name": "visit.comments",
					"caption": "Comments",
					"type": "textarea",
					"optional": true
				},
				{
					"name": "specimen.lineage",
					"caption": "Lineage",
					"type": "radio",
					"optional": false,
					"defaultValue": "Derived",
					"options": [{
							"value": "New",
							"caption": "Primary"
						},
						{
							"value": "Derived",
							"caption": "Derivative"
						},
						{
							"value": "Aliquot",
							"caption": "Aliquots"
						}
					]
				},
				{
					"name": "specimen.label",
					"caption": "Sample ID",
					"type": "text",
					"optional": false,
					"showIf": {
						"op": "AND",
						"rules": [{
							"field": "specimen.lineage",
							"op": "!=",
							"value": "'Aliquot'"
						}]
					}
				},
				{
					"name": "specimen.barcode",
					"caption": "Tube Barcode",
					"type": "text",
					"optional": true
				},
				{
					"name": "specimen.parentLabel",
					"caption": "Parent Sample ID",
					"type": "text",
					"optional": false,
					"url": "specimen({specimenId: specimen.parentId})",
					"showIf": {
						"op": "AND",
						"rules": [{
							"field": "specimen.lineage",
							"op": "!=",
							"value": "'New'"
						}]
					},
					"modelOpts": {
						"updateOn": "blur"
					}
				},
				{
					"name": "specimen.createdOn",
					"caption": "Created On",
					"type": "datetime",
					"optional": false,
					"defaultValue": "current_date"
				},
				{
					"name": "specimen.type",
					"caption": "Type",
					"type": "specimen-type",
					"specimen": "specimen",
					"optional": false,
					"showIf": {
						"op": "AND",
						"rules": [{
							"field": "specimen.lineage",
							"op": "!=",
							"value": "'Aliquot'"
						}]
					}
				},
				{
					"name": "specimen.initialQty",
					"caption": "Initial Quantity",
					"type": "specimen-quantity",
					"specimen": "specimen",
					"optional": false,
					"defaultValue": 10
				},
				{
					"name": "specimen.availableQty",
					"caption": "Available Quantity",
					"type": "specimen-quantity",
					"specimen": "specimen",
					"optional": false,
					"defaultValue": 10
				},
				{
					"name": "events.SpecimenFrozenEvent.time",
					"caption": "Frozen Time",
					"type": "date",
					"optional": false,
					"defaultValue": "current_date"
				},
				{
					"name": "events.SpecimenFrozenEvent.user",
					"caption": "Frozen By",
					"type": "user",
					"defaultValue": "current_user",
					"optional": false
				},
				{
					"name": "events.SpecimenFrozenEvent.frozenMethod",
					"caption": "Frozen Method",
					"type": "dropdown",
					"optional": false,
					"listSource": {
						"apiUrl": "forms/permissible-values",
						"selectProp": "value",
						"displayProp": "value",
						"queryParams": {
							"dynamic": {},
							"static": {
								"formName": "SpecimenFrozenEvent",
								"controlName": "frozenMethod"
							}
						}
					},
					"defaultValue": "Liquid Nitrogen"
				},
				{
					"name": "specimen.storageLocation",
					"caption": "Location",
					"type": "storage-position",
					"optional": true,
					"cpId": "specimen.cpId",
					"entity": "specimen",
					"url": "container-detail.locations({containerId: specimen.storageLocation.id})",
					"subFields": [{
							"name": "name",
							"caption": "Container Name"
						},
						{
							"name": "positionY",
							"caption": "Container Row"
						},
						{
							"name": "positionX",
							"caption": "Container Column"
						}
					]
				},
				{
					"name": "specimen.pathology",
					"caption": "Pathological Status",
					"type": "pvs",
					"attr": "pathology_status",
					"optional": true,
					"showIf": {
						"op": "AND",
						"rules": [{
							"field": "specimen.lineage",
							"op": "!=",
							"value": "'Aliquot'"
						}]
					}
				},
				{
					"name": "specimen.biohazards",
					"caption": "Biohazards",
					"type": "pvs",
					"attr": "specimen-biohazard",
					"optional": true,
					"multiple": true,
					"defaultValue": "[\"A\", \"Z\"]",
					"showIf": {
						"op": "AND",
						"rules": [{
							"field": "specimen.lineage",
							"op": "!=",
							"value": "'Aliquot'"
						}]
					}
				},
				{
					"name": "specimen.collectionEvent.user",
					"caption": "Collection User",
					"type": "user",
					"defaultValue": "current_user",
					"showIf": {
						"op": "AND",
						"rules": [{
							"field": "specimen.lineage",
							"op": "==",
							"value": "'New'"
						}]
					},
					"subFields": [{
						"name": "emailAddress",
						"caption": "Collector Email Address"
					}]
				},
				{
					"name": "specimen.collectionEvent.container",
					"caption": "Collection Container",
					"type": "pvs",
					"attr": "collection-container",
					"optional": true,
					"defaultValue": "Not Specified",
					"showIf": {
						"op": "AND",
						"rules": [{
							"field": "specimen.lineage",
							"op": "==",
							"value": "'New'"
						}]
					}
				},
				{
					"name": "specimen.collectionEvent.procedure",
					"caption": "Collection Procedure",
					"type": "pvs",
					"attr": "collection-procedure",
					"defaultValue": "Not Specified",
					"optional": true,
					"showIf": {
						"op": "AND",
						"rules": [{
							"field": "specimen.lineage",
							"op": "==",
							"value": "'New'"
						}]
					}
				},{
				  "name": "specimen.receivedEvent.user",
				  "caption": "Processing User",
				  "type": "user",
				  "defaultValue": "current_user",
				  "showIf": {
				    "op": "AND",
				    "rules": [{
				      "field": "specimen.lineage",
				      "op": "==",
				      "value": "'New'"
				    }]
				  },
				  "subFields": [{
				    "name": "emailAddress",
				    "caption": "Processor Email Address"
				  }]
				},
				{
					"name": "specimen.receivedEvent.receivedQuality",
					"caption": "Processing Quality",
					"type": "pvs",
					"attr": "received-quality",
					"defaultValue": "Acceptable",
					"optional": true,
					"showIf": {
						"op": "AND",
						"rules": [{
							"field": "specimen.lineage",
							"op": "==",
							"value": "'New'"
						}]
					}
				},
				{
					"name": "specimen.events.SpecimenTissueReviewEvent.lymphocyticPct",
					"caption": "Lymphocytic Percentage",
					"type": "text",
					"optional": true,
					"showIf": {
						"op": "AND",
						"rules": [{
							"field": "specimen.specimenClass",
							"op": "==",
							"value": "'Tissue'"
						}]
					}
				},
				{
					"name": "specimen.events.SpecimenTissueReviewEvent.necrosisPct",
					"caption": "Necrosis Percentage",
					"type": "text",
					"optional": true,
					"showIf": {
						"op": "AND",
						"rules": [{
							"field": "specimen.specimenClass",
							"op": "==",
							"value": "'Tissue'"
						}]
					}
				},
				{
					"name": "specimen.events.SpecimenTissueReviewEvent.totalCellularityPct",
					"caption": "Total Cellularity Percentage",
					"type": "text",
					"optional": true,
					"showIf": {
						"op": "AND",
						"rules": [{
							"field": "specimen.specimenClass",
							"op": "==",
							"value": "'Tissue'"
						}]
					}
				},
				{
					"name": "specimen.events.SpecimenCellReviewEvent.viableCellPct",
					"caption": "Viable Cell Percentage",
					"type": "text",
					"optional": true,
					"showIf": {
						"op": "AND",
						"rules": [{
							"field": "specimen.specimenClass",
							"op": "==",
							"value": "'Cell'"
						}]
					}
				},
				{
					"name": "specimen.events.SpecimenFluidEvent.cellCount",
					"caption": "Cell Count",
					"type": "text",
					"optional": true,
					"showIf": {
						"op": "AND",
						"rules": [{
							"field": "specimen.specimenClass",
							"op": "==",
							"value": "'Fluid'"
						}]
					}
				},
				{
					"name": "specimen.events.SpecimenMolecularReviewEvent.absorbanceAt260",
					"caption": "Absorbance at 260",
					"type": "text",
					"optional": true,
					"showIf": {
						"op": "AND",
						"rules": [{
							"field": "specimen.specimenClass",
							"op": "==",
							"value": "'Molecular'"
						}]
					}
				},
				{
					"name": "specimen.events.SpecimenMolecularReviewEvent.absorbanceAt280",
					"caption": "Absorbance at 280",
					"type": "text",
					"optional": true,
					"showIf": {
						"op": "AND",
						"rules": [{
							"field": "specimen.specimenClass",
							"op": "==",
							"value": "'Molecular'"
						}]
					}
				}
			]
		}
	},
	{
		"name": "rde",
		"data": {
			"regFields": [{
				"name": "cpr.ppid",
				"baseField": "cpr.ppid"
			},{
					"name": "cpr.registrationDate",
					"baseField": "cpr.registrationDate"
				},
        {
					"name": "cpr.participant.empi",
					"baseField": "cpr.participant.empi"
				},
        {
					"name": "cpr.participant.gender",
					"baseField": "cpr.participant.gender"
				},
				{
					"name": "cpr.participant.ethnicities",
					"baseField": "cpr.participant.ethnicities"
				},
        {
					"name": "cpr.participant.races",
					"baseField": "cpr.participant.races"
				},{
					"name": "cpr.participant.extensionDetail.attrsMap.NT2",
					"baseField": "cpr.participant.extensionDetail.attrsMap.NT2"
				}
			],
			"visitFields": [
				[{
						"name": "visit.site",
						"baseField": "visit.site"
					},

					{
						"name": "visit.visitDate",
						"baseField": "visit.visitDate"
					}
				],
				[{
					"name": "visit.clinicalDiagnoses",
					"baseField": "visit.clinicalDiagnoses"
				},
				{
					"name": "visit.comments",
					"baseField": "visit.comments",
					"width": "100%"
				}]
			],
			"specimenFields": [		
				{
					"title": "Serum Aliquots",
					"criteria": {
						"op": "AND",
						"rules": [{
								"field": "specimen.lineage",
								"op": "==",
								"value": "'Aliquot'"
							},
							{
								"field": "specimen.type",
								"op": "==",
								"value": "'Serum'"
							}
						]
					},
					"fields": [{
							"name": "specimen.label",
							"baseField": "specimen.label",
							"type": "span"
						},
						{
							"name": "specimen.barcode",
							"baseField": "specimen.barcode",
							"type": "span"
						},
						{
							"name": "specimen.parentLabel",
							"baseField": "specimen.parentLabel",
							"type": "span"
						},
						{
							"name": "specimen.createdOn",
							"baseField": "specimen.createdOn"
						},{
							"name": "specimen.storageLocation",
							"baseField": "specimen.storageLocation"
						}
					]
				},
				{
					"title": "Plasma Aliquots",
					"criteria": {
						"op": "AND",
						"rules": [{
								"field": "specimen.lineage",
								"op": "==",
								"value": "'Aliquot'"
							},
							{
								"field": "specimen.type",
								"op": "==",
								"value": "'Plasma'"
							}
						]
					},
					"fields": [{
							"name": "specimen.label",
							"baseField": "specimen.label",
							"type": "span"
						},
						{
							"name": "specimen.barcode",
							"baseField": "specimen.barcode",
							"type": "span"
						},
						{
							"name": "specimen.parentLabel",
							"baseField": "specimen.parentLabel",
							"type": "span"
						},
						{
							"name": "specimen.createdOn",
							"baseField": "specimen.createdOn"
						},{
							"name": "specimen.storageLocation",
							"baseField": "specimen.storageLocation"
						}
					]
				},
				{
					"title": "Urine Aliquots",
					"criteria": {
						"op": "AND",
						"rules": [{
								"field": "specimen.lineage",
								"op": "==",
								"value": "'Aliquot'"
							},
							{
								"field": "specimen.type",
								"op": "==",
								"value": "'Urine'"
							}
						]
					},
					"fields": [{
							"name": "specimen.label",
							"baseField": "specimen.label",
							"type": "span"
						},
						{
							"name": "specimen.barcode",
							"baseField": "specimen.barcode",
							"type": "span"
						},
						{
							"name": "specimen.parentLabel",
							"baseField": "specimen.parentLabel",
							"type": "span"
						},
						{
							"name": "specimen.createdOn",
							"baseField": "specimen.createdOn"
						},{
							"name": "specimen.storageLocation",
							"baseField": "specimen.storageLocation"
						}
					]
				}
			],
			"showPrintLabels": false,
			"missedReasonReq": false,
			"boxScanning": false,
			"emailNotifs": {},
            "spmnScanning" : { }
		}
	},
{
			"name": "participant-list-view",
			"data": {
					"columns": [
							{
									"expr": "Participant.ppid",
									"caption": "Participant Protocol ID",
									"metainfo": {
											"showLink": "true"
									}
							},
							{
									"expr": "Participant.empi",
									"caption": "Master Patient Index"
							},
							{
									"expr": "Participant.regDate",
									"caption": "Registration Date"
							}
					],
					"criteria": "Participant.id exists",
					"orderBy": [
							{
									"expr": "Participant.regDate",
									"direction": "desc"
							}
					],
					"filters": [
							{
									"expr": "Participant.ppid",
									"caption": "Participant Protocol ID",
									"searchType": "contains"
							},
							{
									"expr": "Participant.empi",
									"caption": "Master Patient Index",
									"searchType": "contains",
									"metainfo": {
											"phi": "true"
									}
							},
							{
									"expr": "Participant.regDate",
									"caption": "Registration Date"
							}
					]
			}
	}
]

Step 5: Configurable to add additional details about the aliquots- any fields like frozen time, spun time etc. can be entered for all aliquots on this page

This is an optional step and can be configured to show specific fields per aliquot.


Add visit name on participant and visit registration in RDE

 Click here to expand....

Previously on the RDE visit screen, the only visit field was 'Event name'. The system used to autogenerate the visit names according to the default format or the one provided by the user. Now the visit name can be taken as user input and used as a part of the specimen labels.

Add the below-mentioned code block in the section 'regFields' of the JSON to add the visit name field on the 'Collect Visit Details' page. Refer to page Configuring RDE for details on JSON configuration.

{
  "name": "visit.name",
  "caption": "Requisition ID",
  "type": "text",
  "regVisit": true
}

The 'Collect Visit Details' page would look like the screenshot mentioned below, where the field 'Requisition ID' is the visit name

Enable standard tree-view/nth-step specimen collection within RDE (v7.1)

This feature allows you to:

  1. Show the tree-view/nth step collection page. 
  2. Collection of specimens for multiple patients one after another in a loop
  3. Data entry screens look similar to single entry mode
  4. Skip the RDE configuration: If "collectionWorkflow": "standard", it shows the standard collection page
Code snippet
...
    {
      "name": "rde",
      "data": {
        ...
        "collectionWorkflow": "standard"
        ...
      }
 }
  ...
Example JSON
[ {
  "name" : "specimenCollection",
  "view" : null,
  "ctrl" : null,
  "data" : {
    "showVisitDetails" : true,
    "showCollectionEvent" : false,
    "showReceivedEvent" : false,
    "defReceiveQuality" : "Acceptable",
    "fieldGroups" : [ {
      "title" : "Primary Specimen Details",
      "criteria" : {
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "==",
          "value" : "'New'"
        } ]
      },
      "enableCofrc" : false,
      "fields" : [ {
        "name" : "specimen.label",
        "baseField" : "specimen.label",
        "type" : "span"
      }, {
        "name" : "specimen.type",
        "baseField" : "specimen.type",
        "type" : "span"
      }, {
        "name" : "specimen.receivedEvent.receivedQuality",
        "baseField" : "specimen.receivedEvent.receivedQuality"
      }, {
        "name" : "specimen.biohazards",
        "baseField" : "specimen.biohazards"
      }, {
        "name" : "specimen.extensionDetail.attrsMap.DD5",
        "baseField" : "specimen.extensionDetail.attrsMap.DD5"
      }, {
        "name" : "specimen.collectionEvent.procedure",
        "baseField" : "specimen.collectionEvent.procedure"
      }, {
        "name" : "specimen.collectionEvent.time",
        "baseField" : "specimen.collectionEvent.time"
      }, {
        "name" : "specimen.extensionDetail.attrsMap.DD6",
        "baseField" : "specimen.extensionDetail.attrsMap.DD6"
      }, {
        "name" : "specimen.receivedEvent.time",
        "baseField" : "specimen.receivedEvent.time"
      }, {
        "name" : "specimen.extensionDetail.attrsMap.DD8",
        "baseField" : "specimen.extensionDetail.attrsMap.DD8"
      }, {
        "name" : "specimen.createdBy",
        "baseField" : "specimen.createdBy",
        "caption" : "Processed By User"
      }, {
        "name" : "specimen.createdOn",
        "baseField" : "specimen.createdOn",
        "caption" : "Processed Time"
      }, {
        "name" : "specimen.extensionDetail.attrsMap.DD9",
        "baseField" : "specimen.extensionDetail.attrsMap.DD9"
      } ]
    }, {
      "title" : "Derived: Processing details",
      "criteria" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "==",
          "value" : "'Derived'"
        } ]
      },
      "enableCofrc" : false,
      "hideTable" : true,
      "fields" : [ {
        "name" : "specimen.label",
        "baseField" : "specimen.label",
        "type" : "span"
      }, {
        "name" : "specimen.type",
        "baseField" : "specimen.type",
        "type" : "span"
      }, {
        "name" : "specimen.createdOn",
        "baseField" : "specimen.createdOn",
        "caption" : "Processed Time"
      }, {
        "name" : "specimen.extensionDetail.attrsMap.DD9",
        "baseField" : "specimen.extensionDetail.attrsMap.DD9"
      }, {
        "name" : "specimen.createdBy",
        "baseField" : "specimen.createdBy",
        "caption" : "Processed By User"
      } ]
    }, {
      "title" : "Frozen Details: Blood Samples",
      "criteria" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "==",
          "value" : "'Aliquot'"
        }, {
          "field" : "specimen.type",
          "op" : ".search('CBMC|Cord Blood, Arterial|Cord Blood, venous|Granulocytes|PBMC|Plasma, Lith Hep|Plasma, spun once, EDTA Potassium|Serum|Whole Blood|Whole blood, Clot activated|Whole Blood, EDTA|Whole Blood, FACS|Whole Blood, Lith Hep|Whole Blood, NH Trace|Whole Blood, PAX|Whole Blood, RPMI') != ",
          "value" : "-1"
        } ]
      },
      "enableCofrc" : true,
      "fields" : [ {
        "name" : "specimen.label",
        "baseField" : "specimen.label",
        "type" : "span"
      }, {
        "name" : "specimen.type",
        "baseField" : "specimen.type",
        "type" : "span"
      }, {
        "name" : "events.SpecimenFrozenEvent.time",
        "baseField" : "specimen.events.SpecimenFrozenEvent.time"
      }, {
        "name" : "events.SpecimenFrozenEvent.user",
        "baseField" : "specimen.events.SpecimenFrozenEvent.user",
        "caption" : "Frozen By"
      }, {
        "name" : "events.SpecimenFrozenEvent.comments",
        "baseField" : "specimen.events.SpecimenFrozenEvent.comments"
      }, {
        "name" : "events.SpecimenFrozenEvent.frozenMethod",
        "baseField" : "specimen.events.SpecimenFrozenEvent.frozenMethod",
        "caption" : "Frozen Method",
        "defaultValue" : "Not Specified",
        "hideColumn" : true
      } ]
    }, {
      "title" : "Frozen Details: Other Samples",
      "criteria" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "==",
          "value" : "'Aliquot'"
        }, {
          "field" : "specimen.type",
          "op" : ".search('CBMC|Cord Blood, Arterial|Cord Blood, venous|Granulocytes|PBMC|Plasma, Lith Hep|Plasma, spun once, EDTA Potassium|Serum|Whole Blood|Whole blood, Clot activated|Whole Blood, EDTA|Whole Blood, FACS|Whole Blood, Lith Hep|Whole Blood, NH Trace|Whole Blood, PAX|Whole Blood, RPMI|Placenta, MR|Placenta, MM|Placenta, MRNA|Placenta|Placenta, MB|Placenta, PVC|Placenta, PV|Placenta, PVRNA|Placenta, PD|Placenta, membrane|Placenta, biopsy') == ",
          "value" : "-1"
        } ]
      },
      "enableCofrc" : true,
      "fields" : [ {
        "name" : "specimen.label",
        "baseField" : "specimen.label",
        "type" : "span"
      }, {
        "name" : "specimen.type",
        "baseField" : "specimen.type",
        "type" : "span"
      }, {
        "name" : "events.SpecimenFrozenEvent.time",
        "baseField" : "specimen.events.SpecimenFrozenEvent.time"
      }, {
        "name" : "events.SpecimenFrozenEvent.user",
        "baseField" : "specimen.events.SpecimenFrozenEvent.user",
        "caption" : "Frozen By"
      }, {
        "name" : "events.SpecimenFrozenEvent.comments",
        "baseField" : "specimen.events.SpecimenFrozenEvent.comments"
      }, {
        "name" : "events.SpecimenFrozenEvent.frozenMethod",
        "baseField" : "specimen.events.SpecimenFrozenEvent.frozenMethod",
        "caption" : "Frozen Method",
        "defaultValue" : "Not Specified",
        "hideColumn" : true
      } ]
    }, {
      "title" : "Viability for CBMC/PBMC",
      "criteria" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "==",
          "value" : "'Aliquot'"
        }, {
          "field" : "specimen.type",
          "op" : ".search('CBMC|PBMC') != ",
          "value" : "-1"
        } ]
      },
      "enableCofrc" : true,
      "fields" : [ {
        "name" : "specimen.label",
        "baseField" : "specimen.label",
        "type" : "span"
      }, {
        "name" : "specimen.type",
        "baseField" : "specimen.type",
        "type" : "span"
      }, {
        "name" : "specimen.extensionDetail.attrsMap.NT4",
        "baseField" : "specimen.extensionDetail.attrsMap.NT4",
        "caption" : "Viability"
      } ]
    }, {
      "title" : "Aliquot: Processing details",
      "criteria" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "==",
          "value" : "'Aliquot'"
        } ]
      },
      "enableCofrc" : true,
      "hideTable" : true,
      "fields" : [ {
        "name" : "specimen.label",
        "baseField" : "specimen.label",
        "type" : "span"
      }, {
        "name" : "specimen.type",
        "baseField" : "specimen.type",
        "type" : "span"
      }, {
        "name" : "specimen.createdOn",
        "baseField" : "specimen.createdOn",
        "caption" : "Processed Time"
      }, {
        "name" : "specimen.createdBy",
        "baseField" : "specimen.createdBy",
        "caption" : "Processed By User"
      } ]
    } ]
  }
}, {
  "name" : "rde",
  "view" : null,
  "ctrl" : null,
  "data" : {
    "lookupVisit" : "true",
    "collectionWorkflow" : "standard",
    "regFields" : [ {
      "name" : "cpr.ppid",
      "baseField" : "cpr.ppid",
      "caption" : "ORIGINS Pregnancy Number"
    }, {
      "name" : "cpr.participant.birthDate",
      "baseField" : "cpr.participant.birthDate",
      "caption" : "Date Of Birth",
      "width" : "40px"
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.DD5",
      "baseField" : "cpr.participant.extensionDetail.attrsMap.DD5",
      "caption" : "Origins Study Status",
      "width" : "40px",
      "type" : "span"
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.DD15",
      "baseField" : "cpr.participant.extensionDetail.attrsMap.DD15",
      "caption" : "Mother Consent Form Level",
      "width" : "40px",
      "type" : "span"
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.MLB16",
      "baseField" : "cpr.participant.extensionDetail.attrsMap.MLB16",
      "caption" : "Is the mother part of Nested Study?",
      "width" : "40px",
      "type" : "span"
    } ],
    "visitFields" : [ [ {
      "name" : "visit.visitDate",
      "baseField" : "visit.visitDate"
    } ] ],
    "specimenFields" : [ {
      "title" : "Collection Event",
      "criteria" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "==",
          "value" : "'New'"
        } ]
      },
      "enableCofrc" : false,
      "fields" : [ {
        "name" : "specimen.label",
        "baseField" : "specimen.label",
        "type" : "span"
      }, {
        "name" : "specimen.type",
        "baseField" : "specimen.type",
        "type" : "span"
      }, {
        "name" : "specimen.initialQty",
        "baseField" : "specimen.initialQty"
      }, {
        "name" : "specimen.collectionEvent.user",
        "baseField" : "specimen.collectionEvent.user"
      }, {
        "name" : "specimen.collectionEvent.time",
        "baseField" : "specimen.collectionEvent.time"
      } ]
    }, {
      "title" : "Maternal Urine Type",
      "criteria" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "==",
          "value" : "'New'"
        }, {
          "field" : "specimen.type",
          "op" : "==",
          "value" : "'Urine, random'"
        } ]
      },
      "fields" : [ {
        "name" : "specimen.label",
        "baseField" : "specimen.label",
        "type" : "span"
      }, {
        "name" : "specimen.type",
        "baseField" : "specimen.type",
        "type" : "span"
      }, {
        "name" : "specimen.extensionDetail.attrsMap.DD2",
        "baseField" : "specimen.extensionDetail.attrsMap.DD2"
      } ]
    }, {
      "title" : "Maternal Breast Expression Type",
      "criteria" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "==",
          "value" : "'New'"
        }, {
          "field" : "specimen.type",
          "op" : "==",
          "value" : "'Breast Milk'"
        } ]
      },
      "enableCofrc" : false,
      "fields" : [ {
        "name" : "specimen.label",
        "baseField" : "specimen.label",
        "type" : "span"
      }, {
        "name" : "specimen.type",
        "baseField" : "specimen.type",
        "type" : "span"
      }, {
        "name" : "specimen.extensionDetail.attrsMap.DD3",
        "baseField" : "specimen.extensionDetail.attrsMap.DD3"
      } ]
    }, {
      "title" : "Urine Aliquot Details",
      "criteria" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "==",
          "value" : "'Aliquot'"
        }, {
          "field" : "specimen.type",
          "op" : "==",
          "value" : "'Urine, random'"
        } ]
      },
      "enableCofrc" : true,
      "fields" : [ {
        "name" : "specimen.label",
        "baseField" : "specimen.label",
        "type" : "span"
      }, {
        "name" : "specimen.type",
        "baseField" : "specimen.type",
        "type" : "span"
      }, {
        "name" : "specimen.initialQty",
        "baseField" : "specimen.initialQty"
      }, {
        "name" : "specimen.storageLocation",
        "baseField" : "specimen.storageLocation"
      }, {
        "name" : "events.SpecimenFrozenEvent.frozenMethod",
        "baseField" : "specimen.events.SpecimenFrozenEvent.frozenMethod",
        "hideColumn" : true
      }, {
        "name" : "events.SpecimenFrozenEvent.time",
        "baseField" : "specimen.events.SpecimenFrozenEvent.time"
      } ]
    }, {
      "title" : "Breast Milk Aliquot Details",
      "criteria" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "==",
          "value" : "'Aliquot'"
        }, {
          "field" : "specimen.type",
          "op" : "==",
          "value" : "'Breast Milk'"
        } ]
      },
      "enableCofrc" : true,
      "fields" : [ {
        "name" : "specimen.label",
        "baseField" : "specimen.label",
        "type" : "span"
      }, {
        "name" : "specimen.type",
        "baseField" : "specimen.type",
        "type" : "span"
      }, {
        "name" : "specimen.initialQty",
        "baseField" : "specimen.initialQty"
      }, {
        "name" : "specimen.storageLocation",
        "baseField" : "specimen.storageLocation"
      }, {
        "name" : "events.SpecimenFrozenEvent.frozenMethod",
        "baseField" : "specimen.events.SpecimenFrozenEvent.frozenMethod",
        "hideColumn" : true
      }, {
        "name" : "events.SpecimenFrozenEvent.time",
        "baseField" : "specimen.events.SpecimenFrozenEvent.time"
      } ]
    } ],
    "showPrintLabels" : false,
    "missedReasonReq" : false,
    "boxScanning" : true,
    "boxLayouts" : [ {
      "rows" : 8,
      "columns" : 12,
      "newRowOnChange" : [ "ppid" ],
      "cellWidth" : "200px",
      "criteria" : {
        "op" : "OR",
        "rules" : [ {
          "field" : "specimen.type",
          "op" : "==",
          "value" : "'Serum'"
        } ]
      }
    }, {
      "rows" : 6,
      "columns" : 8,
      "newRowOnChange" : [ "ppid" ],
      "cellWidth" : "200px",
      "criteria" : {
        "op" : "OR",
        "rules" : [ {
          "field" : "specimen.type",
          "op" : "==",
          "value" : "'Plasma, Lith Hep'"
        } ]
      }
    }, {
      "rows" : 8,
      "columns" : 8,
      "newRowOnChange" : [ "ppid" ],
      "cellWidth" : "200px",
      "criteria" : {
        "op" : "OR",
        "rules" : [ {
          "field" : "specimen.type",
          "op" : "==",
          "value" : "'Breast Milk'"
        } ]
      }
    }, {
      "rows" : 10,
      "columns" : 10,
      "newRowOnChange" : [ "ppid" ],
      "cellWidth" : "200px",
      "criteria" : {
        "op" : "OR",
        "rules" : [ {
          "field" : "specimen.type",
          "op" : "==",
          "value" : "'Urine, random'"
        } ]
      }
    } ],
    "emailNotifs" : { },
    "spmnScanning" : { }
  }
}, {
  "name" : "dictionary",
  "view" : null,
  "ctrl" : null,
  "data" : {
    "fields" : [ {
      "name" : "cpr.ppid",
      "caption" : "ORIGINS Pregnancy Number",
      "type" : "text",
      "optional" : false,
      "showIf" : {
        "op" : "OR",
        "rules" : [ {
          "field" : "cp.ppidFmt",
          "op" : "not_exist"
        }, {
          "field" : "cp.manualPpidEnabled",
          "op" : "exists"
        } ]
      }
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.NT28",
      "caption" : "ORIGINS Unique ID",
      "type" : "text",
      "optional" : true
    }, {
      "name" : "cpr.participant.birthDate",
      "caption" : "Date of Birth",
      "type" : "date",
      "dateOnly" : true,
      "optional" : true
    }, {
      "name" : "cpr.registrationDate",
      "caption" : "Registration Date",
      "type" : "date",
      "dateOnly" : true,
      "optional" : true,
      "defaultValue" : "current_date"
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.DP3",
      "caption" : "Estimated Date of Delivery",
      "type" : "date",
      "optional" : true
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.DD20",
      "caption" : "Birthing Hospital",
      "type" : "dropdown",
      "optional" : true,
      "listSource" : {
        "apiUrl" : "forms/permissible-values",
        "selectProp" : "value",
        "displayProp" : "value",
        "queryParams" : {
          "dynamic" : { },
          "static" : {
            "formName" : "participantInfoForm",
            "controlName" : "DD20"
          }
        }
      }
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.ST29",
      "caption" : "Please specify other Hospital",
      "type" : "text",
      "optional" : true
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.DD13",
      "caption" : "Obstetrician",
      "type" : "dropdown",
      "optional" : true,
      "listSource" : {
        "apiUrl" : "forms/permissible-values",
        "selectProp" : "value",
        "displayProp" : "value",
        "queryParams" : {
          "dynamic" : { },
          "static" : {
            "formName" : "participantInfoForm",
            "controlName" : "DD13"
          }
        }
      },
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "cpr.participant.extensionDetail.attrsMap.DD20",
          "op" : "==",
          "value" : "'JHC Private'"
        } ]
      }
    }, {
      "name" : "cpr.participant.deathDate",
      "caption" : "Deceased Date",
      "type" : "date",
      "optional" : true,
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "cpr.participant.vitalStatus",
          "op" : "==",
          "value" : "'Deceased'"
        } ]
      },
      "showInOverviewIf" : "useShowIf"
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.DD5",
      "caption" : "ORIGINS Study Status",
      "type" : "dropdown",
      "optional" : true,
      "listSource" : {
        "apiUrl" : "forms/permissible-values",
        "selectProp" : "value",
        "displayProp" : "value",
        "queryParams" : {
          "dynamic" : { },
          "static" : {
            "formName" : "participantInfoForm",
            "controlName" : "DD5"
          }
        }
      }
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.DP6",
      "caption" : "Date of withdrawal",
      "type" : "date",
      "optional" : true,
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "cpr.participant.extensionDetail.attrsMap.DD5",
          "op" : "==",
          "value" : "'Withdrawn'"
        } ]
      },
      "showInOverviewIf" : "!!cpr.participant.extensionDetail.attrsMap.DP6"
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.DD7",
      "caption" : "Level of Withdrawal",
      "type" : "dropdown",
      "optional" : true,
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "cpr.participant.extensionDetail.attrsMap.DD5",
          "op" : "==",
          "value" : "'Withdrawn'"
        } ]
      },
      "listSource" : {
        "apiUrl" : "forms/permissible-values",
        "selectProp" : "value",
        "displayProp" : "value",
        "queryParams" : {
          "dynamic" : { },
          "static" : {
            "formName" : "participantInfoForm",
            "controlName" : "DD7"
          }
        }
      },
      "showInOverviewIf" : "!!cpr.participant.extensionDetail.attrsMap.DD7"
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.DP8",
      "caption" : "Date Samples Destroyed",
      "type" : "date",
      "optional" : true,
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "cpr.participant.extensionDetail.attrsMap.DD5",
          "op" : "==",
          "value" : "'Withdrawn'"
        }, {
          "field" : "cpr.participant.extensionDetail.attrsMap.DD7",
          "op" : "==",
          "value" : "'No further follow-up with samples destroyed'"
        } ]
      },
      "showInOverviewIf" : "!!cpr.participant.extensionDetail.attrsMap.DP8"
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.RB9",
      "caption" : "Has the mother consented to DNA analysis?",
      "type" : "radio",
      "optional" : true,
      "options" : [ "Yes", "No" ]
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.DD11",
      "caption" : "Enrolment Gestation",
      "type" : "dropdown",
      "optional" : true,
      "listSource" : {
        "apiUrl" : "forms/permissible-values",
        "selectProp" : "value",
        "displayProp" : "value",
        "queryParams" : {
          "dynamic" : { },
          "static" : {
            "formName" : "participantInfoForm",
            "controlName" : "DD11"
          }
        }
      }
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.TA14",
      "caption" : "Comments",
      "type" : "textarea",
      "optional" : true
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.DD15",
      "caption" : "Mother Consent Form Level",
      "type" : "dropdown",
      "optional" : true,
      "listSource" : {
        "apiUrl" : "forms/permissible-values",
        "selectProp" : "value",
        "displayProp" : "value",
        "queryParams" : {
          "dynamic" : { },
          "static" : {
            "formName" : "participantInfoForm",
            "controlName" : "DD15"
          }
        }
      }
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.MLB16",
      "caption" : "Is the mother part of Nested Study?",
      "type" : "dropdown",
      "multiple" : true,
      "optional" : true,
      "listSource" : {
        "apiUrl" : "forms/permissible-values",
        "selectProp" : "value",
        "displayProp" : "value",
        "queryParams" : {
          "dynamic" : { },
          "static" : {
            "formName" : "participantInfoForm",
            "controlName" : "MLB16"
          }
        }
      }
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.ST30",
      "caption" : "SYMBA ID",
      "type" : "date",
      "optional" : true,
      "showInOverviewIf" : "!!cpr.participant.extensionDetail.attrsMap.ST30"
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.ST31",
      "caption" : "BENEFIT ID",
      "type" : "date",
      "optional" : true,
      "showInOverviewIf" : "!!cpr.participant.extensionDetail.attrsMap.ST31"
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.ST32",
      "caption" : "TALK ID",
      "type" : "date",
      "optional" : true,
      "showInOverviewIf" : "!!cpr.participant.extensionDetail.attrsMap.ST32"
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.ST33",
      "caption" : "ENGAGE ID",
      "type" : "date",
      "optional" : true,
      "showInOverviewIf" : "!!cpr.participant.extensionDetail.attrsMap.ST33"
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.ST34",
      "caption" : "AERIAL ID",
      "type" : "date",
      "optional" : true,
      "showInOverviewIf" : "!!cpr.participant.extensionDetail.attrsMap.ST34"
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.ST35",
      "caption" : "PREGGNUT ID",
      "type" : "date",
      "optional" : true,
      "showInOverviewIf" : "!!cpr.participant.extensionDetail.attrsMap.ST35"
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.ST36",
      "caption" : "EARLYMOVES ID",
      "type" : "date",
      "optional" : true,
      "showInOverviewIf" : "!!cpr.participant.extensionDetail.attrsMap.ST36"
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.ST37",
      "caption" : "SCREENS ID",
      "type" : "date",
      "optional" : true,
      "showInOverviewIf" : "!!cpr.participant.extensionDetail.attrsMap.ST37"
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.ST38",
      "caption" : "SUNPREG ID",
      "type" : "date",
      "optional" : true,
      "showInOverviewIf" : "!!cpr.participant.extensionDetail.attrsMap.ST38"
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.ST39",
      "caption" : "ACE ID",
      "type" : "date",
      "optional" : true,
      "showInOverviewIf" : "!!cpr.participant.extensionDetail.attrsMap.ST39"
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.ST40",
      "caption" : "MMM ID",
      "type" : "date",
      "optional" : true,
      "showInOverviewIf" : "!!cpr.participant.extensionDetail.attrsMap.ST40"
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.ST41",
      "caption" : "CUB ID",
      "type" : "date",
      "optional" : true,
      "showInOverviewIf" : "!!cpr.participant.extensionDetail.attrsMap.ST41"
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.ST42",
      "caption" : "COCOON ID",
      "type" : "date",
      "optional" : true,
      "showInOverviewIf" : "!!cpr.participant.extensionDetail.attrsMap.ST42"
    }, {
      "name" : "visit.name",
      "caption" : "Visit Name",
      "type" : "text",
      "optional" : true,
      "showIf" : {
        "op" : "OR",
        "rules" : [ {
          "field" : "cp.visitNameFmt",
          "op" : "not_exist"
        }, {
          "field" : "cp.manualVisitNameEnabled",
          "op" : "exists"
        } ]
      }
    }, {
      "name" : "visit.status",
      "caption" : "Status",
      "type" : "dropdown",
      "optional" : true,
      "listSource" : {
        "options" : [ {
          "value" : "Pending"
        }, {
          "value" : "Missed Collection"
        }, {
          "value" : "Complete"
        } ],
        "displayProp" : "value",
        "selectProp" : "value"
      }
    }, {
      "name" : "visit.missedBy",
      "caption" : "Missed By",
      "type" : "user",
      "defaultValue" : "current_user",
      "optional" : true,
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "visit.status",
          "op" : "==",
          "value" : "'Missed Collection'"
        } ]
      },
      "showInOverviewIf" : "useShowIf"
    }, {
      "name" : "visit.missedReason",
      "caption" : "Missed Reason",
      "type" : "pvs",
      "attr" : "missed-visit-reason",
      "optional" : true,
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "visit.status",
          "op" : "==",
          "value" : "'Missed Collection'"
        } ]
      },
      "showInOverviewIf" : "useShowIf"
    }, {
      "name" : "visit.visitDate",
      "caption" : "Visit Date",
      "type" : "date",
      "defaultValue" : "current_date",
      "optional" : false
    }, {
      "name" : "visit.site",
      "caption" : "Site",
      "type" : "dropdown",
      "multiple" : false,
      "optional" : false,
      "listSource" : {
        "apiUrl" : "sites",
        "displayProp" : "name",
        "selectProp" : "name",
        "queryParams" : {
          "dynamic" : { },
          "static" : {
            "listAll" : true
          }
        }
      },
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "visit.status",
          "op" : "!=",
          "value" : "'Missed Collection'"
        } ]
      }
    }, {
      "name" : "visit.clinicalDiagnoses",
      "caption" : "Clinical Diagnoses",
      "type" : "pvs",
      "attr" : "clinical_diagnosis",
      "optional" : true,
      "multiple" : true,
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "visit.status",
          "op" : "!=",
          "value" : "'Missed Collection'"
        } ]
      }
    }, {
      "name" : "visit.clinicalStatus",
      "caption" : "Clinical Status",
      "type" : "pvs",
      "attr" : "clinical-status",
      "optional" : true,
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "visit.status",
          "op" : "!=",
          "value" : "'Missed Collection'"
        } ]
      }
    }, {
      "name" : "visit.surgicalPathologyNumber",
      "caption" : "Surgical Pathology Number",
      "type" : "text",
      "optional" : true,
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "visit.status",
          "op" : "!=",
          "value" : "'Missed Collection'"
        } ]
      }
    }, {
      "name" : "visit.comments",
      "caption" : "Comments",
      "type" : "textarea",
      "optional" : true
    }, {
      "name" : "specimen.label",
      "caption" : "Label",
      "type" : "text",
      "optional" : true,
      "showIf" : {
        "op" : "OR",
        "rules" : [ {
          "field" : "specimen.labelFmt",
          "op" : "not_exist"
        }, {
          "field" : "cp.manualSpecLabelEnabled",
          "op" : "exists"
        } ]
      }
    }, {
      "name" : "specimen.barcode",
      "caption" : "Barcode",
      "type" : "text",
      "optional" : true
    }, {
      "name" : "specimen.lineage",
      "caption" : "Lineage",
      "type" : "radio",
      "optional" : false,
      "options" : [ {
        "value" : "New",
        "caption" : "New"
      }, {
        "value" : "Derived",
        "caption" : "Derived"
      }, {
        "value" : "Aliquot",
        "caption" : "Aliquot"
      } ]
    }, {
      "name" : "specimen.status",
      "caption" : "Collection Status",
      "type" : "dropdown",
      "optional" : true,
      "listSource" : {
        "selectProp" : "value",
        "displayProp" : "value",
        "options" : [ {
          "value" : "Collected"
        }, {
          "value" : "Missed Collection"
        }, {
          "value" : "Pending"
        } ]
      }
    }, {
      "name" : "specimen.type",
      "caption" : "Type",
      "type" : "specimen-type",
      "specimen" : "specimen",
      "optional" : false,
      "defaultValue" : "Not Specified",
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "!=",
          "value" : "'Aliquot'"
        } ]
      }
    }, {
      "name" : "specimen.initialQty",
      "caption" : "Initial Quantity",
      "type" : "specimen-quantity",
      "specimen" : "specimen",
      "optional" : true
    }, {
      "name" : "specimen.availableQty",
      "caption" : "Available Quantity",
      "type" : "specimen-quantity",
      "showInOverviewIf" : "useShowIf",
      "specimen" : "specimen",
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "==",
          "value" : "'Aliquot'"
        } ]
      },
      "optional" : true
    }, {
      "name" : "specimen.concentration",
      "caption" : "Concentration",
      "type" : "specimen-quantity",
      "specimen" : "specimen",
      "measure" : "concentration",
      "pattern" : "/^([0-9]+|[0-9]*\\.?[0-9]+[e]?[+-]?[0-9]*)$/",
      "optional" : true
    }, {
      "name" : "specimen.parentLabel",
      "caption" : "Parent Specimen",
      "type" : "text",
      "optional" : false,
      "url" : "specimen({specimenId: specimen.parentId})",
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "!=",
          "value" : "'New'"
        } ]
      },
      "modelOpts" : {
        "updateOn" : "blur"
      },
      "showInOverviewIf" : "useShowIf"
    }, {
      "name" : "specimen.biohazards",
      "caption" : "Biohazards",
      "type" : "pvs",
      "multiple" : true,
      "attr" : "specimen-biohazard",
      "optional" : true,
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "==",
          "value" : "'New'"
        } ]
      },
      "showInOverviewIf" : "useShowIf"
    }, {
      "name" : "specimen.extensionDetail.attrsMap.DD5",
      "caption" : "Method of transport",
      "type" : "dropdown",
      "optional" : true,
      "listSource" : {
        "apiUrl" : "forms/permissible-values",
        "selectProp" : "value",
        "displayProp" : "value",
        "queryParams" : {
          "dynamic" : { },
          "static" : {
            "formName" : "maternalUrineAndBreastMilk",
            "controlName" : "DD5"
          }
        }
      }
    }, {
      "name" : "specimen.extensionDetail.attrsMap.DD6",
      "caption" : "Collection Details",
      "type" : "dropdown",
      "showInOverviewIf" : "!!specimen.extensionDetail.attrsMap.DD6",
      "optional" : true,
      "listSource" : {
        "apiUrl" : "forms/permissible-values",
        "selectProp" : "value",
        "displayProp" : "value",
        "queryParams" : {
          "dynamic" : { },
          "static" : {
            "formName" : "maternalUrineAndBreastMilk",
            "controlName" : "DD6"
          }
        }
      }
    }, {
      "name" : "specimen.extensionDetail.attrsMap.DD8",
      "caption" : "Received Details",
      "type" : "dropdown",
      "showInOverviewIf" : "!!specimen.extensionDetail.attrsMap.DD8",
      "optional" : true,
      "listSource" : {
        "apiUrl" : "forms/permissible-values",
        "selectProp" : "value",
        "displayProp" : "value",
        "queryParams" : {
          "dynamic" : { },
          "static" : {
            "formName" : "maternalUrineAndBreastMilk",
            "controlName" : "DD8"
          }
        }
      }
    }, {
      "name" : "specimen.extensionDetail.attrsMap.DD9",
      "caption" : "Processing Details",
      "type" : "dropdown",
      "showInOverviewIf" : "!!specimen.extensionDetail.attrsMap.DD9",
      "optional" : true,
      "listSource" : {
        "apiUrl" : "forms/permissible-values",
        "selectProp" : "value",
        "displayProp" : "value",
        "queryParams" : {
          "dynamic" : { },
          "static" : {
            "formName" : "maternalUrineAndBreastMilk",
            "controlName" : "DD9"
          }
        }
      }
    }, {
      "name" : "specimen.storageLocation",
      "caption" : "Location",
      "type" : "storage-position",
      "optional" : true,
      "cpId" : "specimen.cpId",
      "entity" : "specimen",
      "url" : "container-detail.locations({containerId: specimen.storageLocation.id})",
      "subFields" : [ {
        "name" : "name",
        "caption" : "Container Name"
      }, {
        "name" : "positionY",
        "caption" : "Container Row"
      }, {
        "name" : "positionX",
        "caption" : "Container Column"
      } ]
    }, {
      "name" : "specimen.createdOn",
      "caption" : "Created On",
      "type" : "datetime",
      "optional" : false,
      "copyValueFn" : "function(firstRowVal, currentVal) { if (!!currentVal) { return currentVal; } else { return ''; } }",
      "defaultValue" : "current_date",
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "!=",
          "value" : "'New'"
        } ]
      },
      "showInOverviewIf" : "useShowIf"
    }, {
      "name" : "specimen.createdBy",
      "caption" : "Created By",
      "type" : "user",
      "defaultValue" : "current_user",
      "optional" : true,
      "copyValueFn" : "function(firstRowVal, currentVal) { if (!!currentVal) { return currentVal; } else { return ''; } }",
      "listSource" : {
        "queryParams" : {
          "static" : {
            "excludeType" : "CONTACT"
          }
        }
      }
    }, {
      "name" : "specimen.freezeThawCycles",
      "caption" : "Freeze Thaw Cycles",
      "type" : "text",
      "optional" : true,
      "pattern" : "/^[0-9][0-9]*$/"
    }, {
      "name" : "specimen.incrParentFreezeThaw",
      "caption" : "Increment parent specimen's Freeze/Thaw cycles?",
      "type" : "radio",
      "optional" : true,
      "options" : [ {
        "caption" : "Yes",
        "value" : 1
      }, {
        "caption" : "No",
        "value" : 0
      } ],
      "showInOverviewIf" : "!!specimen.incrParentFreezeThaw"
    }, {
      "name" : "specimen.comments",
      "caption" : "Comments",
      "type" : "textarea",
      "optional" : true
    }, {
      "name" : "specimen.collectionEvent.time",
      "caption" : "Collection Date & Time",
      "type" : "datetime",
      "defaultValue" : "current_date",
      "optional" : true,
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "==",
          "value" : "'New'"
        }, {
          "field" : "specimen.reqId",
          "op" : "not_exist"
        } ]
      },
      "showInOverviewIf" : "useShowIf"
    }, {
      "name" : "specimen.collectionEvent.user",
      "caption" : "Collector",
      "type" : "user",
      "defaultValue" : "current_user",
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "==",
          "value" : "'New'"
        }, {
          "field" : "specimen.reqId",
          "op" : "not_exist"
        } ]
      },
      "showInOverviewIf" : "useShowIf",
      "subFields" : [ {
        "name" : "emailAddress",
        "caption" : "Collector Email Address"
      } ]
    }, {
      "name" : "specimen.collectionEvent.container",
      "caption" : "Collection Container",
      "type" : "pvs",
      "attr" : "collection-container",
      "optional" : true,
      "defaultValue" : "Not Specified",
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "==",
          "value" : "'New'"
        }, {
          "field" : "specimen.reqId",
          "op" : "not_exist"
        } ]
      },
      "showInOverviewIf" : "useShowIf"
    }, {
      "name" : "specimen.collectionEvent.procedure",
      "caption" : "Collection Procedure",
      "type" : "pvs",
      "attr" : "collection-procedure",
      "copyValueFn" : "function(firstRowVal, currentVal) { if (!!currentVal) { return currentVal; } else { return ''; } }",
      "optional" : true,
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "==",
          "value" : "'New'"
        }, {
          "field" : "specimen.reqId",
          "op" : "not_exist"
        } ]
      },
      "showInOverviewIf" : "useShowIf"
    }, {
      "name" : "specimen.receivedEvent.user",
      "caption" : "Receiver",
      "type" : "user",
      "defaultValue" : "current_user",
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "==",
          "value" : "'New'"
        }, {
          "field" : "specimen.reqId",
          "op" : "not_exist"
        } ]
      },
      "showInOverviewIf" : "useShowIf",
      "subFields" : [ {
        "name" : "emailAddress",
        "caption" : "Collector Email Address"
      } ]
    }, {
      "name" : "specimen.receivedEvent.time",
      "caption" : "Received Date & Time",
      "type" : "datetime",
      "defaultValue" : "current_date",
      "optional" : true,
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "==",
          "value" : "'New'"
        }, {
          "field" : "specimen.reqId",
          "op" : "not_exist"
        } ]
      },
      "showInOverviewIf" : "useShowIf"
    }, {
      "name" : "specimen.receivedEvent.receivedQuality",
      "caption" : "Received Quality",
      "type" : "pvs",
      "attr" : "received-quality",
      "defaultValue" : "Acceptable",
      "optional" : true,
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "==",
          "value" : "'New'"
        }, {
          "field" : "specimen.reqId",
          "op" : "not_exist"
        } ]
      },
      "showInOverviewIf" : "useShowIf"
    }, {
      "name" : "specimen.externalIds",
      "type" : "collection",
      "fields" : [ {
        "name" : "name",
        "caption" : "External Name",
        "type" : "text",
        "optional" : true
      }, {
        "name" : "value",
        "caption" : "External Value",
        "type" : "text",
        "optional" : true
      } ]
    }, {
      "name" : "specimen.extensionDetail.attrsMap.DD2",
      "caption" : "Urine Type",
      "type" : "dropdown",
      "optional" : true,
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.type",
          "op" : "==",
          "value" : "'Urine'"
        } ]
      },
      "showInOverviewIf" : "useShowIf",
      "listSource" : {
        "apiUrl" : "forms/permissible-values",
        "selectProp" : "value",
        "displayProp" : "value",
        "queryParams" : {
          "dynamic" : { },
          "static" : {
            "formName" : "maternalUrineAndBreastMilk",
            "controlName" : "DD2"
          }
        }
      }
    }, {
      "name" : "specimen.extensionDetail.attrsMap.DD3",
      "caption" : "Breast Milk Expression Type",
      "type" : "dropdown",
      "optional" : true,
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.type",
          "op" : "==",
          "value" : "'Breast Milk'"
        } ]
      },
      "showInOverviewIf" : "useShowIf",
      "listSource" : {
        "apiUrl" : "forms/permissible-values",
        "selectProp" : "value",
        "displayProp" : "value",
        "queryParams" : {
          "dynamic" : { },
          "static" : {
            "formName" : "maternalUrineAndBreastMilk",
            "controlName" : "DD3"
          }
        }
      }
    }, {
      "name" : "specimen.extensionDetail.attrsMap.NT4",
      "caption" : "Viability",
      "type" : "text",
      "optional" : true,
      "showInOverviewIf" : "!!specimen.extensionDetail.attrsMap.NT4",
      "pattern" : "/^[1-9][0-9]*$/"
    }, {
      "name" : "specimen.events.SpecimenFrozenEvent.time",
      "caption" : "Frozen Time",
      "type" : "datetime",
      "defaultValue" : "current_date"
    }, {
      "name" : "specimen.events.SpecimenFrozenEvent.user",
      "caption" : "Frozen By",
      "type" : "user",
      "defaultValue" : "current_user"
    }, {
      "name" : "specimen.events.SpecimenFrozenEvent.frozenMethod",
      "caption" : "Frozen Method",
      "type" : "pvs",
      "attr" : "frozen_method",
      "defaultValue" : "Not Specified"
    }, {
      "name" : "specimen.events.SpecimenFrozenEvent.comments",
      "caption" : "Frozen Comments",
      "type" : "textarea"
    } ],
    "onValueChange" : {
      "specimen.createdBy" : [ "function(opts) {", "  var user = opts.fns.get(opts.object, opts.field); ", "  opts.viewCtx.setToAllChildren(opts.object, opts.field, user, true); ", "}" ],
      "specimen.createdOn" : [ "function(opts) {", "  var user = opts.fns.get(opts.object, opts.field); ", "  opts.viewCtx.setToAllChildren(opts.object, opts.field, user, true); ", "}" ],
      "specimen.extensionDetail.attrsMap.DD9" : [ "function(opts) {", "  var user = opts.fns.get(opts.object, opts.field); ", "  opts.viewCtx.setToAllChildren(opts.object, opts.field, user, true); ", "}" ]
    }
  }
}, {
  "name" : "visitsTab",
  "view" : null,
  "ctrl" : null,
  "data" : {
    "occurred" : [ {
      "field" : "visit.name",
      "baseField" : "visit.name",
      "width" : "150px"
    }, {
      "field" : "visit.visitDate",
      "baseField" : "visit.visitDate",
      "width" : "100px"
    } ],
    "anticipatedEvents" : [ {
      "rule" : "cpr.participant.extensionDetail.attrsMap.MLB16.indexOf('SYMBA') > -1 && cpr.participant.extensionDetail.attrsMap.MLB16.indexOf('PREGGNUT') > -1",
      "events" : [ "30WK", "20WK", "28WK", "36WK", "Birth", "2M", "4M", "6M", "1Y", "3Y", "5Y", "Sym4Mnth", "Preg4Mnth" ]
    }, {
      "rule" : "cpr.participant.extensionDetail.attrsMap.MLB16.indexOf('SYMBA') > -1 && cpr.participant.extensionDetail.attrsMap.MLB16.indexOf('BENEFIT') > -1",
      "events" : [ "30WK", "20WK", "28WK", "36WK", "Birth", "2M", "4M", "6M", "1Y", "3Y", "5Y", "Sym4Mnth", "Ben4Mnth" ]
    }, {
      "rule" : "cpr.participant.extensionDetail.attrsMap.MLB16.indexOf('PREGGNUT') > -1 && cpr.participant.extensionDetail.attrsMap.MLB16.indexOf('BENEFIT') > -1",
      "events" : [ "30WK", "20WK", "28WK", "36WK", "Birth", "2M", "4M", "6M", "1Y", "3Y", "5Y", "Preg4Mnth", "Ben4Mnth" ]
    }, {
      "rule" : "cpr.participant.extensionDetail.attrsMap.MLB16.indexOf('SYMBA') > -1",
      "events" : [ "30WK", "20WK", "28WK", "36WK", "Birth", "2M", "4M", "6M", "1Y", "3Y", "5Y", "Sym4Mnth" ]
    }, {
      "rule" : "cpr.participant.extensionDetail.attrsMap.MLB16.indexOf('PREGGNUT') > -1",
      "events" : [ "30WK", "20WK", "28WK", "36WK", "Birth", "2M", "4M", "6M", "1Y", "3Y", "5Y", "Preg4Mnth" ]
    }, {
      "rule" : "cpr.participant.extensionDetail.attrsMap.MLB16.indexOf('BENEFIT') > -1",
      "events" : [ "30WK", "20WK", "28WK", "36WK", "Birth", "2M", "4M", "6M", "1Y", "3Y", "5Y", "Ben4Mnth" ]
    }, {
      "rule" : "cpr.participant.extensionDetail.attrsMap.DD15 == 'Full ORIGINS Project Participation'",
      "events" : [ "30WK", "20WK", "28WK", "36WK", "Birth", "2M", "4M", "6M", "1Y", "3Y", "5Y" ]
    }, {
      "rule" : "cpr.participant.extensionDetail.attrsMap.DD15 == 'Routine Data Collection'",
      "events" : [ "30WK" ]
    }, {
      "rule" : "cpr.participant.extensionDetail.attrsMap.DD15 == 'Release of Australian Govt Data only'",
      "events" : [ "None" ]
    }, {
      "rule" : "cpr.participant.extensionDetail.attrsMap.DD15 == null && cpr.participant.extensionDetail.attrsMap.MLB16== null",
      "events" : [ "None" ]
    } ]
  }
}, {
  "name" : "participant-list-view",
  "view" : null,
  "ctrl" : null,
  "data" : {
    "columns" : [ {
      "expr" : "Participant.ppid",
      "caption" : "ORIGINS Pregnancy Number",
      "metainfo" : {
        "showLink" : "true"
      }
    }, {
      "expr" : "Participant.customFields.participantInfoForm.oRIGINSUniqueID",
      "caption" : "ORIGINS Unique ID"
    }, {
      "expr" : "Participant.regDate",
      "caption" : "Registration Date"
    }, {
      "expr" : "Participant.customFields.participantInfoForm.participantStudyStatus",
      "caption" : "Participant Study Status"
    }, {
      "expr" : "Participant.customFields.participantInfoForm.participantConsentFormLevel",
      "caption" : "Participant Consent Form Level"
    }, {
      "expr" : "concat(years_between(current_date(), Participant.dateOfBirth), \" yrs\")",
      "caption" : "Age"
    } ],
    "criteria" : "Participant.id exists",
    "orderBy" : [ {
      "expr" : "Participant.regDate",
      "direction" : "desc"
    } ],
    "filters" : [ {
      "expr" : "Participant.ppid",
      "caption" : "ORIGINS Pregnancy Number",
      "searchType" : "contains"
    }, {
      "expr" : "Participant.customFields.participantInfoForm.oRIGINSUniqueID",
      "caption" : "Unique ID"
    }, {
      "expr" : "Participant.customFields.participantInfoForm.participantStudyStatus",
      "caption" : "Participant Study Status"
    }, {
      "expr" : "Participant.customFields.participantInfoForm.participantConsentFormLevel",
      "caption" : "Participant Consent Form Level"
    }, {
      "expr" : "Participant.regDate",
      "caption" : "Registration Date"
    }, {
      "expr" : "years_between(current_date(), Participant.dateOfBirth)",
      "caption" : "Age",
      "temporal" : "true",
      "metainfo" : {
        "phi" : "true"
      }
    } ]
  }
}, {
  "name" : "specimenTree",
  "view" : null,
  "ctrl" : null,
  "data" : {
    "defaultExpandDepth" : 0,
    "fields" : [ {
      "name" : "specimen",
      "caption" : "Description",
      "type" : "specimen-description",
      "width" : "30%"
    }, {
      "name" : "specimen.label",
      "baseField" : "specimen.label",
      "width" : "20%"
    }, {
      "name" : "specimen.storageLocation",
      "baseField" : "specimen.storageLocation",
      "width" : "20%"
    }, {
      "name" : "specimen.availableQty",
      "baseField" : "specimen.availableQty",
      "caption" : "Volume",
      "width" : "10%"
    } ]
  }
}, {
  "name" : "specimen-list-view",
  "view" : null,
  "ctrl" : null,
  "data" : {
    "columns" : [ {
      "expr" : "Specimen.label",
      "caption" : "Label",
      "metainfo" : {
        "showLink" : "true"
      }
    }, {
      "expr" : "Specimen.createdOn",
      "caption" : "Created On"
    }, {
      "expr" : "Specimen.type",
      "caption" : "Type"
    }, {
      "expr" : "Specimen.availableQty",
      "caption" : "Quantity",
      "metainfo" : {
        "showUnit" : "true",
        "measure" : "quantity"
      }
    }, {
      "expr" : "concat(Specimen.specimenPosition.containerName, concat_ws(\"\", concat(\" (\", Specimen.specimenPosition.formattedPos, \")\")))",
      "caption" : "Location"
    } ],
    "criteria" : "Specimen.collectionStatus = \"Collected\" and Specimen.activityStatus = \"Active\"",
    "orderBy" : [ {
      "expr" : "Specimen.createdOn",
      "direction" : "desc"
    } ],
    "filters" : [ {
      "expr" : "Specimen.label",
      "caption" : "Label",
      "searchType" : "contains"
    }, {
      "expr" : "Specimen.lineage",
      "caption" : "Lineage"
    }, {
      "expr" : "Specimen.createdOn",
      "caption" : "Created On"
    }, {
      "expr" : "Specimen.type",
      "caption" : "Type"
    }, {
      "expr" : "Specimen.availableQty",
      "caption" : "Quantity"
    } ]
  }
} ]

 Screenshots...

Screenshots:

  1. Add multiple patients with event timepoints  → Proceed to Collect Specimens.

    2. Patient-1 (RDE-TST-001): Shows standard specimen collection page based on the above JSON configuration, and it skips the RDE layout.

3. Shows nth steps if present in the JSON workflow as below, 

4. Once submitted, it navigates to the collection page for the second patient (RDE-TST-002)


Configuration to use the existing visit (v7.1)

To reuse the existing visit for the timepoint selected during RDE data entry instead of creating a new visit, the following attribute should be added to the RDE section of the workflow JSON:

Code snippet
...
...
    {
      "name": "rde",
      "data": {
        ...
        "lookupVisit": "true"
        ...
      }
  }
  ...

Use-cases: During RDE data entry, if the above flag(lookupVisit) is set to true, below are different use cases of how it will work when a time point is selected and you can proceed to collect specimens:

Sr No.Test CaseResults
1

Only one visit exist for the time point selected

Uses the same visit and show all the pending specimen to collect

2No visit existsCreate new visit
3More than one complete visit exists - with different visit datesChoose the latest visit for collection
4One complete and one pending visit existsUses the Pending visit
5One complete and one missed visit existsUses the complete visit to collect the pending specimens
6Only 1 missed visit exists

Create new visit

7Visit exist with few specimens collectedThrow error saying, No pending specimens to collect in this visit. 
Example JSON (visit-lookup)
[ {
  "name" : "specimenCollection",
  "view" : null,
  "ctrl" : null,
  "data" : {
    "showVisitDetails" : true,
    "showCollectionEvent" : false,
    "showReceivedEvent" : false,
    "defReceiveQuality" : "Acceptable",
    "fieldGroups" : [ {
      "title" : "Primary Specimen Details",
      "criteria" : {
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "==",
          "value" : "'New'"
        } ]
      },
      "enableCofrc" : false,
      "fields" : [ {
        "name" : "specimen.label",
        "baseField" : "specimen.label",
        "type" : "span"
      }, {
        "name" : "specimen.type",
        "baseField" : "specimen.type",
        "type" : "span"
      }, {
        "name" : "specimen.receivedEvent.receivedQuality",
        "baseField" : "specimen.receivedEvent.receivedQuality"
      }, {
        "name" : "specimen.biohazards",
        "baseField" : "specimen.biohazards"
      }, {
        "name" : "specimen.extensionDetail.attrsMap.DD5",
        "baseField" : "specimen.extensionDetail.attrsMap.DD5"
      }, {
        "name" : "specimen.collectionEvent.procedure",
        "baseField" : "specimen.collectionEvent.procedure"
      }, {
        "name" : "specimen.collectionEvent.time",
        "baseField" : "specimen.collectionEvent.time"
      }, {
        "name" : "specimen.extensionDetail.attrsMap.DD6",
        "baseField" : "specimen.extensionDetail.attrsMap.DD6"
      }, {
        "name" : "specimen.receivedEvent.time",
        "baseField" : "specimen.receivedEvent.time"
      }, {
        "name" : "specimen.extensionDetail.attrsMap.DD8",
        "baseField" : "specimen.extensionDetail.attrsMap.DD8"
      }, {
        "name" : "specimen.createdBy",
        "baseField" : "specimen.createdBy",
        "caption" : "Processed By User"
      }, {
        "name" : "specimen.createdOn",
        "baseField" : "specimen.createdOn",
        "caption" : "Processed Time"
      }, {
        "name" : "specimen.extensionDetail.attrsMap.DD9",
        "baseField" : "specimen.extensionDetail.attrsMap.DD9"
      } ]
    }, {
      "title" : "Derived: Processing details",
      "criteria" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "==",
          "value" : "'Derived'"
        } ]
      },
      "enableCofrc" : false,
      "hideTable" : true,
      "fields" : [ {
        "name" : "specimen.label",
        "baseField" : "specimen.label",
        "type" : "span"
      }, {
        "name" : "specimen.type",
        "baseField" : "specimen.type",
        "type" : "span"
      }, {
        "name" : "specimen.createdOn",
        "baseField" : "specimen.createdOn",
        "caption" : "Processed Time"
      }, {
        "name" : "specimen.extensionDetail.attrsMap.DD9",
        "baseField" : "specimen.extensionDetail.attrsMap.DD9"
      }, {
        "name" : "specimen.createdBy",
        "baseField" : "specimen.createdBy",
        "caption" : "Processed By User"
      } ]
    }, {
      "title" : "Frozen Details: Blood Samples",
      "criteria" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "==",
          "value" : "'Aliquot'"
        }, {
          "field" : "specimen.type",
          "op" : ".search('CBMC|Cord Blood, Arterial|Cord Blood, venous|Granulocytes|PBMC|Plasma, Lith Hep|Plasma, spun once, EDTA Potassium|Serum|Whole Blood|Whole blood, Clot activated|Whole Blood, EDTA|Whole Blood, FACS|Whole Blood, Lith Hep|Whole Blood, NH Trace|Whole Blood, PAX|Whole Blood, RPMI') != ",
          "value" : "-1"
        } ]
      },
      "enableCofrc" : true,
      "fields" : [ {
        "name" : "specimen.label",
        "baseField" : "specimen.label",
        "type" : "span"
      }, {
        "name" : "specimen.type",
        "baseField" : "specimen.type",
        "type" : "span"
      }, {
        "name" : "events.SpecimenFrozenEvent.time",
        "baseField" : "specimen.events.SpecimenFrozenEvent.time"
      }, {
        "name" : "events.SpecimenFrozenEvent.user",
        "baseField" : "specimen.events.SpecimenFrozenEvent.user",
        "caption" : "Frozen By"
      }, {
        "name" : "events.SpecimenFrozenEvent.comments",
        "baseField" : "specimen.events.SpecimenFrozenEvent.comments"
      }, {
        "name" : "events.SpecimenFrozenEvent.frozenMethod",
        "baseField" : "specimen.events.SpecimenFrozenEvent.frozenMethod",
        "caption" : "Frozen Method",
        "defaultValue" : "Not Specified",
        "hideColumn" : true
      } ]
    }, {
      "title" : "Frozen Details: Other Samples",
      "criteria" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "==",
          "value" : "'Aliquot'"
        }, {
          "field" : "specimen.type",
          "op" : ".search('CBMC|Cord Blood, Arterial|Cord Blood, venous|Granulocytes|PBMC|Plasma, Lith Hep|Plasma, spun once, EDTA Potassium|Serum|Whole Blood|Whole blood, Clot activated|Whole Blood, EDTA|Whole Blood, FACS|Whole Blood, Lith Hep|Whole Blood, NH Trace|Whole Blood, PAX|Whole Blood, RPMI|Placenta, MR|Placenta, MM|Placenta, MRNA|Placenta|Placenta, MB|Placenta, PVC|Placenta, PV|Placenta, PVRNA|Placenta, PD|Placenta, membrane|Placenta, biopsy') == ",
          "value" : "-1"
        } ]
      },
      "enableCofrc" : true,
      "fields" : [ {
        "name" : "specimen.label",
        "baseField" : "specimen.label",
        "type" : "span"
      }, {
        "name" : "specimen.type",
        "baseField" : "specimen.type",
        "type" : "span"
      }, {
        "name" : "events.SpecimenFrozenEvent.time",
        "baseField" : "specimen.events.SpecimenFrozenEvent.time"
      }, {
        "name" : "events.SpecimenFrozenEvent.user",
        "baseField" : "specimen.events.SpecimenFrozenEvent.user",
        "caption" : "Frozen By"
      }, {
        "name" : "events.SpecimenFrozenEvent.comments",
        "baseField" : "specimen.events.SpecimenFrozenEvent.comments"
      }, {
        "name" : "events.SpecimenFrozenEvent.frozenMethod",
        "baseField" : "specimen.events.SpecimenFrozenEvent.frozenMethod",
        "caption" : "Frozen Method",
        "defaultValue" : "Not Specified",
        "hideColumn" : true
      } ]
    }, {
      "title" : "Viability for CBMC/PBMC",
      "criteria" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "==",
          "value" : "'Aliquot'"
        }, {
          "field" : "specimen.type",
          "op" : ".search('CBMC|PBMC') != ",
          "value" : "-1"
        } ]
      },
      "enableCofrc" : true,
      "fields" : [ {
        "name" : "specimen.label",
        "baseField" : "specimen.label",
        "type" : "span"
      }, {
        "name" : "specimen.type",
        "baseField" : "specimen.type",
        "type" : "span"
      }, {
        "name" : "specimen.extensionDetail.attrsMap.NT4",
        "baseField" : "specimen.extensionDetail.attrsMap.NT4",
        "caption" : "Viability"
      } ]
    }, {
      "title" : "Aliquot: Processing details",
      "criteria" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "==",
          "value" : "'Aliquot'"
        } ]
      },
      "enableCofrc" : true,
      "hideTable" : true,
      "fields" : [ {
        "name" : "specimen.label",
        "baseField" : "specimen.label",
        "type" : "span"
      }, {
        "name" : "specimen.type",
        "baseField" : "specimen.type",
        "type" : "span"
      }, {
        "name" : "specimen.createdOn",
        "baseField" : "specimen.createdOn",
        "caption" : "Processed Time"
      }, {
        "name" : "specimen.createdBy",
        "baseField" : "specimen.createdBy",
        "caption" : "Processed By User"
      } ]
    } ]
  }
}, {
  "name" : "rde",
  "view" : null,
  "ctrl" : null,
  "data" : {
    "lookupVisit" : "true",
    "collectionWorkflow" : "standard",
    "regFields" : [ {
      "name" : "cpr.ppid",
      "baseField" : "cpr.ppid",
      "caption" : "ORIGINS Pregnancy Number"
    }, {
      "name" : "cpr.participant.birthDate",
      "baseField" : "cpr.participant.birthDate",
      "caption" : "Date Of Birth",
      "width" : "40px"
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.DD5",
      "baseField" : "cpr.participant.extensionDetail.attrsMap.DD5",
      "caption" : "Origins Study Status",
      "width" : "40px",
      "type" : "span"
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.DD15",
      "baseField" : "cpr.participant.extensionDetail.attrsMap.DD15",
      "caption" : "Mother Consent Form Level",
      "width" : "40px",
      "type" : "span"
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.MLB16",
      "baseField" : "cpr.participant.extensionDetail.attrsMap.MLB16",
      "caption" : "Is the mother part of Nested Study?",
      "width" : "40px",
      "type" : "span"
    } ],
    "visitFields" : [ [ {
      "name" : "visit.visitDate",
      "baseField" : "visit.visitDate"
    } ] ],
    "specimenFields" : [ {
      "title" : "Collection Event",
      "criteria" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "==",
          "value" : "'New'"
        } ]
      },
      "enableCofrc" : false,
      "fields" : [ {
        "name" : "specimen.label",
        "baseField" : "specimen.label",
        "type" : "span"
      }, {
        "name" : "specimen.type",
        "baseField" : "specimen.type",
        "type" : "span"
      }, {
        "name" : "specimen.initialQty",
        "baseField" : "specimen.initialQty"
      }, {
        "name" : "specimen.collectionEvent.user",
        "baseField" : "specimen.collectionEvent.user"
      }, {
        "name" : "specimen.collectionEvent.time",
        "baseField" : "specimen.collectionEvent.time"
      } ]
    }, {
      "title" : "Maternal Urine Type",
      "criteria" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "==",
          "value" : "'New'"
        }, {
          "field" : "specimen.type",
          "op" : "==",
          "value" : "'Urine, random'"
        } ]
      },
      "fields" : [ {
        "name" : "specimen.label",
        "baseField" : "specimen.label",
        "type" : "span"
      }, {
        "name" : "specimen.type",
        "baseField" : "specimen.type",
        "type" : "span"
      }, {
        "name" : "specimen.extensionDetail.attrsMap.DD2",
        "baseField" : "specimen.extensionDetail.attrsMap.DD2"
      } ]
    }, {
      "title" : "Maternal Breast Expression Type",
      "criteria" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "==",
          "value" : "'New'"
        }, {
          "field" : "specimen.type",
          "op" : "==",
          "value" : "'Breast Milk'"
        } ]
      },
      "enableCofrc" : false,
      "fields" : [ {
        "name" : "specimen.label",
        "baseField" : "specimen.label",
        "type" : "span"
      }, {
        "name" : "specimen.type",
        "baseField" : "specimen.type",
        "type" : "span"
      }, {
        "name" : "specimen.extensionDetail.attrsMap.DD3",
        "baseField" : "specimen.extensionDetail.attrsMap.DD3"
      } ]
    }, {
      "title" : "Urine Aliquot Details",
      "criteria" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "==",
          "value" : "'Aliquot'"
        }, {
          "field" : "specimen.type",
          "op" : "==",
          "value" : "'Urine, random'"
        } ]
      },
      "enableCofrc" : true,
      "fields" : [ {
        "name" : "specimen.label",
        "baseField" : "specimen.label",
        "type" : "span"
      }, {
        "name" : "specimen.type",
        "baseField" : "specimen.type",
        "type" : "span"
      }, {
        "name" : "specimen.initialQty",
        "baseField" : "specimen.initialQty"
      }, {
        "name" : "specimen.storageLocation",
        "baseField" : "specimen.storageLocation"
      }, {
        "name" : "events.SpecimenFrozenEvent.frozenMethod",
        "baseField" : "specimen.events.SpecimenFrozenEvent.frozenMethod",
        "hideColumn" : true
      }, {
        "name" : "events.SpecimenFrozenEvent.time",
        "baseField" : "specimen.events.SpecimenFrozenEvent.time"
      } ]
    }, {
      "title" : "Breast Milk Aliquot Details",
      "criteria" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "==",
          "value" : "'Aliquot'"
        }, {
          "field" : "specimen.type",
          "op" : "==",
          "value" : "'Breast Milk'"
        } ]
      },
      "enableCofrc" : true,
      "fields" : [ {
        "name" : "specimen.label",
        "baseField" : "specimen.label",
        "type" : "span"
      }, {
        "name" : "specimen.type",
        "baseField" : "specimen.type",
        "type" : "span"
      }, {
        "name" : "specimen.initialQty",
        "baseField" : "specimen.initialQty"
      }, {
        "name" : "specimen.storageLocation",
        "baseField" : "specimen.storageLocation"
      }, {
        "name" : "events.SpecimenFrozenEvent.frozenMethod",
        "baseField" : "specimen.events.SpecimenFrozenEvent.frozenMethod",
        "hideColumn" : true
      }, {
        "name" : "events.SpecimenFrozenEvent.time",
        "baseField" : "specimen.events.SpecimenFrozenEvent.time"
      } ]
    } ],
    "showPrintLabels" : false,
    "missedReasonReq" : false,
    "boxScanning" : true,
    "boxLayouts" : [ {
      "rows" : 8,
      "columns" : 12,
      "newRowOnChange" : [ "ppid" ],
      "cellWidth" : "200px",
      "criteria" : {
        "op" : "OR",
        "rules" : [ {
          "field" : "specimen.type",
          "op" : "==",
          "value" : "'Serum'"
        } ]
      }
    }, {
      "rows" : 6,
      "columns" : 8,
      "newRowOnChange" : [ "ppid" ],
      "cellWidth" : "200px",
      "criteria" : {
        "op" : "OR",
        "rules" : [ {
          "field" : "specimen.type",
          "op" : "==",
          "value" : "'Plasma, Lith Hep'"
        } ]
      }
    }, {
      "rows" : 8,
      "columns" : 8,
      "newRowOnChange" : [ "ppid" ],
      "cellWidth" : "200px",
      "criteria" : {
        "op" : "OR",
        "rules" : [ {
          "field" : "specimen.type",
          "op" : "==",
          "value" : "'Breast Milk'"
        } ]
      }
    }, {
      "rows" : 10,
      "columns" : 10,
      "newRowOnChange" : [ "ppid" ],
      "cellWidth" : "200px",
      "criteria" : {
        "op" : "OR",
        "rules" : [ {
          "field" : "specimen.type",
          "op" : "==",
          "value" : "'Urine, random'"
        } ]
      }
    } ],
    "emailNotifs" : { },
    "spmnScanning" : { }
  }
}, {
  "name" : "dictionary",
  "view" : null,
  "ctrl" : null,
  "data" : {
    "fields" : [ {
      "name" : "cpr.ppid",
      "caption" : "ORIGINS Pregnancy Number",
      "type" : "text",
      "optional" : false,
      "showIf" : {
        "op" : "OR",
        "rules" : [ {
          "field" : "cp.ppidFmt",
          "op" : "not_exist"
        }, {
          "field" : "cp.manualPpidEnabled",
          "op" : "exists"
        } ]
      }
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.NT28",
      "caption" : "ORIGINS Unique ID",
      "type" : "text",
      "optional" : true
    }, {
      "name" : "cpr.participant.birthDate",
      "caption" : "Date of Birth",
      "type" : "date",
      "dateOnly" : true,
      "optional" : true
    }, {
      "name" : "cpr.registrationDate",
      "caption" : "Registration Date",
      "type" : "date",
      "dateOnly" : true,
      "optional" : true,
      "defaultValue" : "current_date"
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.DP3",
      "caption" : "Estimated Date of Delivery",
      "type" : "date",
      "optional" : true
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.DD20",
      "caption" : "Birthing Hospital",
      "type" : "dropdown",
      "optional" : true,
      "listSource" : {
        "apiUrl" : "forms/permissible-values",
        "selectProp" : "value",
        "displayProp" : "value",
        "queryParams" : {
          "dynamic" : { },
          "static" : {
            "formName" : "participantInfoForm",
            "controlName" : "DD20"
          }
        }
      }
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.ST29",
      "caption" : "Please specify other Hospital",
      "type" : "text",
      "optional" : true
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.DD13",
      "caption" : "Obstetrician",
      "type" : "dropdown",
      "optional" : true,
      "listSource" : {
        "apiUrl" : "forms/permissible-values",
        "selectProp" : "value",
        "displayProp" : "value",
        "queryParams" : {
          "dynamic" : { },
          "static" : {
            "formName" : "participantInfoForm",
            "controlName" : "DD13"
          }
        }
      },
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "cpr.participant.extensionDetail.attrsMap.DD20",
          "op" : "==",
          "value" : "'JHC Private'"
        } ]
      }
    }, {
      "name" : "cpr.participant.deathDate",
      "caption" : "Deceased Date",
      "type" : "date",
      "optional" : true,
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "cpr.participant.vitalStatus",
          "op" : "==",
          "value" : "'Deceased'"
        } ]
      },
      "showInOverviewIf" : "useShowIf"
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.DD5",
      "caption" : "ORIGINS Study Status",
      "type" : "dropdown",
      "optional" : true,
      "listSource" : {
        "apiUrl" : "forms/permissible-values",
        "selectProp" : "value",
        "displayProp" : "value",
        "queryParams" : {
          "dynamic" : { },
          "static" : {
            "formName" : "participantInfoForm",
            "controlName" : "DD5"
          }
        }
      }
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.DP6",
      "caption" : "Date of withdrawal",
      "type" : "date",
      "optional" : true,
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "cpr.participant.extensionDetail.attrsMap.DD5",
          "op" : "==",
          "value" : "'Withdrawn'"
        } ]
      },
      "showInOverviewIf" : "!!cpr.participant.extensionDetail.attrsMap.DP6"
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.DD7",
      "caption" : "Level of Withdrawal",
      "type" : "dropdown",
      "optional" : true,
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "cpr.participant.extensionDetail.attrsMap.DD5",
          "op" : "==",
          "value" : "'Withdrawn'"
        } ]
      },
      "listSource" : {
        "apiUrl" : "forms/permissible-values",
        "selectProp" : "value",
        "displayProp" : "value",
        "queryParams" : {
          "dynamic" : { },
          "static" : {
            "formName" : "participantInfoForm",
            "controlName" : "DD7"
          }
        }
      },
      "showInOverviewIf" : "!!cpr.participant.extensionDetail.attrsMap.DD7"
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.DP8",
      "caption" : "Date Samples Destroyed",
      "type" : "date",
      "optional" : true,
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "cpr.participant.extensionDetail.attrsMap.DD5",
          "op" : "==",
          "value" : "'Withdrawn'"
        }, {
          "field" : "cpr.participant.extensionDetail.attrsMap.DD7",
          "op" : "==",
          "value" : "'No further follow-up with samples destroyed'"
        } ]
      },
      "showInOverviewIf" : "!!cpr.participant.extensionDetail.attrsMap.DP8"
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.RB9",
      "caption" : "Has the mother consented to DNA analysis?",
      "type" : "radio",
      "optional" : true,
      "options" : [ "Yes", "No" ]
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.DD11",
      "caption" : "Enrolment Gestation",
      "type" : "dropdown",
      "optional" : true,
      "listSource" : {
        "apiUrl" : "forms/permissible-values",
        "selectProp" : "value",
        "displayProp" : "value",
        "queryParams" : {
          "dynamic" : { },
          "static" : {
            "formName" : "participantInfoForm",
            "controlName" : "DD11"
          }
        }
      }
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.TA14",
      "caption" : "Comments",
      "type" : "textarea",
      "optional" : true
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.DD15",
      "caption" : "Mother Consent Form Level",
      "type" : "dropdown",
      "optional" : true,
      "listSource" : {
        "apiUrl" : "forms/permissible-values",
        "selectProp" : "value",
        "displayProp" : "value",
        "queryParams" : {
          "dynamic" : { },
          "static" : {
            "formName" : "participantInfoForm",
            "controlName" : "DD15"
          }
        }
      }
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.MLB16",
      "caption" : "Is the mother part of Nested Study?",
      "type" : "dropdown",
      "multiple" : true,
      "optional" : true,
      "listSource" : {
        "apiUrl" : "forms/permissible-values",
        "selectProp" : "value",
        "displayProp" : "value",
        "queryParams" : {
          "dynamic" : { },
          "static" : {
            "formName" : "participantInfoForm",
            "controlName" : "MLB16"
          }
        }
      }
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.ST30",
      "caption" : "SYMBA ID",
      "type" : "date",
      "optional" : true,
      "showInOverviewIf" : "!!cpr.participant.extensionDetail.attrsMap.ST30"
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.ST31",
      "caption" : "BENEFIT ID",
      "type" : "date",
      "optional" : true,
      "showInOverviewIf" : "!!cpr.participant.extensionDetail.attrsMap.ST31"
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.ST32",
      "caption" : "TALK ID",
      "type" : "date",
      "optional" : true,
      "showInOverviewIf" : "!!cpr.participant.extensionDetail.attrsMap.ST32"
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.ST33",
      "caption" : "ENGAGE ID",
      "type" : "date",
      "optional" : true,
      "showInOverviewIf" : "!!cpr.participant.extensionDetail.attrsMap.ST33"
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.ST34",
      "caption" : "AERIAL ID",
      "type" : "date",
      "optional" : true,
      "showInOverviewIf" : "!!cpr.participant.extensionDetail.attrsMap.ST34"
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.ST35",
      "caption" : "PREGGNUT ID",
      "type" : "date",
      "optional" : true,
      "showInOverviewIf" : "!!cpr.participant.extensionDetail.attrsMap.ST35"
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.ST36",
      "caption" : "EARLYMOVES ID",
      "type" : "date",
      "optional" : true,
      "showInOverviewIf" : "!!cpr.participant.extensionDetail.attrsMap.ST36"
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.ST37",
      "caption" : "SCREENS ID",
      "type" : "date",
      "optional" : true,
      "showInOverviewIf" : "!!cpr.participant.extensionDetail.attrsMap.ST37"
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.ST38",
      "caption" : "SUNPREG ID",
      "type" : "date",
      "optional" : true,
      "showInOverviewIf" : "!!cpr.participant.extensionDetail.attrsMap.ST38"
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.ST39",
      "caption" : "ACE ID",
      "type" : "date",
      "optional" : true,
      "showInOverviewIf" : "!!cpr.participant.extensionDetail.attrsMap.ST39"
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.ST40",
      "caption" : "MMM ID",
      "type" : "date",
      "optional" : true,
      "showInOverviewIf" : "!!cpr.participant.extensionDetail.attrsMap.ST40"
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.ST41",
      "caption" : "CUB ID",
      "type" : "date",
      "optional" : true,
      "showInOverviewIf" : "!!cpr.participant.extensionDetail.attrsMap.ST41"
    }, {
      "name" : "cpr.participant.extensionDetail.attrsMap.ST42",
      "caption" : "COCOON ID",
      "type" : "date",
      "optional" : true,
      "showInOverviewIf" : "!!cpr.participant.extensionDetail.attrsMap.ST42"
    }, {
      "name" : "visit.name",
      "caption" : "Visit Name",
      "type" : "text",
      "optional" : true,
      "showIf" : {
        "op" : "OR",
        "rules" : [ {
          "field" : "cp.visitNameFmt",
          "op" : "not_exist"
        }, {
          "field" : "cp.manualVisitNameEnabled",
          "op" : "exists"
        } ]
      }
    }, {
      "name" : "visit.status",
      "caption" : "Status",
      "type" : "dropdown",
      "optional" : true,
      "listSource" : {
        "options" : [ {
          "value" : "Pending"
        }, {
          "value" : "Missed Collection"
        }, {
          "value" : "Complete"
        } ],
        "displayProp" : "value",
        "selectProp" : "value"
      }
    }, {
      "name" : "visit.missedBy",
      "caption" : "Missed By",
      "type" : "user",
      "defaultValue" : "current_user",
      "optional" : true,
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "visit.status",
          "op" : "==",
          "value" : "'Missed Collection'"
        } ]
      },
      "showInOverviewIf" : "useShowIf"
    }, {
      "name" : "visit.missedReason",
      "caption" : "Missed Reason",
      "type" : "pvs",
      "attr" : "missed-visit-reason",
      "optional" : true,
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "visit.status",
          "op" : "==",
          "value" : "'Missed Collection'"
        } ]
      },
      "showInOverviewIf" : "useShowIf"
    }, {
      "name" : "visit.visitDate",
      "caption" : "Visit Date",
      "type" : "date",
      "defaultValue" : "current_date",
      "optional" : false
    }, {
      "name" : "visit.site",
      "caption" : "Site",
      "type" : "dropdown",
      "multiple" : false,
      "optional" : false,
      "listSource" : {
        "apiUrl" : "sites",
        "displayProp" : "name",
        "selectProp" : "name",
        "queryParams" : {
          "dynamic" : { },
          "static" : {
            "listAll" : true
          }
        }
      },
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "visit.status",
          "op" : "!=",
          "value" : "'Missed Collection'"
        } ]
      }
    }, {
      "name" : "visit.clinicalDiagnoses",
      "caption" : "Clinical Diagnoses",
      "type" : "pvs",
      "attr" : "clinical_diagnosis",
      "optional" : true,
      "multiple" : true,
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "visit.status",
          "op" : "!=",
          "value" : "'Missed Collection'"
        } ]
      }
    }, {
      "name" : "visit.clinicalStatus",
      "caption" : "Clinical Status",
      "type" : "pvs",
      "attr" : "clinical-status",
      "optional" : true,
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "visit.status",
          "op" : "!=",
          "value" : "'Missed Collection'"
        } ]
      }
    }, {
      "name" : "visit.surgicalPathologyNumber",
      "caption" : "Surgical Pathology Number",
      "type" : "text",
      "optional" : true,
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "visit.status",
          "op" : "!=",
          "value" : "'Missed Collection'"
        } ]
      }
    }, {
      "name" : "visit.comments",
      "caption" : "Comments",
      "type" : "textarea",
      "optional" : true
    }, {
      "name" : "specimen.label",
      "caption" : "Label",
      "type" : "text",
      "optional" : true,
      "showIf" : {
        "op" : "OR",
        "rules" : [ {
          "field" : "specimen.labelFmt",
          "op" : "not_exist"
        }, {
          "field" : "cp.manualSpecLabelEnabled",
          "op" : "exists"
        } ]
      }
    }, {
      "name" : "specimen.barcode",
      "caption" : "Barcode",
      "type" : "text",
      "optional" : true
    }, {
      "name" : "specimen.lineage",
      "caption" : "Lineage",
      "type" : "radio",
      "optional" : false,
      "options" : [ {
        "value" : "New",
        "caption" : "New"
      }, {
        "value" : "Derived",
        "caption" : "Derived"
      }, {
        "value" : "Aliquot",
        "caption" : "Aliquot"
      } ]
    }, {
      "name" : "specimen.status",
      "caption" : "Collection Status",
      "type" : "dropdown",
      "optional" : true,
      "listSource" : {
        "selectProp" : "value",
        "displayProp" : "value",
        "options" : [ {
          "value" : "Collected"
        }, {
          "value" : "Missed Collection"
        }, {
          "value" : "Pending"
        } ]
      }
    }, {
      "name" : "specimen.type",
      "caption" : "Type",
      "type" : "specimen-type",
      "specimen" : "specimen",
      "optional" : false,
      "defaultValue" : "Not Specified",
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "!=",
          "value" : "'Aliquot'"
        } ]
      }
    }, {
      "name" : "specimen.initialQty",
      "caption" : "Initial Quantity",
      "type" : "specimen-quantity",
      "specimen" : "specimen",
      "optional" : true
    }, {
      "name" : "specimen.availableQty",
      "caption" : "Available Quantity",
      "type" : "specimen-quantity",
      "showInOverviewIf" : "useShowIf",
      "specimen" : "specimen",
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "==",
          "value" : "'Aliquot'"
        } ]
      },
      "optional" : true
    }, {
      "name" : "specimen.concentration",
      "caption" : "Concentration",
      "type" : "specimen-quantity",
      "specimen" : "specimen",
      "measure" : "concentration",
      "pattern" : "/^([0-9]+|[0-9]*\\.?[0-9]+[e]?[+-]?[0-9]*)$/",
      "optional" : true
    }, {
      "name" : "specimen.parentLabel",
      "caption" : "Parent Specimen",
      "type" : "text",
      "optional" : false,
      "url" : "specimen({specimenId: specimen.parentId})",
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "!=",
          "value" : "'New'"
        } ]
      },
      "modelOpts" : {
        "updateOn" : "blur"
      },
      "showInOverviewIf" : "useShowIf"
    }, {
      "name" : "specimen.biohazards",
      "caption" : "Biohazards",
      "type" : "pvs",
      "multiple" : true,
      "attr" : "specimen-biohazard",
      "optional" : true,
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "==",
          "value" : "'New'"
        } ]
      },
      "showInOverviewIf" : "useShowIf"
    }, {
      "name" : "specimen.extensionDetail.attrsMap.DD5",
      "caption" : "Method of transport",
      "type" : "dropdown",
      "optional" : true,
      "listSource" : {
        "apiUrl" : "forms/permissible-values",
        "selectProp" : "value",
        "displayProp" : "value",
        "queryParams" : {
          "dynamic" : { },
          "static" : {
            "formName" : "maternalUrineAndBreastMilk",
            "controlName" : "DD5"
          }
        }
      }
    }, {
      "name" : "specimen.extensionDetail.attrsMap.DD6",
      "caption" : "Collection Details",
      "type" : "dropdown",
      "showInOverviewIf" : "!!specimen.extensionDetail.attrsMap.DD6",
      "optional" : true,
      "listSource" : {
        "apiUrl" : "forms/permissible-values",
        "selectProp" : "value",
        "displayProp" : "value",
        "queryParams" : {
          "dynamic" : { },
          "static" : {
            "formName" : "maternalUrineAndBreastMilk",
            "controlName" : "DD6"
          }
        }
      }
    }, {
      "name" : "specimen.extensionDetail.attrsMap.DD8",
      "caption" : "Received Details",
      "type" : "dropdown",
      "showInOverviewIf" : "!!specimen.extensionDetail.attrsMap.DD8",
      "optional" : true,
      "listSource" : {
        "apiUrl" : "forms/permissible-values",
        "selectProp" : "value",
        "displayProp" : "value",
        "queryParams" : {
          "dynamic" : { },
          "static" : {
            "formName" : "maternalUrineAndBreastMilk",
            "controlName" : "DD8"
          }
        }
      }
    }, {
      "name" : "specimen.extensionDetail.attrsMap.DD9",
      "caption" : "Processing Details",
      "type" : "dropdown",
      "showInOverviewIf" : "!!specimen.extensionDetail.attrsMap.DD9",
      "optional" : true,
      "listSource" : {
        "apiUrl" : "forms/permissible-values",
        "selectProp" : "value",
        "displayProp" : "value",
        "queryParams" : {
          "dynamic" : { },
          "static" : {
            "formName" : "maternalUrineAndBreastMilk",
            "controlName" : "DD9"
          }
        }
      }
    }, {
      "name" : "specimen.storageLocation",
      "caption" : "Location",
      "type" : "storage-position",
      "optional" : true,
      "cpId" : "specimen.cpId",
      "entity" : "specimen",
      "url" : "container-detail.locations({containerId: specimen.storageLocation.id})",
      "subFields" : [ {
        "name" : "name",
        "caption" : "Container Name"
      }, {
        "name" : "positionY",
        "caption" : "Container Row"
      }, {
        "name" : "positionX",
        "caption" : "Container Column"
      } ]
    }, {
      "name" : "specimen.createdOn",
      "caption" : "Created On",
      "type" : "datetime",
      "optional" : false,
      "copyValueFn" : "function(firstRowVal, currentVal) { if (!!currentVal) { return currentVal; } else { return ''; } }",
      "defaultValue" : "current_date",
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "!=",
          "value" : "'New'"
        } ]
      },
      "showInOverviewIf" : "useShowIf"
    }, {
      "name" : "specimen.createdBy",
      "caption" : "Created By",
      "type" : "user",
      "defaultValue" : "current_user",
      "optional" : true,
      "copyValueFn" : "function(firstRowVal, currentVal) { if (!!currentVal) { return currentVal; } else { return ''; } }",
      "listSource" : {
        "queryParams" : {
          "static" : {
            "excludeType" : "CONTACT"
          }
        }
      }
    }, {
      "name" : "specimen.freezeThawCycles",
      "caption" : "Freeze Thaw Cycles",
      "type" : "text",
      "optional" : true,
      "pattern" : "/^[0-9][0-9]*$/"
    }, {
      "name" : "specimen.incrParentFreezeThaw",
      "caption" : "Increment parent specimen's Freeze/Thaw cycles?",
      "type" : "radio",
      "optional" : true,
      "options" : [ {
        "caption" : "Yes",
        "value" : 1
      }, {
        "caption" : "No",
        "value" : 0
      } ],
      "showInOverviewIf" : "!!specimen.incrParentFreezeThaw"
    }, {
      "name" : "specimen.comments",
      "caption" : "Comments",
      "type" : "textarea",
      "optional" : true
    }, {
      "name" : "specimen.collectionEvent.time",
      "caption" : "Collection Date & Time",
      "type" : "datetime",
      "defaultValue" : "current_date",
      "optional" : true,
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "==",
          "value" : "'New'"
        }, {
          "field" : "specimen.reqId",
          "op" : "not_exist"
        } ]
      },
      "showInOverviewIf" : "useShowIf"
    }, {
      "name" : "specimen.collectionEvent.user",
      "caption" : "Collector",
      "type" : "user",
      "defaultValue" : "current_user",
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "==",
          "value" : "'New'"
        }, {
          "field" : "specimen.reqId",
          "op" : "not_exist"
        } ]
      },
      "showInOverviewIf" : "useShowIf",
      "subFields" : [ {
        "name" : "emailAddress",
        "caption" : "Collector Email Address"
      } ]
    }, {
      "name" : "specimen.collectionEvent.container",
      "caption" : "Collection Container",
      "type" : "pvs",
      "attr" : "collection-container",
      "optional" : true,
      "defaultValue" : "Not Specified",
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "==",
          "value" : "'New'"
        }, {
          "field" : "specimen.reqId",
          "op" : "not_exist"
        } ]
      },
      "showInOverviewIf" : "useShowIf"
    }, {
      "name" : "specimen.collectionEvent.procedure",
      "caption" : "Collection Procedure",
      "type" : "pvs",
      "attr" : "collection-procedure",
      "copyValueFn" : "function(firstRowVal, currentVal) { if (!!currentVal) { return currentVal; } else { return ''; } }",
      "optional" : true,
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "==",
          "value" : "'New'"
        }, {
          "field" : "specimen.reqId",
          "op" : "not_exist"
        } ]
      },
      "showInOverviewIf" : "useShowIf"
    }, {
      "name" : "specimen.receivedEvent.user",
      "caption" : "Receiver",
      "type" : "user",
      "defaultValue" : "current_user",
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "==",
          "value" : "'New'"
        }, {
          "field" : "specimen.reqId",
          "op" : "not_exist"
        } ]
      },
      "showInOverviewIf" : "useShowIf",
      "subFields" : [ {
        "name" : "emailAddress",
        "caption" : "Collector Email Address"
      } ]
    }, {
      "name" : "specimen.receivedEvent.time",
      "caption" : "Received Date & Time",
      "type" : "datetime",
      "defaultValue" : "current_date",
      "optional" : true,
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "==",
          "value" : "'New'"
        }, {
          "field" : "specimen.reqId",
          "op" : "not_exist"
        } ]
      },
      "showInOverviewIf" : "useShowIf"
    }, {
      "name" : "specimen.receivedEvent.receivedQuality",
      "caption" : "Received Quality",
      "type" : "pvs",
      "attr" : "received-quality",
      "defaultValue" : "Acceptable",
      "optional" : true,
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.lineage",
          "op" : "==",
          "value" : "'New'"
        }, {
          "field" : "specimen.reqId",
          "op" : "not_exist"
        } ]
      },
      "showInOverviewIf" : "useShowIf"
    }, {
      "name" : "specimen.externalIds",
      "type" : "collection",
      "fields" : [ {
        "name" : "name",
        "caption" : "External Name",
        "type" : "text",
        "optional" : true
      }, {
        "name" : "value",
        "caption" : "External Value",
        "type" : "text",
        "optional" : true
      } ]
    }, {
      "name" : "specimen.extensionDetail.attrsMap.DD2",
      "caption" : "Urine Type",
      "type" : "dropdown",
      "optional" : true,
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.type",
          "op" : "==",
          "value" : "'Urine'"
        } ]
      },
      "showInOverviewIf" : "useShowIf",
      "listSource" : {
        "apiUrl" : "forms/permissible-values",
        "selectProp" : "value",
        "displayProp" : "value",
        "queryParams" : {
          "dynamic" : { },
          "static" : {
            "formName" : "maternalUrineAndBreastMilk",
            "controlName" : "DD2"
          }
        }
      }
    }, {
      "name" : "specimen.extensionDetail.attrsMap.DD3",
      "caption" : "Breast Milk Expression Type",
      "type" : "dropdown",
      "optional" : true,
      "showIf" : {
        "op" : "AND",
        "rules" : [ {
          "field" : "specimen.type",
          "op" : "==",
          "value" : "'Breast Milk'"
        } ]
      },
      "showInOverviewIf" : "useShowIf",
      "listSource" : {
        "apiUrl" : "forms/permissible-values",
        "selectProp" : "value",
        "displayProp" : "value",
        "queryParams" : {
          "dynamic" : { },
          "static" : {
            "formName" : "maternalUrineAndBreastMilk",
            "controlName" : "DD3"
          }
        }
      }
    }, {
      "name" : "specimen.extensionDetail.attrsMap.NT4",
      "caption" : "Viability",
      "type" : "text",
      "optional" : true,
      "showInOverviewIf" : "!!specimen.extensionDetail.attrsMap.NT4",
      "pattern" : "/^[1-9][0-9]*$/"
    }, {
      "name" : "specimen.events.SpecimenFrozenEvent.time",
      "caption" : "Frozen Time",
      "type" : "datetime",
      "defaultValue" : "current_date"
    }, {
      "name" : "specimen.events.SpecimenFrozenEvent.user",
      "caption" : "Frozen By",
      "type" : "user",
      "defaultValue" : "current_user"
    }, {
      "name" : "specimen.events.SpecimenFrozenEvent.frozenMethod",
      "caption" : "Frozen Method",
      "type" : "pvs",
      "attr" : "frozen_method",
      "defaultValue" : "Not Specified"
    }, {
      "name" : "specimen.events.SpecimenFrozenEvent.comments",
      "caption" : "Frozen Comments",
      "type" : "textarea"
    } ],
    "onValueChange" : {
      "specimen.createdBy" : [ "function(opts) {", "  var user = opts.fns.get(opts.object, opts.field); ", "  opts.viewCtx.setToAllChildren(opts.object, opts.field, user, true); ", "}" ],
      "specimen.createdOn" : [ "function(opts) {", "  var user = opts.fns.get(opts.object, opts.field); ", "  opts.viewCtx.setToAllChildren(opts.object, opts.field, user, true); ", "}" ],
      "specimen.extensionDetail.attrsMap.DD9" : [ "function(opts) {", "  var user = opts.fns.get(opts.object, opts.field); ", "  opts.viewCtx.setToAllChildren(opts.object, opts.field, user, true); ", "}" ]
    }
  }
}, {
  "name" : "visitsTab",
  "view" : null,
  "ctrl" : null,
  "data" : {
    "occurred" : [ {
      "field" : "visit.name",
      "baseField" : "visit.name",
      "width" : "150px"
    }, {
      "field" : "visit.visitDate",
      "baseField" : "visit.visitDate",
      "width" : "100px"
    } ],
    "anticipatedEvents" : [ {
      "rule" : "cpr.participant.extensionDetail.attrsMap.MLB16.indexOf('SYMBA') > -1 && cpr.participant.extensionDetail.attrsMap.MLB16.indexOf('PREGGNUT') > -1",
      "events" : [ "30WK", "20WK", "28WK", "36WK", "Birth", "2M", "4M", "6M", "1Y", "3Y", "5Y", "Sym4Mnth", "Preg4Mnth" ]
    }, {
      "rule" : "cpr.participant.extensionDetail.attrsMap.MLB16.indexOf('SYMBA') > -1 && cpr.participant.extensionDetail.attrsMap.MLB16.indexOf('BENEFIT') > -1",
      "events" : [ "30WK", "20WK", "28WK", "36WK", "Birth", "2M", "4M", "6M", "1Y", "3Y", "5Y", "Sym4Mnth", "Ben4Mnth" ]
    }, {
      "rule" : "cpr.participant.extensionDetail.attrsMap.MLB16.indexOf('PREGGNUT') > -1 && cpr.participant.extensionDetail.attrsMap.MLB16.indexOf('BENEFIT') > -1",
      "events" : [ "30WK", "20WK", "28WK", "36WK", "Birth", "2M", "4M", "6M", "1Y", "3Y", "5Y", "Preg4Mnth", "Ben4Mnth" ]
    }, {
      "rule" : "cpr.participant.extensionDetail.attrsMap.MLB16.indexOf('SYMBA') > -1",
      "events" : [ "30WK", "20WK", "28WK", "36WK", "Birth", "2M", "4M", "6M", "1Y", "3Y", "5Y", "Sym4Mnth" ]
    }, {
      "rule" : "cpr.participant.extensionDetail.attrsMap.MLB16.indexOf('PREGGNUT') > -1",
      "events" : [ "30WK", "20WK", "28WK", "36WK", "Birth", "2M", "4M", "6M", "1Y", "3Y", "5Y", "Preg4Mnth" ]
    }, {
      "rule" : "cpr.participant.extensionDetail.attrsMap.MLB16.indexOf('BENEFIT') > -1",
      "events" : [ "30WK", "20WK", "28WK", "36WK", "Birth", "2M", "4M", "6M", "1Y", "3Y", "5Y", "Ben4Mnth" ]
    }, {
      "rule" : "cpr.participant.extensionDetail.attrsMap.DD15 == 'Full ORIGINS Project Participation'",
      "events" : [ "30WK", "20WK", "28WK", "36WK", "Birth", "2M", "4M", "6M", "1Y", "3Y", "5Y" ]
    }, {
      "rule" : "cpr.participant.extensionDetail.attrsMap.DD15 == 'Routine Data Collection'",
      "events" : [ "30WK" ]
    }, {
      "rule" : "cpr.participant.extensionDetail.attrsMap.DD15 == 'Release of Australian Govt Data only'",
      "events" : [ "None" ]
    }, {
      "rule" : "cpr.participant.extensionDetail.attrsMap.DD15 == null && cpr.participant.extensionDetail.attrsMap.MLB16== null",
      "events" : [ "None" ]
    } ]
  }
}, {
  "name" : "participant-list-view",
  "view" : null,
  "ctrl" : null,
  "data" : {
    "columns" : [ {
      "expr" : "Participant.ppid",
      "caption" : "ORIGINS Pregnancy Number",
      "metainfo" : {
        "showLink" : "true"
      }
    }, {
      "expr" : "Participant.customFields.participantInfoForm.oRIGINSUniqueID",
      "caption" : "ORIGINS Unique ID"
    }, {
      "expr" : "Participant.regDate",
      "caption" : "Registration Date"
    }, {
      "expr" : "Participant.customFields.participantInfoForm.participantStudyStatus",
      "caption" : "Participant Study Status"
    }, {
      "expr" : "Participant.customFields.participantInfoForm.participantConsentFormLevel",
      "caption" : "Participant Consent Form Level"
    }, {
      "expr" : "concat(years_between(current_date(), Participant.dateOfBirth), \" yrs\")",
      "caption" : "Age"
    } ],
    "criteria" : "Participant.id exists",
    "orderBy" : [ {
      "expr" : "Participant.regDate",
      "direction" : "desc"
    } ],
    "filters" : [ {
      "expr" : "Participant.ppid",
      "caption" : "ORIGINS Pregnancy Number",
      "searchType" : "contains"
    }, {
      "expr" : "Participant.customFields.participantInfoForm.oRIGINSUniqueID",
      "caption" : "Unique ID"
    }, {
      "expr" : "Participant.customFields.participantInfoForm.participantStudyStatus",
      "caption" : "Participant Study Status"
    }, {
      "expr" : "Participant.customFields.participantInfoForm.participantConsentFormLevel",
      "caption" : "Participant Consent Form Level"
    }, {
      "expr" : "Participant.regDate",
      "caption" : "Registration Date"
    }, {
      "expr" : "years_between(current_date(), Participant.dateOfBirth)",
      "caption" : "Age",
      "temporal" : "true",
      "metainfo" : {
        "phi" : "true"
      }
    } ]
  }
}, {
  "name" : "specimenTree",
  "view" : null,
  "ctrl" : null,
  "data" : {
    "defaultExpandDepth" : 0,
    "fields" : [ {
      "name" : "specimen",
      "caption" : "Description",
      "type" : "specimen-description",
      "width" : "30%"
    }, {
      "name" : "specimen.label",
      "baseField" : "specimen.label",
      "width" : "20%"
    }, {
      "name" : "specimen.storageLocation",
      "baseField" : "specimen.storageLocation",
      "width" : "20%"
    }, {
      "name" : "specimen.availableQty",
      "baseField" : "specimen.availableQty",
      "caption" : "Volume",
      "width" : "10%"
    } ]
  }
}, {
  "name" : "specimen-list-view",
  "view" : null,
  "ctrl" : null,
  "data" : {
    "columns" : [ {
      "expr" : "Specimen.label",
      "caption" : "Label",
      "metainfo" : {
        "showLink" : "true"
      }
    }, {
      "expr" : "Specimen.createdOn",
      "caption" : "Created On"
    }, {
      "expr" : "Specimen.type",
      "caption" : "Type"
    }, {
      "expr" : "Specimen.availableQty",
      "caption" : "Quantity",
      "metainfo" : {
        "showUnit" : "true",
        "measure" : "quantity"
      }
    }, {
      "expr" : "concat(Specimen.specimenPosition.containerName, concat_ws(\"\", concat(\" (\", Specimen.specimenPosition.formattedPos, \")\")))",
      "caption" : "Location"
    } ],
    "criteria" : "Specimen.collectionStatus = \"Collected\" and Specimen.activityStatus = \"Active\"",
    "orderBy" : [ {
      "expr" : "Specimen.createdOn",
      "direction" : "desc"
    } ],
    "filters" : [ {
      "expr" : "Specimen.label",
      "caption" : "Label",
      "searchType" : "contains"
    }, {
      "expr" : "Specimen.lineage",
      "caption" : "Lineage"
    }, {
      "expr" : "Specimen.createdOn",
      "caption" : "Created On"
    }, {
      "expr" : "Specimen.type",
      "caption" : "Type"
    }, {
      "expr" : "Specimen.availableQty",
      "caption" : "Quantity"
    } ]
  }
} ]

Simple Data Entry (SDE)

Create planned specimens using SDE

SDE deposit mode allows the user to create multiple specimens in one go. This can even be across patients and visits. For creating planned specimens (as per requirements defined in collection protocol), you must include the 'Requirement Code' within the deposit screen. This will allow the system to map the specimen being created to the requirement in the CP.

Define the requirement code in the dictionary as below, which will be displayed as a dropdown of existing codes within that event of the CP:

 Click here to expand...
{
  "name": "specimen.reqCode",
  "caption": "Requirement",
  "type": "dropdown",
  "listSource": {
    "apiUrl": "specimen-requirements",
    "selectProp": "code",
    "displayProp": "code",
    "queryParams": {
      "dynamic": {
        "eventId": "visit.eventId"
      },
      "static": {
        "includeChildReqs": false	
      }
    }
  },
  "optional": false
}

The below example shows how the requirement code can be used within the deposit table of SDE. The fields defined in the requirement can be skipped here so that the value has defaulted from the requirement. For example, the specimen type is not included in the below example so that the system will take it from the corresponding requirement.


Screenshot:

Create container along with specimen

In the screen where specimens are collected, you have an option to create containers like boxes too. This is useful for a workflow where a lab receives a box of specimens, and they want to store the box as is in their freezers. This workflow reduces the step of creating the empty box first.

 Click here to view example JSON...

Example JSON to create container and specimens in one go:

[
    {
      "name": "dictionary",
      "data": {
        "fields": [
          {
            "name": "cpr.registrationDate",
            "caption": "Registration Date",
            "type": "date",
            "optional": true
          },
          {
            "name": "visit.eventLabel",
            "caption": "Event Label",
            "type": "dropdown",
            "multiple": false,
            "optional": false,
            "listSource": {
              "apiUrl": "collection-protocol-events",
              "displayProp": "eventLabel",
              "selectProp": "eventLabel",
              "queryParams": {
                "dynamic": {
                  "cpId": "visit.cpId"
                },
                "static": {}
              }
            }
          },
          {
            "name": "visit.site",
            "caption": "Site",
            "type": "dropdown",
            "multiple": false,
            "optional": true,
            "listSource": {
              "apiUrl": "sites",
              "displayProp": "name",
              "selectProp": "name",
              "queryParams": {
                "dynamic": {},
                "static": {
                  "listAll": true
                }
              }
            }
          },
          {
            "name": "visit.visitDate",
            "caption": "Visit Date",
            "type": "date",
            "optional": false
          },
          {
            "name": "specimen.lineage",
            "caption": "Lineage",
            "type": "radio",
            "optional": false,
            "options": [
              "New",
              "Derived",
              "Aliquot"
            ]
          },
          {
            "name": "specimen.label",
            "caption": "Sample ID",
            "type": "text",
            "optional": false,
            "showIf": {
              "op": "AND",
              "rules": [
                {
                  "field": "specimen.lineage",
                  "op": "!=",
                  "value": "'Aliquot'"
                }
              ]
            }
          },
          {
            "name": "specimen.parentLabel",
            "caption": "Parent Sample ID",
            "type": "text",
            "optional": false,
            "showIf": {
              "op": "AND",
              "rules": [
                {
                  "field": "specimen.lineage",
                  "op": "!=",
                  "value": "'New'"
                }
              ]
            },
            "modelOpts": {
              "updateOn": "blur"
            }
          },
          {
            "name": "specimen.createdOn",
            "caption": "Created On",
            "type": "date",
            "optional": false
          },
          {
            "name": "specimen.type",
            "caption": "Type",
            "type": "specimen-type",
            "optional": false,
            "specimen": "specimen",
            "showIf": {
              "op": "AND",
              "rules": [
                {
                  "field": "specimen.lineage",
                  "op": "!=",
                  "value": "'Aliquot'"
                }
              ]
            }
          },
          {
            "name": "specimen.initialQty",
            "caption": "Initial Quantity",
            "type": "specimen-quantity",
            "specimen": "specimen",
            "optional": false
          },
          {
            "name": "specimen.availableQty",
            "caption": "Available Quantity",
            "type": "specimen-quantity",
            "specimen": "specimen",
            "optional": false
          },
          {
            "name": "specimen.comments",
            "caption": "Comments",
            "type": "text",
            "optional": true
          },
          {
            "name": "specimen.containerLocation",
            "caption": "Parent Container",
            "type": "storage-position",
            "optional": true,
            "cpId": "specimen.cpId",
            "entity": "specimen",
            "subFields": [
              {
                "name": "name",
                "caption": "Parent Container Name"
              },
              {
                "name": "positionY",
                "caption": "Parent Container Row"
              },
              {
                "name": "positionX",
                "caption": "Parent Container Column"
              }
            ]
          },
          {
            "name": "specimen.containerTypeName",
            "caption": "Container Type",
            "type": "dropdown",
            "optional": true,
            "listSource": {
              "apiUrl": "container-types",
              "selectProp": "name",
              "displayProp": "name",
              "queryParams": {
                "dynamic": {},
                "static": {}
              }
            }
          },
          {
            "name": "specimen.storageLocation",
            "caption": "Location",
            "type": "storage-position",
            "optional": true,
            "cpId": "specimen.cpId",
            "entity": "specimen",
            "subFields": [
              {
                "name": "name",
                "caption": "Container Name"
              },
              {
                "name": "positionY",
                "caption": "Container Row"
              },
              {
                "name": "positionX",
                "caption": "Container Column"
              }
            ]
          },
          {
            "name": "specimen.collectionEvent.user",
            "caption": "Collector",
            "type": "user",
            "optional": false,
            "showIf": {
              "op": "AND",
              "rules": [
                {
                  "field": "specimen.lineage",
                  "op": "==",
                  "value": "'New'"
                }
              ]
            },
            "subFields": [
              {
                "name": "emailAddress",
                "caption": "Collector Email Address"
              }
            ]
          },
          {
            "name": "specimen.collectionEvent.time",
            "caption": "Collection Date",
            "type": "datetime",
            "optional": false
          },
          {
            "name": "specimen.collectionEvent.container",
            "caption": "Collection Container",
            "type": "pvs",
            "attr": "collection-container",
            "optional": true,
            "showIf": {
              "op": "AND",
              "rules": [
                {
                  "field": "specimen.lineage",
                  "op": "==",
                  "value": "'New'"
                }
              ]
            }
          },
          {
            "name": "specimen.collectionEvent.procedure",
            "caption": "Collection Procedure",
            "type": "pvs",
            "attr": "collection-procedure",
            "optional": true,
            "showIf": {
              "op": "AND",
              "rules": [
                {
                  "field": "specimen.lineage",
                  "op": "==",
                  "value": "'New'"
                }
              ]
            }
          },
          {
            "name": "specimen.receivedEvent.user",
            "caption": "Receiver",
            "type": "user",
            "optional": false,
            "showIf": {
              "op": "AND",
              "rules": [
                {
                  "field": "specimen.lineage",
                  "op": "==",
                  "value": "'New'"
                }
              ]
            },
            "subFields": [
              {
                "name": "emailAddress",
                "caption": "Receiver Email Address"
              }
            ]
          },
          {
            "name": "specimen.receivedEvent.time",
            "caption": "Received Date",
            "type": "datetime",
            "optional": false
          },
          {
            "name": "specimen.receivedEvent.receivedQuality",
            "caption": "Received Quality",
            "type": "pvs",
            "attr": "receive_quality",
            "optional": true,
            "showIf": {
              "op": "AND",
              "rules": [
                {
                  "field": "specimen.lineage",
                  "op": "==",
                  "value": "'New'"
                }
              ]
            }
          }
        ]
      }
    },
    {
      "name": "common",
      "view": null,
      "ctrl": null,
      "data": {
        "listView": "cp-specimens"
      }
    },
    {
      "name": "sde",
      "data": {
        "enableDeposits": "true",
        "singlePatientSamples": [
          
            {
            "name": "specimen.storageLocation.name",
            "caption": "Boxid",
            "type": "text",
            "optional": true
            },
            {
            "name": "specimen.storageLocation.positionY",
            "caption": "Row",
            "type": "text",
            "optional": true
            },
            {
            "name": "specimen.storageLocation.positionX",
            "caption": "Column",
            "type": "text",
            "optional": true
            },
            
            {
            "name": "specimen.label",
            "baseField": "specimen.label"
          },
          {
            "name": "specimen.containerLocation",
            "baseField": "specimen.containerLocation"
          },
          {
            "name": "specimen.containerTypeName",
            "baseField": "specimen.containerTypeName"
          },
          {
            "name": "visit.site",
            "baseField": "visit.site"
          },
          {
            "name": "specimen.type",
            "baseField": "specimen.type"
          },
          {
            "name": "specimen.initialQty",
            "baseField": "specimen.initialQty"
          },
          {
            "name": "specimen.comments",
            "baseField": "specimen.comments"
          },
          
          {
            "name": "specimen.collectionEvent.user",
            "baseField": "specimen.collectionEvent.user"
          },
          {
            "name": "specimen.collectionEvent.time",
            "baseField": "specimen.collectionEvent.time"
          },
          {
            "name": "specimen.receivedEvent.user",
            "baseField": "specimen.receivedEvent.user"
          },
          {
            "name": "specimen.receivedEvent.time",
            "baseField": "specimen.receivedEvent.time"
          }
        ],
        "multiplePatientSamples": {
          "enableFilter": true,
          "groups": [
            {
              "title": "Collection Details",
              "fields": [
                [
                  {
                    "name": "specimen.collectionEvent.user",
                    "baseField": "specimen.collectionEvent.user",
                    "width": "20%"
                  },
                  {
                    "name": "specimen.collectionEvent.time",
                    "baseField": "specimen.collectionEvent.time",
                    "width": "20%"
                  },
                  {
                    "name": "visit.site",
                    "baseField": "visit.site",
                    "width": "20%"
                  }
                ]
              ]
            },
            {
              "title": "Receive Details",
              "fields": [
                [
                  {
                    "name": "specimen.receivedEvent.user",
                    "baseField": "specimen.receivedEvent.user",
                    "width": "20%"
                  },
                  {
                    "name": "specimen.receivedEvent.time",
                    "baseField": "specimen.receivedEvent.time",
                    "width": "20%"
                  }
                ]
              ]
            }
          ],
          "table": [
            {
              "name": "specimen.label",
              "baseField": "specimen.label"
            },
            {
              "name": "specimen.type",
              "baseField": "specimen.type",
              "minWidth": "180px"
            },
            {
              "name": "specimen.initialQty",
              "baseField": "specimen.initialQty",
              "minWidth": "100px"
            },
            {
              "name": "specimen.containerLocation.name",
              "caption": "Parent Container Name",
              "type": "text",
              "optional": true,
              "minWidth": "200px"
            },
            {
              "name": "specimen.containerTypeName",
              "baseField": "specimen.containerTypeName"
            },
            {
            "name": "specimen.storageLocation.name",
            "caption": "Container Name",
            "type": "text",
            "optional": true,
             "minWidth": "200px"
            },
            {
            "name": "specimen.storageLocation.positionY",
            "caption": "Container Row",
            "type": "text",
            "optional": true,
             "minWidth": "50px"
            },
            {
            "name": "specimen.storageLocation.positionX",
            "caption": "Container Column",
            "type": "text",
            "optional": true,
             "minWidth": "50px"
            },
            {
              "name": "specimen.comments",
              "baseField": "specimen.comments",
              "width": "20%"
            }
          ]
        }
      }
    },
    {
      "name": "participant-list-view",
      "view": null,
      "ctrl": null,
      "data": {
        "columns": [
          {
            "expr": "Participant.ppid",
            "caption": "Participant Protocol ID",
            "metainfo": {
              "showLink": "true"
            }
          },
          {
            "expr": "concat_ws(\" \", Participant.firstName, Participant.lastName)",
            "caption": "Name"
          },
          {
            "expr": "Participant.regDate",
            "caption": "Registration Date"
          },
          {
            "expr": "concat(years_between(current_date(), Participant.dateOfBirth), \" yrs\")",
            "caption": "Age"
          }
        ],
        "criteria": "Participant.id exists",
        "orderBy": [
          {
            "expr": "Participant.regDate",
            "direction": "desc"
          }
        ],
        "filters": [
          {
            "expr": "Participant.ppid",
            "caption": "Participant Protocol ID",
            "searchType": "contains"
          },
          {
            "expr": "concat_ws(\" \", Participant.firstName, Participant.lastName)",
            "caption": "Name",
            "metainfo": {
              "phi": "true"
            }
          },
          {
            "expr": "Participant.regDate",
            "caption": "Registration Date"
          },
          {
            "expr": "years_between(current_date(), Participant.dateOfBirth)",
            "caption": "Age",
            "temporal": "true",
            "metainfo": {
              "phi": "true"
            }
          }
        ]
      }
    },
    {
      "name": "specimen-list-view",
      "view": null,
      "ctrl": null,
      "data": {
        "columns": [
          {
            "expr": "Specimen.label",
            "caption": "Label",
            "metainfo": {
              "showLink": "true"
            }
          },
          {
            "expr": "Specimen.createdOn",
            "caption": "Created On"
          },
          {
            "expr": "Specimen.type",
            "caption": "Type"
          },
          {
            "expr": "Specimen.availableQty",
            "caption": "Quantity",
            "metainfo": {
              "showUnit": "true",
              "measure": "quantity"
            }
          },
          {
            "expr": "concat(Specimen.specimenPosition.containerName, concat_ws(\"\", concat(\" (\", Specimen.specimenPosition.formattedPos, \")\")))",
            "caption": "Location"
          }
        ],
        "criteria": "Specimen.collectionStatus = \"Collected\"",
        "orderBy": [
          {
            "expr": "Specimen.createdOn",
            "direction": "desc"
          }
        ],
        "filters": [
          {
            "expr": "Specimen.label",
            "caption": "Label",
            "searchType": "contains"
          },
          {
            "expr": "Specimen.lineage",
            "caption": "Lineage"
          },
          {
            "expr": "Specimen.createdOn",
            "caption": "Created On"
          },
          {
            "expr": "Specimen.type",
            "caption": "Type"
          },
          {
            "expr": "Specimen.availableQty",
            "caption": "Quantity"
          }
        ]
      }
    }
]