Specimen List View
Got feedback or spotted a mistake?

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

Specimen List View

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.

[ { "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

Field

JSON Code

Field

JSON 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

Field

JSON Code

Field

JSON 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:

  1. “SpecimenCollectionGroup.customFields”: Default syntax to call the visit custom field

  2. “visit_data_extension“: Custom form name

  3. “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

Field

JSON Code

Field

JSON Code

Participant Registration Site

{ "expr" : "Participant.site", "caption" : "Registration Site" }

Participant Registration Date

{ "expr" : "Participant.regDate", "caption" : "Registration Date" },

Custom Fields

Field

JSON Code

Field

JSON Code

Add Custom field of any type dropdown, text, number, fancy control, etc

  1. "Specimen.customFields" → Default syntax to call specimen custom field 

  2. "wCMCSpecimenFields"→ Custom form name

  3. "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

Field

JSON Code

Field

JSON Code

Custom Form field

Add field of custom form to the participant list view page:

  1. “Specimen.extensions”: Default syntax to call specimen form fields

  2. “dNAExtraction“: variable name of custom form

  3. “amountMgMl“: variable name of the field

{ "expr" : "Specimen.extensions.dNAExtraction.amountMgMl", "caption" : "Amount" }

Calculated Fields

Field

JSON Code

Field

JSON Code

Location Field

{ "expr": "concat(Specimen.specimenPosition.containerName, concat_ws(\"\", concat(\" (\", Specimen.specimenPosition.formattedPos, \")\")))", "caption": "Location" }

Related content

Got feedback or spotted a mistake?

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