When collecting planned or unplanned samples, you are taken to the below default specimen collection page. It is now possible to skip the step and navigate to a configurable data entry step directly.
The fields on this page are limited and not configurable. If you don't need all fields on the default collection page, this page can be hidden and directly taken to the configurable data entry page (nth step). This gives you more flexibility to add the fields that are required and remove unwanted fields.
Example: Below JSON code allows you to hide the default specimen collection page and add required fields in the nth step like the anatomic site, frozen event etc.
To add the JSON using the 'REST API Invoker Plugin' from OpenSpecimen, refer to https://openspecimen.atlassian.net/wiki/x/G4DgB.
URL | http://<host>:<port>/ openspecimen/rest/ng/collection-protocols/{id}/workflows |
Method | PUT |
Request | application/json |
{
"name": "specimenCollection",
"data": {
"fieldGroups": [
{
"title": "Anatomic Site",
"criteria": {
"rules": [
{
"field": "specimen.lineage",
"op": "==",
"value": "'New'"
}
]
},
"fields": [
{
"name": "specimen.label",
"baseField": "specimen.label",
"type": "span"
},
{
"name": "specimen.anatomicSite",
"baseField": "specimen.anatomicSite"
},
{
"name": "specimen.laterality",
"baseField": "specimen.laterality"
}
]
},
{
"title": "Spun Event for Blood Specimens",
"criteria": {
"op": "AND",
"rules": [
{
"field": "specimen.type",
"op": "==",
"value": "'Whole Blood'"
},
{
"field": "specimen.lineage",
"op": "==",
"value": "'New'"
}
]
},
"fields": [
{
"name": "specimen.label",
"baseField": "specimen.label",
"type": "span"
},
{
"name": "events.SpecimenSpunEvent.user",
"baseField": "specimen.events.SpecimenSpunEvent.user"
},
{
"name": "events.SpecimenSpunEvent.time",
"baseField": "specimen.events.SpecimenSpunEvent.time"
},
{
"name": "events.SpecimenSpunEvent.gForce",
"baseField": "specimen.events.SpecimenSpunEvent.gForce"
},
{
"name": "events.SpecimenSpunEvent.duration",
"baseField": "specimen.events.SpecimenSpunEvent.duration"
},
{
"name": "events.SpecimenSpunEvent.comments",
"baseField": "specimen.events.SpecimenSpunEvent.comments"
}
]
},
{
"title": "Events for Frozen Tissue",
"criteria": {
"op": "AND",
"rules": [
{
"field": "specimen.lineage",
"op": "==",
"value": "'New'"
},
{
"field": "specimen.type",
"op": "==",
"value": "'Frozen Tissue'"
}
]
},
"fields": [
{
"name": "specimen.label",
"baseField": "specimen.label",
"type": "span"
},
{
"name": "events.SpecimenCheckInCheckOutEvent.status",
"baseField": "specimen.events.SpecimenCheckInCheckOutEvent.status"
},
{
"name": "events.SpecimenCheckInCheckOutEvent.user",
"baseField": "specimen.events.SpecimenCheckInCheckOutEvent.user"
},
{
"name": "events.SpecimenCheckInCheckOutEvent.time",
"baseField": "specimen.events.SpecimenCheckInCheckOutEvent.time"
},
{
"name": "events.SpecimenFrozenEvent.time",
"baseField": "specimen.events.SpecimenFrozenEvent.time"
},
{
"name": "events.SpecimenFrozenEvent.user",
"baseField": "specimen.events.SpecimenFrozenEvent.user"
},
{
"name": "events.SpecimenFrozenEvent.frozenMethod",
"baseField": "specimen.events.SpecimenFrozenEvent.frozenMethod"
}
]
}
],
"showCollectionTree" : false
}
}
When you click on the collect specimens from visit overview, it'll directly take you to the below page:
Example JSON
Download