Overview The specimen list page columns and filters are configurable for all the participant and specimen centric CPs. This page outlines how to configure the specimen list view using JSON, providing the necessary examples and configurations to help users adapt the view as per their specific requirements. Shown in the screenshot below is a list of all specimens collected under a protocol.
Default Configuration This is the default configuration for the specimen list view shipped with OpenSpecimen.
Click here to view the code...
[
{
"name": "specimen-list-view",
"data": {
"icons": [
"<os-specimen-status-icon specimen=\"row\"></os-specimen-status-icon>"
],
"columns": [
{
"expr": "Specimen.label",
"caption": "Label",
"metainfo": {
"showLink": "true"
}
},
{
"expr": "Specimen.createdOn",
"caption": "Created On"
},
{
"expr": "Specimen.type",
"caption": "Type"
},
{
"expr": "Specimen.tissueSite",
"caption": "Anatomic Site"
},
{
"expr": "Specimen.pathologicalStatus",
"caption": "Pathology Status"
},
{
"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.tissueSite",
"caption": "Anatomic Site"
},
{
"expr": "Specimen.pathologicalStatus",
"caption": "Pathology Status"
},
{
"expr": "Specimen.availableQty",
"caption": "Quantity"
},
{
"expr": "Specimen.availabilityStatus",
"caption": "Status",
"values": [
"Available",
"Closed",
"Distributed",
"Missed Collection",
"Not Collected",
"Pending",
"Reserved"
]
}
]
}
}
]
Customise List View The specimen list view is customizable to your needs through JSON configurations. By adjusting columns, sorting orders, filtering options, and conditional criteria, you can optimise the way specimen data is displayed. You can modify the list view to add
Default Specimen Fields Cick here to view fields and their code
Specimen Identifier(Internal DB ID)
{
"expr" : "Specimen.id",
"caption" : "Specimen ID"
},
Collection Date and Time
{
"expr" : "Specimen.spmnCollRecvDetails.collTime",
"caption" : "Collection Date"
}
Collection Container
{
"expr" : "Specimen.spmnCollRecvDetails.collContainer",
"caption" : "Collection Container"
}
Collection Procedure
{
"expr" : "Specimen.spmnCollRecvDetails.collProcedure",
"caption" : "Collection Procedure"
}
Collector
{
"expr" : "Specimen.spmnCollRecvDetails.collector",
"caption" : "Collector"
}
Received Date and Time
{
"expr": "Specimen.spmnCollRecvDetails.recvTime",
"caption": "Received on"
}
Specimen Laterality
{
"expr" : "Specimen.tissueSide",
"caption" : "Laterality"
}
Specimen Anatomic Site
{
"expr": "Specimen.tissueSite",
"caption": "Anatomic Site"
}
Date formatting
Refer to the wiki for 'Date Formats '
{
"expr": "Specimen.createdOn",
"caption": "Created On",
"expr": "date_format(Specimen.createdOn, \"%month3%-%month_day%-%year4%\")"
}
Visit Fields You can configure visit fields to be displayed on the specimen list page
Cick here to view fields and their code
Visit Name
{
"expr" : "SpecimenCollectionGroup.name",
"caption" : "Visit Name"
}
Clinical Diagnoses
{
"expr" : "SpecimenCollectionGroup.clinicalDiagnoses.value",
"caption" : "Clinical Diagnoses"
}
Visit Event Label
{
"expr" : "SpecimenCollectionGroup.collectionProtocolEvent.collectionPointLabel",
"caption" : "Event Label"
}
Visit Custom Field
Add visit custom fields to the specimen list view page:
“SpecimenCollectionGroup.customFields”: Default syntax to call the visit custom field
“visit_data_extension“: Custom form name
“sequence_number“: Field udn present in a custom form XML
{
"expr":"SpecimenCollectionGroup.customFields.visit_data_extension.sequence_number",
"caption" : "Sequence Number"
}
Participant Fields You can configure participant fields to be displayed on the specimen list page
Cick here to view fields and their code
Participant Registration Site
{
"expr" : "Participant.site",
"caption" : "Registration Site"
}
Participant Registration Date
{
"expr" : "Participant.regDate",
"caption" : "Registration Date"
},
Custom Fields Cick here to view fields and their code
Add Custom field of any type dropdown, text, number, fancy control, etc
"Specimen.customFields" → Default syntax to call specimen custom field
"wCMCSpecimenFields"→ Custom form name
"diseaseStatus"→ Field udn present in a custom form XML
Eg:1
Disease Status
{
"expr":"Specimen.customFields.wCMCSpecimenFields.diseaseStatus",
"caption" : "Disease Status"
}
Eg:2
Technician(User Fancy Control)
{
"expr" : "Specimen.customFields.wCMCSpecimenFields.technician",
"caption" : "Technician"
},
Custom Form Fields Cick here to view fields and their code
Custom Form field
Add field of custom form to the participant list view page:
“Specimen.extensions”: Default syntax to call specimen form fields
“dNAExtraction“: variable name of custom form
“amountMgMl“: variable name of the field
{
"expr" : "Specimen.extensions.dNAExtraction.amountMgMl",
"caption" : "Amount"
}
Calculated Fields Cick here to view fields and their code
Location Field
{
"expr": "concat(Specimen.specimenPosition.containerName, concat_ws(\"\", concat(\" (\", Specimen.specimenPosition.formattedPos, \")\")))",
"caption": "Location"
}