/
List View Configuration
Got feedback or spotted a mistake?

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

List View Configuration

Introduction

Below are the pages with lists like the view across the application. These list views can be configurable:

  • Participants

  • Specimens

  • Specimen cart

  • Reserved Specimens

  • Collection Protocol List

  • Order Specimen List

  • Container Specimen List

List view pages do not support the Custom Form fields. Eg: Forms attached at Registration Form Level, Specimen Form level etc.

What can be configured?

  1. Columns

  2. Sorting order

  3. Filters (on the right-hand side)

  4. Conditional data display: Fixed criteria can be set to display only specific participants and specimens. For example, display only aliquots.

How to configure the system-level list view?

A default view is shipped with the installation package and applies to all protocols. Super admins can change the default system-level list view configuration by uploading a new configuration file through 'Settings->Biospecimen→System Workflows'.

How to configure the CP level list view?

To configure the list view for a specific CP, go to the CP overview → More → Import Workflows.

JSON Examples

Participant and Specimen List View

 For participants and specimens, this configuration can be done at two levels:

  1. System-wide - applies to all protocols

  2. Protocol-level - overrides the system setting for that protocol

There is a separate section for each list view in the JSON, as shown below.

[ { "name": "common", "data": { "listView": "cp-specimens" } }, { "name":"participant-list-view", "data":{ "columns":[ { "expr":"Participant.ppid", "caption":"Participant Protocol ID", "metainfo":{ "showLink":"true" } }, { "expr":"concat(Participant.firstName, \" \", Participant.lastName)", "caption":"Name" }, { "expr":"Participant.regDate", "caption":"Registration Date" }, { "expr" : "Participant.medicalRecord.medicalRecordNumber", "caption" : "MRN" },{ "expr" : "Participant.medicalRecord.mrnSiteName", "caption" : "MRN Site" }, { "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(Participant.firstName, \" \", Participant.lastName)", "caption":"Name", "metainfo":{ "phi":"true" } }, { "expr":"Participant.regDate", "caption":"Registration Date" }, { "expr" : "Participant.medicalRecord.medicalRecordNumber", "caption" : "MRN" },{ "expr" : "Participant.medicalRecord.mrnSiteName", "caption" : "MRN Site" }, { "expr":"years_between(current_date(), Participant.dateOfBirth)", "caption":"Age", "temporal":"true", "metainfo":{ "phi":"true" } } ] } }, { "name":"specimen-list-view", "data":{ "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, \" (\", Specimen.specimenPosition.positionDimensionTwoString, \", \", Specimen.specimenPosition.positionDimensionOneString, \")\")", "caption":"Location" } ], "criteria":"Specimen.availableQty > 0 and 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.tissueSite", "caption":"Anatomic Site" }, { "expr":"Specimen.pathologicalStatus", "caption":"Pathology Status" }, { "expr":"Specimen.availableQty", "caption":"Quantity" } ] } } ]

 

Screenshots

 

Participants list view: 

This is a list of all registered participants of a protocol.

Specimen list view:

This is a list of all specimens collected under a protocol.

You can sort the list view based on specimen ID, location, etc. 

 

{ "name": "specimen-list-view", "data": { "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.id", "direction": "asce" } ], "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" } ] } },



 

{ "name": "specimen-list-view", "data": { "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": "concat(Specimen.specimenPosition.containerName, concat_ws(\"\", concat(\" (\", Specimen.specimenPosition.formattedPos, \")\")))", "direction": "asce" } ], "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" } ] } },



System-Level Lists

These lists can be configured at the system level only via Settings → System Workflows:

  • Reserved Specimens

  • Cart

  • Collection Protocol

  • Order Specimen

  • Container Specimen

Reserved specimen list page

  1. Configured under the 'reserved-specimens-list-view' section of the JSON

  2. If there is no section for reserved specimens added, then the 'common-specimens-list-view' (if specified) else 'specimen-list-view' is used.

Specimen cart page

  1. Configured under the 'cart-specimens-list-view' section of the JSON

  2. The configuration for cart specimens list view is picked from system workflow in the following order of preference: cart-specimens-list-view -> common-specimens-list-view -> specimen-list-view.

  3. The configuration detail is the same as that for specimen-list-view specifying the columns to display in the table, filters, ordering, additional restrictions, etc.

Order specimen list view page

  1. Configured under the "order-specimens-list-view" section of the JSON

  2. If the user is not configured any "order-specimens-list-view" in the system workflow, then OpenSpecimen uses the default configuration.

  3. Added an option to hide the empty columns by specifying the property "hideEmptyColumns": true,

Order specimens add and edit page

  1. Configured under "order-addedit-specimens" of the JSON

  2. If the user has not configured any "order-addedit-specimens" in the system workflow, then OpenSpecimen uses the default configuration.

Collection protocol list page (Implemented from v6.3 onwards) 

  1. Configured under "cp-list-view" of the JSON

  2. If the user is not configured any "cp-list-view" in the system workflow, then OpenSpecimen uses the default configuration.

Container Specimen List

  1. Configured under the "container-specimens-list-view" section of the JSON

  2. If the user has not configured any "container-specimens-list-view" in the system workflow, then OpenSpecimen uses the default configuration.

Screenshots

JSON Attributes and Uses

Expressions for other fields that can be added to the list view

 

Related pages

Got feedback or spotted a mistake?

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